通过python请求登录网站的令牌名称

时间:2017-05-19 23:09:50

标签: python python-requests

我尝试使用Python的请求库登录网站。我之前曾经使用过它,但我认为我唯一困住的地方就是令牌。在网站的登录表格数据中,令牌名称为" idsrv.xsrf"。问题在于,由于时间的原因,我无法在字典中将其用作关键字。

import requests

with requests.Session() as r:
url = "https://www.foo.com/login"
USERNAME = "uname"
PASSWORD = "pword"
r.get(url)
token=r.cookies["idsrv.xsrf"]
login_data = dict(idsrv.xsrf=token, Username=USERNAME, Password=PASSWORD)
r.post(url, data=login_data, headers={"Referer": "https://login.foo.com/login"})
page = r.get("https://www.foo.com/Home")
print(page.content)

我试过插入idsrv,xsrv,idsrv_xsrv。当我执行其中任何一项时,它会为我提供登录页面的页面内容,而不是主页的页面内容。我相信这是我唯一的问题,但在我们解决之前,我肯定不会确定。

由于

1 个答案:

答案 0 :(得分:0)

您可以使用实例化字典的其他方法:

login_data = {'idsrv.xsrf':token, 'Username':USERNAME, 'Password':PASSWORD}

有关性能差异的有趣背景故事:https://doughellmann.com/blog/2012/11/12/the-performance-impact-of-using-dict-instead-of-in-cpython-2-7-2/