前言
因为pip下载比较吃力 也经常报延迟错误 所以想在镜像网站下载whl进行安装使用
此次只是简单地爬取页面元素进行正则匹配 没有验证等难点 所以就是很基础的请求后解析
# 使用re模块解析页面a标签
a_re = re.compile(r"<a\s+(?P<href>\S+)>(?P<name>\S+)</a>\S+")
取出所有href和a标签内容
for raw_data in all_raw_data:
href_name = {}
for data in raw_data:
if 'href' in data:
back_href = get_back_href(get_href(data))
front_href = remove_uri(url, back_href[1] + 1)
href_name['href'] = front_href + back_href[0]
else:
href_name['name'] = data
hrefs_names.append(href_name)
return hrefs_names
# 因为链接是../../abc这种带有上级目录的内容 所以要把相应的退格去掉
def remove_uri(raw_url, step):
for i in range(step):
slash_index = raw_url.rfind('/')
raw_url = raw_url[:slash_index]
return raw_url + '/'
# 获取需要退几步方便进行网址拼接
def get_back_href(data):
step = data.count('../')
href = data[step * 3:]
return href, step
#获取href
def get_href(raw_href):
key_word = 'href='
href_index = raw_href.find(key_word)
return raw_href[href_index + len(key_word):].strip('"')
运行结果
{‘href’: ‘https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/bwget/’, ‘name’: ‘bwget’},