我是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在会话期间丢失了,这是我得到的输出:
正如您所看到的,在我将凭据发布到url1后,cookie就会丢失,我可以获取url2的内容,但不能获取url3和url4的内容。 s.cookies始终如一,所以我一直试图在我的所有请求中使用它而没有任何成功。任何帮助将不胜感激。
答案 0 :(得分:0)
请求文档在Advanced Usage下显示:
但请注意,即使使用会话,方法级参数也不会在请求之间保持不变。 [...]
如果您想手动将Cookie添加到会话中,请使用Cookie utility functions来操作Session.cookies。
引用的资源基本上显示了如何在整个会话期间保留cookie。