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

最近在做爬虫的时候遇到了一个问题,在用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 (实验证明,使用这个方法是替换原来的cookies 并不是追加,下面有追加的方法)

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

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

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

自己尝试:

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

cookies = requests.utils.cookiejar_from_dict(headers, cookiejar=None, overwrite=True)

 

 

追加cookie的方法:

 

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值