【发布时间】:2025-12-18 03:40:01
【问题描述】:
我提前道歉,因为我对这些东西很陌生。我见过类似的问题,但无法弄清楚我的具体情况。
我正在尝试通过 Python 使用 API,但不知道如何进行身份验证并且没有文档。我使用具有网站的服务。该网站似乎由 API 提供支持。因此,当我通过 ctrl-shift-I 跟踪我的所有网络流量时,我可以在单击网站时看到我需要使用的所有 API 调用。因此,即使 API 没有记录在案,我也知道我需要的所有端点。
一旦我通过网站登录我的帐户,API 就会通过身份验证。然后我可以在浏览器中向 API 发出请求。但是,我似乎无法弄清楚如何在请求库中通过 Python 进行身份验证。我对任何身份验证方式持开放态度,甚至根据 Stack Overflow 上的其他建议尝试使用浏览器中的 cookie,但我对这种方法非常不熟悉。
我在这里完全错过了什么吗?我在 Stack Overflow 中发现的大多数这些身份验证方法似乎都适用于其他人。
s = requests.Session()
payload = {'usernameOrEmail': 'XXXXXXX', 'password':'XXXXXXX'}
s.post('https://XXXXXXX', json=payload, headers={'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36'})
s = requests.Session()
payload = {'usernameOrEmail': 'XXXXXXX', 'password':'XXXXXXX'}
s.post('https://XXXXXXX', json=payload)
url = 'https://XXXXXXX'
values = {'usernameOrEmail': 'XXXXXXX',
'password': 'XXXXXXX'}
r = requests.post(url, data=values, verify=False)
我尝试过使用登录页面的 URL、您在登录后被转发到的会员概览页面、API URL/端点等。我 98% 确定我的名称值对是正确的用户名和密码。
我什至尝试了一个简单的获取请求并在 URL 上附加用户名或电子邮件和密码字段。
我最近收到了 401、404 和 405,具体取决于 URL 方法组合。
提前道歉,因为我确信这是非常基本的事情。我在提交用户名和密码方面是否走在正确的轨道上,还是需要走使用浏览器 cookie 的路线?
我通过 Anaconda 使用 Spyder。
谢谢
针对产生 404 的代码进行了更新:
import requests
s = requests.Session()
payload = {'username_or_email': 'XXXXXXX', 'password':'XXXXXXX'}
test=s.post('https://members.onepeloton.com/login', json=payload)
print(test)
【问题讨论】:
标签: python-3.x python-requests urllib