requests.Session()从CookieJar加载cookie

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了requests.Session()从CookieJar加载cookie相关的知识,希望对你有一定的参考价值。

如何将CookieJar加载到新的requests.Session对象?

cj = cookielib.MozillaCookieJar("mycookies.txt")
s = requests.Session()

这是我创建的,现在会话将存储cookie,但我希望它从文件中获取我的cookie (会话应该加载cookieJar)。怎么能实现这一目标? 我搜索了文档,但我只能找到代码示例,他们永远不会加载cookieJar,只是在一个会话期间保存cookie。

答案

有一个可选的cookies=,可以为requests.Session(以及请求)对象提供:

cookies =无

CookieJar包含此会话中设置的所有当前未完成的Cookie。默认情况下,它是RequestsCookieJar,但可以是任何其他cookielib.CookieJar兼容对象。

见:http://docs.python-requests.org/en/latest/api/#requests.Session.cookies

所以它变成:

s = requests.Session(cookies=cj)

更新:我混淆了requests.getrequest.post等...,正如mata在评论中正确指出的那样 - cookies是会话对象的属性,而不是init参数,所以这不起作用。构建会话后的s.cookies = cj将:

因此,使用:

s = requests.Session()
s.cookies = cj

以上是关于requests.Session()从CookieJar加载cookie的主要内容,如果未能解决你的问题,请参考以下文章

关于cookiejar(),requests.session()中cookie的详细操作方法

requests接口自动化9-共享session和传递cookie

将 requests.Session() cookie 传输到 Python 中的 selenium Web 驱动程序

4 使用Selenium模拟登录csdn,取出cookie信息,再用requests.session访问个人中心(保持登录状态)

python requests模块 session保持会话问题

是否可以在 selenium.webdriver 和 requests.session 之间“传输”会话