我正在尝试使用python requests 1.2.3库向一个已有的cookiejar添加一个cookie。每次添加新cookie时,jar中的数据都会被munged为新cookie。键丢失,值丢失或与不正确的键匹配。我不确定这是请求库错误还是我没有正确发送cookie。我使用的以下代码导致cookiejar中出现错误cookie。我的cookie格式正确吗?有什么想法吗?
my_cookie = {
'domain':'www.mydomain.com',
'expires':None,
'name':'COOKIE_NAME',
'path':'/',
'value':'the cookie works',
'version':0
}
s = requests.Session()
requests.utils.add_dict_to_cookiejar(s.cookies, my_cookie)
5条答案
按热度按时间bwitn5fc1#
快速解答
选项1
选项2
详细答案
我不知道当最初的问题被问到时,这种技术是否有效,但是理想情况下,您应该使用
requests.cookies.create_cookie(name,value,**kwargs)
生成自己的cookie对象,然后通过requests.cookies.RequestsCookieJar.set_cookie(cookie,*args,**kwargs)
将其添加到cookie jar中。向请求会话添加自定义Cookie
奖励:让我们添加一个超级cookie,然后删除它
nwo49xxi2#
我找到了一种方法,通过导入CookieJar,Cookie和Cookie来做到这一点。在@Lukasa的帮助下,他向我展示了一种更好的方法。然而,用他的方法我无法指定“port_specified”,“domain_specified”,“domain_initial_dot”或“path_specified”属性。“set”方法使用默认值自动执行此操作。我试着抓取一个网站,他们的cookie在这些属性中有不同的值。因为我是新来的,我不确定这是否真的有关系。
1tu0hz3e3#
如果您希望处理普通的Cookie字符串:
1tu0hz3e4#
要使用内置函数和方法...
您可以根据需要添加任意多的Cookie。如果需要特殊的标头,请使用此方法添加它们。
8i9zcol25#
将新cookie添加到
requests
的session.cookies
方法1:
session.cookies.set
传递新cookie的命令
还有两种写入类型:
类型1:全部在一个字典中
类型2:
name
、value
和通用字典方法二:
requests.cookies.create_cookie
+session.cookies.set_cookie
生成新cookieobject,然后添加到cookie中
添加了新cookie示例
摘要
参考