使用python请求时如何在多个请求中使用相同的cookie

时间:2017-02-21 22:35:42

标签: python cookies web-scraping python-requests

我是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始终如一,所以我一直试图在我的所有请求中使用它而没有任何成功。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

请求文档在Advanced Usage下显示:

  

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

     

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

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

相关问题