requests.Session()从CookieJar加载cookie

问题描述 投票:2回答:1

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

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

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

python httprequest python-requests cookiejar
1个回答
3
投票

有一个可选的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
© www.soinside.com 2019 - 2024. All rights reserved.