requests 库的安装
Mac 下使用 Pycharm 时只需按住快捷键 Command + ,
选择 Project→Project Interpreter 点击 + 号后搜索 requests 进行安装即可:
获取过程使用的方法
requests.get(url, params=None, **kwargs)
url
是请求的链接,params
是发送请求时参数,kwargs
是可选参数。
获取过程
为了保持连接的持久性不能直接使用 requests 发送请求,而需要利用 Session 对象。具体获取代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| session = requests.session() ss = session.get("http://www.zhuixinfan.com/member.php?mod=register") result = ss.text
params = re.findall("<input.*(?:name=\"formhash\"|name=\"sechash\").*\>", result) params = list(set(params)) sechash = re.sub(".*value=\"", "", params[1]) sechash = re.sub("\".*", "", sechash)
actually_url = "http://www.zhuixinfan.com/misc.php?mod=seccode&action=update&idhash=" + sechash htm = session.get(actually_url)
update_url = re.findall(r"\bsrc=\S*", htm.text) update = re.sub("src=\"", "", update_url[0]) update = re.sub("\"", "", update)
headers = { 'Host': 'www.zhuixinfan.com', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36', 'Referer': 'http://www.zhuixinfan.com/member.php?mod=register' } url = "http://www.zhuixinfan.com/" + update result = session.get(url, headers=headers) im = Image.open(BytesIO(result.content)) im.show()
|
获取过程中首先向站点发送请求,从返回的网页信息中利用正则表达式获取 sechash
参数,之后利用所得到的 sechash
向站点发送更新验证码的请求并从返回的信息中获取验证码图片的 url,最后从站点下载图片利用 Image.open()
显示图片。
参考资料
Requests: 让 HTTP 服务人类