【问题标题】:How do I get the cookies of the active session to give it to the post request with python?如何获取活动会话的 cookie 以使用 python 将其提供给 post 请求?
【发布时间】:2020-04-12 00:08:44
【问题描述】:

我对来自网站的 cookie 有疑问。 如果我在网站上手动发出请求,它会传递带有 cookie 的标题。 cookie 例如是这样的:

饼干:laravel_session = eyJpdiI6IjBCMnNTdFNmV3lCawererwadsf0SXc9PSIsInZhbHVlIjoiTWtZUDduSkFXdzRobERtQ0YxdkxreEkzYzJtWFwvUEVyMHgyT2ljN2EyeXg3XasdfweUUwQzhGRWowVEp5VygsdgfewTQ2MGJmNjEzZmYyNmU4YjdhYTQyMzkyNTYzYjFjMTQ4MDQ5NjlkNDQ0ZGQ4NGRiZDE5YjNhYTRhMzA5ODMifQ%3D%3D P>

但是我如何才能通过我的请求获取该 cookie?我想发送一个包含数据的发布请求,但我不知道如何发送带有请求标头的 cookie 或如何生成它?我不想手动放入它应该从网站获取。还是它会自动发送带有标头的 cookie?

谢谢! 埃利亚斯

我没有得到 laravel_session cookie 的东西——我可以从哪里得到它?

【问题讨论】:

  • 您可以使用request.Session 自动跟踪cookies。您对该会话发出的任何请求都会发送 cookie。
  • 但是我怎样才能看到这些 cookie?那个 laravel 会话是什么?我只是不明白,因为如果我向网站发送请求,我只会得到 __cfduid=d746938d09wwefasgf9fac4d68adf835 cookie

标签: python cookies python-requests header http-post


【解决方案1】:

这应该可以帮助您解决问题,因为这是如何通过 python 请求发送 cookie。即使这是来自维基百科,它也是一个通过请求发送 cookie 的示例。

import requests

cookies = {'enwiki_session': '17ab96bd8ffbe8ca58a78657a918558'}

r = requests.post('http://wikipedia.org', cookies=cookies)

【讨论】:

    【解决方案2】:

    如果我正确理解您的问题,您希望从当前会话中获取 cookie,然后将其与请求一起发送。应该这样做。

    import requests
    
    req_url = 'http://foo.bar.com'
    req_data = {'some': 'data'}
    
    session = requests.Session()
    response = requests.get(req_url)
    cookie_to_send = session.cookies.getdict()['cookie_name']
    
    requests.post(url=req_url, data=req_data, cookie={'cookie_name': cookie_to_send})
    

    【讨论】:

      猜你喜欢
      • 2013-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-24
      • 2017-05-29
      • 2020-12-31
      相关资源
      最近更新 更多