Python3发送来自先前调用的请求Cookie

时间:2018-07-24 13:04:18

标签: python-3.x session python-requests

我想从第二个呼叫中的第一个呼叫重新发送已初始化的cookie,以使会话不变。这是行不通的。

为什么?以及如何解决。抱歉,python新功能

https_url = "www.google.com"
r = requests.get(https_url)
print(r.cookies.get_dict())
#cookie = {id: abc}

response = requests.get(https_url, cookies=response.cookies.get_dict())
print(response.cookies.get_dict())
#cookie = {id: def}

1 个答案:

答案 0 :(得分:1)

从上次响应到下一个请求的cookie传递方式不一定是错误的,

  1. "www.google.com"是无效的URL。
  2. 即使您已经使用http://www.google.com作为URL,Google在此类GET请求中返回的cookie也不意味着是会话cookie,也不会在请求中持久存在。
  3. 您使用变量r来接收第一个requests.get的返回值,而在制作第二个response.cookies时却使用了requests.get。可能有错字?
  4. 如果以上所有原因均是由于您试图模拟真实代码而引起的,那么您应该真正考虑使用requests.Session以避免对会话cookie进行微管理。

有关详细信息,请阅读requests.Session's documentation

import requests
with requests.Session() as s:
    r = s.get(https_url)
    # cookies from the first s.get are automatically passed on to the second s.get
    r = s.get(https_url)
    ...