Python通过请求登录chess.com
我正试图从chess.com上读出我的一些数据。我正在努力使用python登录 我正在努力学习教程 我已经从登录页面识别了以下标签Python通过请求登录chess.com,python,python-requests,Python,Python Requests,我正试图从chess.com上读出我的一些数据。我正在努力使用python登录 我正在努力学习教程 我已经从登录页面识别了以下标签\u用户名作为用户名,\u密码作为密码,\u令牌作为隐藏令牌 我的代码: session_requests = requests.session() login_url = 'https://www.chess.com/login' result = session_requests.get(login_url) tree = html.fromstring(res
\u用户名
作为用户名,\u密码
作为密码,\u令牌
作为隐藏令牌
我的代码:
session_requests = requests.session()
login_url = 'https://www.chess.com/login'
result = session_requests.get(login_url)
tree = html.fromstring(result.text)
token = list(set(tree.xpath("//input[@name='_token']/@value")))[0]
payload = {
"_username": "ChristianSloper",
"_password": "mypasswordgoeshere",
"_token": token
}
result = session_requests.post( login_url, data = payload, headers = dict(referer=login_url), verify=True)
不幸的是,我刚刚被发送回登录页面。我对前端/web非常陌生,非常乐意提供任何帮助。您的有效负载不完全正确(其中缺少一些内容),并且您似乎将POST请求发送到了错误的URL,请尝试以下代码:
session_requests = requests.session()
login_url = 'https://www.chess.com/login'
result = session_requests.get(login_url)
tree = html.fromstring(result.text)
token = list(set(tree.xpath("//input[@name='_token']/@value")))[0]
payload={"_username": "ChristianSloper",
"_password": "mypasswordgoeshere",
"login": '',
"_target_path": "https://www.chess.com/home",
"_token": token
}
session_requests.headers.update(dict(referer=login_url))
result = session_requests.post("https://www.chess.com:443/login_check", data = payload, verify=True)
希望这有帮助 只需监视登录页面的成功获取,然后发布到登录页面,就像用户使用浏览器所做的那样,然后复制在发布页面上发送的内容。使用请求会话将确保cookie得到处理,您需要确保POST上发送的标题与浏览器发送的标题相同/无法区分。使用一个间谍应用程序,比如免费的优秀的Telerik Fiddler。如果客户端看起来不是浏览器,登录可能总是失败。谢谢提示@barny。我无法从Telerik那里读到任何东西,这一切似乎都是加密的。(或者我可能用错了Fiddler,因为我以前没有用过:-)您可以转到Fiddler选项并配置https-它将成为解密通信的代理(中间人)。当然,您必须在浏览器中接受Fiddler证书。但是你会看到所有的交流——标题、内容。Fiddler对于监视browserserver通信非常有用。