为何爬取cookie?
现在大多网站如今设有cookie检测,如果没有cookie,有可能请求失败,爬取不到想要的数据。
爬虫中cookie的处理方式(两种方式):
手动处理:
将抓包工具中的cookie赋值到headers中即可
- 缺点:
- 编写麻烦
- cookie通常都会存在有效时长
- cookie中可能会存在实时变化的局部数据
自动处理
- 基于session对象实现自动处理cookie。
- 1.创建一个空白的session对象。
#创建动态cookie
session = requests.Session()
- 2.需要使用session对象发起请求,请求的目的是为了捕获cookie
#发送第一次请求
session.get(url=first_url,headers=heardes)
- 注意:如果session对象在发请求的过程中,服务器端产生了cookie,则cookie会自动存储在session对象中。
- 3.使用携带cookie的session对象,对目的网址发起请求,就可以实现携带cookie的请求发送,从而获取想要的数据。
#将url换成自己想要爬取网站地址
html = session.get(url=url, params=params,headers=heardes)
- 注意:session对象至少需要发起两次请求
- 第一次请求的目的是为了捕获存储cookie到session对象
- 后次的请求,就是携带cookie发起的请求了