自动保存并传递cookie
from requests.cookies import RequestsCookieJar
1、通过requests模块导入 from requests.cookies import RequestsCookieJar
2、进行实例化:jar = RequestsCookieJar()
3、进行设置: jar.set(cookie['name'], cookie['value'])
完成之后就可以在直接在请求网页源文件的时候,将这个cookie带上一起发送请求了
requests只能保持 cookiejar 类型的cookie,而我们手动构建的cookie是dict类型的。所以要把dict转为 cookiejar类型,方法如下:
#将CookieJar转为字典:
cookies=requests.utils.dict_from_cookiejar(r.cookies)
#将字典转为CookieJar:
cookies=requests.utils.cookiejar_from_dict(cookie_dict,cookiejar=None,overwrite=True)
#其中cookie_dict是要转换字典转换完之后就可以把它赋给cookies 并传入到session中了:
s=requests.Session()
s.cookies=cookies
其实requests组件确实具有自动处理cookie的能力,而且一句update代码就能搞定:
def__init__(self):
self.cookies = requests.cookies.RequestsCookieJar()
def go(self, url, method, post_data):
response = requests.request(method, url
, data=post_data
, headers=info.headers
, cookies=self.cookies)#传递cookie self.cookies.update(response.cookies) # 保存cookie