【问题标题】:how to use same cookies over multiple requests when using python requests使用python请求时如何在多个请求上使用相同的cookie
【发布时间】:2017-02-21 22:35:41
【问题描述】:

我是 python 请求的新手,我正在使用它来抓取网站并访问某个网页,首先我登录,然后我对其他网页做了一些请求:

import requests

url1 = 'https://ringzer0team.com/login'
s = requests.Session()

request = s.get(url1)
print s.cookies
print request.cookies
request = s.post(url1, auth=('username', 'password'))
print request.cookies

url2 = 'https://ringzer0team.com/home'
request = s.get(url2, cookies =   s.cookies)
print request.cookies

url3 = 'https://ringzer0team.com/challenges'
request = s.get(url3, cookies = s.cookies)
print request.cookies

url4 = 'https://ringzer0team.com/challenges/13'
request = s.get(url3, cookies = s.cookies)
print request.cookies

我相信这是因为 cookie 在会话期间丢失,这是我得到的输出:

my output

如您所见,在我将凭据发布到 url1 后,cookie 丢失了,我可以获取 url2 的内容,但不能获取 url3 和 url4 的内容。 s.cookies 始终保持不变,因此我一直在尝试在所有获取请求中使用它,但没有成功。任何帮助将不胜感激。

【问题讨论】:

    标签: python cookies web-scraping python-requests


    【解决方案1】:

    请求文档说,Advanced Usage

    但是请注意,即使使用会话,方法级参数也不会在请求之间持久化。 [...]

    如果您想手动将 cookie 添加到会话中,请使用 Cookie utility functions 来操作 Session.cookies。

    引用的资源基本上显示了如何在整个会话期间持久保存 cookie。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-11
      • 2018-04-16
      • 1970-01-01
      • 2019-09-07
      • 1970-01-01
      • 2014-10-19
      • 2014-06-16
      相关资源
      最近更新 更多