python requests 保持会话注意事项
最近因为需要再写一个爬取支付宝账单的爬虫,里面的cookie过期时间是会话结束,所以要维持会话。在网上看了很多资料后终于实现了。下面再结合我自己的经验,谈一谈其中的注意事项。
header要设置好
首先,先将最基本的header做好,可以通过浏览器的网络分析看到这些信息。
|
|
像这样一个请求头,可以一定程度上伪装成浏览器。
使用session
requests 模块下的session类可以很方便的自动处理很多东西(cookie, session 啥的),而且在维持会话也是必不可少的。使用方法也很简单:
|
|
另外还可以设置session类的cookie,具体的可以看官方文档。
记得更新cookie
session有个奇怪的特性,它会优先使用用户设置的cookie覆盖来自响应的cookie,所以我们要手动更新下。
|
|
所以总体的步骤就是:实例化一个session,设置header和cookie,再更新cookie。循环爬取时,注意不要再用一开始设置的cookie覆盖更新完的cookie了。
这样每隔一段时间get一下,就可以维持回话了。另外,具体定情况具体分析。每次做爬虫,我都会觉得很玄学,因为有太多细节需要注意。实在不行,就只能用selenium啥的抵挡一阵了。