【问题标题】:Python3 send requests cookies from previous callPython3 从以前的调用发送请求 cookie
【发布时间】:2018-07-24 13:04:18
【问题描述】:

我想在第二次调用中从第一次调用中重新发送初始化的 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}

【问题讨论】:

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


    【解决方案1】:

    您将 cookie 从上一个响应传递到下一个请求的方式不一定是错误的,除了:

    1. "www.google.com" 不是有效的网址。
    2. 即使您使用了http://www.google.com 作为 URL,Google 在此类 GET 请求中返回的 cookie 也不是会话 cookie,并且不会在请求之间保持不变。
    3. 您使用变量r 接收来自第一个requests.get 的返回值,但您在创建第二个requests.get 时使用了response.cookies。可能是错字?
    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)
        ...
    

    【讨论】:

      猜你喜欢
      • 2016-04-06
      • 2017-05-30
      • 2020-01-24
      • 2014-12-18
      • 1970-01-01
      • 2020-08-19
      • 2021-05-29
      • 2012-06-20
      • 1970-01-01
      相关资源
      最近更新 更多