使用python shell
>>> import requests
>>> cookies = {'sentcookie':'666'}
>>> res = requests.get('http://en.wikipedia.org/wiki/Main_Page', cookies=cookies)
>>> res
<Response [200]>
>>> res.cookies
<<class 'requests.cookies.RequestsCookieJar'>[Cookie(version=0, name='sentcookie',
value='666', port=None, port_specified=False, domain='', domain_specified=False,
domain_initial_dot=False, path='/', path_specified=True, secure=False, expires=None,
discard=True, comment=None, comment_url=None, rest={'HttpOnly': None}, rfc2109=False)]>
>>>
为什么&#39; sentcookie&#39;包含在从服务器返回的cookie列表中?我已经嗅到了通信,并且没有从服务器返回cookie。 为什么请求将其包含在列表中?如何禁用此行为?
答案 0 :(得分:1)
不是禁用行为,而是告诉 requests
执行行为
在此:
cookies = {'sentcookie':'666'}
res = requests.get('http://en.wikipedia.org/wiki/Main_Page', cookies=cookies)
您告诉它您希望该Cookie可用,无论是否需要...
您通常会将cookies=
用于浏览器缓存中的现有Cookie或某些内容(出于某种原因),并按照正常情况离开requests
来处理来自服务器的Cookie
答案 1 :(得分:1)
我有完全相同的问题,我不认为我完全理解你的答案。 假设您要根据文档向您的请求添加cookie 这是正确的方法:
cookies = {'sentcookie':'666'}
response = requests.get('http://en.wikipedia.org/wiki/Main_Page', cookies=cookies)
现在,如果服务器返回cookie,您可以通过以下方式访问它们:
response.cookies
但即使服务器没有退回,我也不希望得到我发送的相同的cookie,因为某种原因它正在发生。
如何防止此行为?