码迷,mamicode.com
首页 > 其他好文 > 详细

关于requests的session方法保持不了cookie的问题。

时间:2017-11-01 17:51:38      阅读:275      评论:0      收藏:0      [点我收藏+]

标签:dict   http   detail   cookie   get   请求   介绍   请求头   nbsp   

最近在做爬虫的时候遇到了一个问题,在用requests的session方法保持cookie的时候发现requests不能保持手动构建的cookie。起初以为requests只能自动保持由服务器返回的set-cookie语句中的cookie。后来查了很多资料,才终于明白。原来requests只能保持 cookiejar 类型的cookie,而我们手动构建的cookie是dict类型的。所以要把dict转为 cookiejar类型,于是我又在网上查,在几乎打算放弃的时候终于找到了一个把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

以上代码是我在下面这个网站上查到的,感谢这个博客的作者!这篇文章上还介绍了一些官方文档中没有提到的方法。

—————————-以下是原文——————————— 
原文地址:http://www.lihuai.net/program/python/1617.html

原文地址:  http://blog.csdn.net/falseen/article/details/46962011

自己尝试:

技术分享

也可以把headers这个请求头直接转成cookiejar类型放入cookies里面,尝试了成功执行

关于requests的session方法保持不了cookie的问题。

标签:dict   http   detail   cookie   get   请求   介绍   请求头   nbsp   

原文地址:http://www.cnblogs.com/kaibindirver/p/7767605.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!