爬虫过程中,cookie可以保留用户与服务器之间的交互信息,使服务器与用户相互能够识别。由于HTTP协议是无状态协议,即不能够识别客户端身份,即使客户端多次请求同一个url服务器仍然响应。这种协议导致服务器工作效率低下。为了解决这个问题,cookie产生的目的就是为了让服务器识别同一客户端。
cookie一般保存在客户端,工作步骤为:
1.客户端第一次请求,与服务器建立关联;
2.服务器向客户端发送cookie,包含两者间的身份识别信息;
3.客户端将cookie保存在本地;
4.客户端下次请求同一网址从本地提取cookie信息,供服务器识别客户端身份。
一、提取cookie
import requests
from http import cookieJar
#构建cookie对象
cookie=cookieJar.LWPCookieJar('cookie.txt')
#将cookie对象与session对象关联
session=requests.session()
session.cookies=cookie
try:
session.cookies.load(ignore_discard=True)
exept:
print('获取cookie失败')
二、保存cookie
r=session.post(url,data=data)
r.cookies.save('cookies.txt')