我正在使用python requests库。我正在尝试用字典中的cookie加载requests会话:
cookie = {'name':'my_cookie','value': 'kdfhgfkj' ,'domain':'.ZZZ.org', 'expires':'Fri, 01-Jan-2020 00:00:00 GMT'}
我试过了:
s.cookies.set_cookie(cookie)
但这给出:
File "....lib\site-packages\requests\cookies.py", line 298, in set_cookie
if hasattr(cookie.value, 'startswith') and cookie.value.startswith('"') and cookie.value.endswith('"'):
AttributeError: 'dict' object has no attribute 'value'
我做错了什么?
3条答案
按热度按时间csga3l581#
cookies
有一个类似于字典的接口,您可以使用update()
:或者,只需将
cookies
添加到下一个请求:它会将请求Cookie与会话Cookie“合并”,新添加的Cookie将保留用于后续请求,另请参阅:
bvuwiixz2#
对于多个cookie,这似乎不起作用,它们只是被覆盖,所以最后添加的cookie是jar中唯一的cookie。
例如,我的多个cookie(来自Flasolverr(我相信它的输出与selenium相同))在一个列表中输出多个字典,例如:
因此,如果我尝试将它们全部添加到cookie jar中,您可以看到“
__cfduid
“是jar中唯一的cookie:我也尝试过
jar = requests.cookies.RequestsCookieJar()
和jar.set(xxxx),但是它不喜欢非标准的cookie属性(例如httpOnly)任何帮助都将不胜感激,谢谢!
webghufk3#
session.cookie.set_cookie的参数应该是Cookie对象,而不是dict(Cookie的)
如果要从Dict向
session.cookies
添加新cookie,可以用途:或
更多细节请参考我的另一个职位的答案