Python请求返回登录页面

时间:2015-02-08 12:46:12

标签: python python-requests

我想从具有登录信息的页面中检索一些数据。

我使用Python请求。但是,当我尝试登录然后从数据页面获取数据时,它将返回登录页面。

这是我的代码:

s = requests.Session()
s.auth = ('user', 'pass')
s.get('http://url.com')

payload = {'user': 'user', 'pass': 'pass'}
r_login = s.post("http://admin.url.com/login.php", data=payload)
cookies = r_login.cookies
print cookies

r_data = s.get('https://admin.url.com/stats.php?PHPSESSID={0}'.format(cookies['PHPSESSID']))
cookie = r_data.cookies
print cookie
print r_data.text

这就是印刷品:

<<class 'requests.cookies.RequestsCookieJar'>[<Cookie PHPSESSID=ve4tit4svmp719ul3vb8qeqdh7 for .url.com/>]>
<<class 'requests.cookies.RequestsCookieJar'>[]>

然后是登录页面的html而不是统计页面。

我忘记了什么吗?我如何知道服务器需要进行身份验证(即cookie,sessionid,referrer)?

1 个答案:

答案 0 :(得分:0)

我从你的问题标题中假设get正在返回登录页面。最可能的原因是它没有会话令牌,因此网页正在将服务器端重定向回登录页面。

我的猜测是这个(PHPSESSID)应该作为cookie而不是查询字符串返回。

最后可能会有一些我不知道的聪明伎俩,但我想你需要参考原始代码,文档或反复试验来确定需要发送的内容。