python - Python 使用请求登录 chess.com
问题描述
我正在尝试从 chess.com 读出我的一些统计数据。我正在努力使用 python 登录。
我正在尝试按照教程here
我从登录页面中识别出以下标签。_username
作为用户名、_password
密码和_token
隐藏令牌。
我的代码:
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)
希望这可以帮助!
推荐阅读
- python - 将 np.where 应用于方括号过滤以进行 numpy 过滤
- javascript - 如何在 d3pie 中更改饼图的颜色
- json - Swift 4 从自定义 JSON 对象解码到不同的模型
- node.js - 如何设置新的键 Redis 回调
- python - 为什么我在 Jupyter Notebook 的所有列中只获得 NaN 值?
- php - 如何获取经过身份验证的用户可用的路由
- razor - Kendo UI 网格的自定义行/复选框模板
- postgresql - postgres - 简化数据库操作
- php - 如何修复我的 php 代码中的 Mysqli 错误 #1064?
- opencv - 如何在没有手动实验的情况下找到 logPolar Magnitude 比例参数