关于python爬虫,我想大家应该都知道很简单,只需要导入一个requests模块,
import requests
url = ****
#请求参数
data = {
}
#请求头
header = {
}
result = requests.post(url, data, header)
#事实上有时候甚至不需要data和header,所以只需要两行代码即可完成爬虫功能
但是某些网页会设置一些反爬手段,所以需要我们在请求头里加上一些验证的东西,这取决于网页的安全性。好了有点跑偏了,会规正传这一次主要想说本人这一次帮别人爬虫时遇到的cookie问题。关于cookie是什么,这里截取百科的解释就不自己码字了.
Cookie (储存在用户本地终端上的数据),有时也用其复数形式
Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息
[1] 。
如果有做网站开发后端的朋友可能会比较了解,简单来说,就是当我们访问服务器,服务器会返回一个文本存在客户端,这个东西就是cookie。由于http是无状态协议,即服务器把每次请求都当成一个独立的请求。因此为了能够识别本地客户端身份,下一次请求的请求头就必须带上cookie的内容。关于cookie的详细说明不懂的可以参考这个文章的内容关于cookie是什么
一开始帮别人写了一个获取数据的爬虫,原本贪图方便想让朋友每次使用的时候都到网页复制一下请求的请求头,没想到过了一两天又回来找我说一开始程序可以跑,过一会又不能跑了。结果他自己研究了一下发现是cookie过期的问题来找我完善。无奈之下只好又添加了可以自动获得cookie的程序,其实就是一个登录请求,无非就是再登录请回的返回头里获取cookie值作为获取数据请求的cookie值,这样cookie就不用每次使用都担心过期的问题了,因为每次都是新的cookie值。但是诡异的是,一切都写好了,然而却没有得到想要的cookie值。
# python3.6环境
import json
import requests
from urllib import request
from http import cookiejar
# url1为登录验证url,