【发布时间】:2016-08-10 18:07:32
【问题描述】:
我正在尝试登录一个网页,然后从同一个域执行后续 GET 请求,该域应该使用初始 POST 中设置的 cookie。
初始 POST 成功执行,响应是预期的页面,但是任何后续的 GET 请求都会让我回到登录页面。
代码:
s = requests.Session()
url1 = 'https://www.sitename.com'
url2 = 'https://www.sitename.com/cookie_dependent_resource'
creds = {'un': 'username', 'pw': 'password'}
r1 = s.post(url, data=creds)
r2 = s.get(url2)
我对此并不陌生,但显然做错了什么。请帮助新手! :-)
【问题讨论】:
-
可以分享链接吗?
-
您能否确认
s.cookies在第一次调用post后显示预期的cookie? -
肯定的。我可以在初始 POST 之后成功遍历 s.cookies。
-
澄清:r1.cookies 和 r2.cookies 在遍历它们时看起来相同。
-
您正确使用了会话,我怀疑
requests中的错误是问题所在。您确定不需要提交任何其他(隐藏的)表单字段吗?可能是 CSRF 令牌?
标签: python python-requests session-cookies