Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Python中Google Chrome的API认证_Python 3.x_Python Requests_Urllib - Fatal编程技术网

Python 3.x Python中Google Chrome的API认证

Python 3.x Python中Google Chrome的API认证,python-3.x,python-requests,urllib,Python 3.x,Python Requests,Urllib,我事先向你道歉,因为我对这东西还不太熟悉。我也见过类似的问题,但就是不知道我的具体情况 我试图通过Python使用API,但不知道如何进行身份验证,也没有文档。我使用一个有网站的服务。该网站似乎是由一个API驱动的。因此,当我通过ctrl-shift-I跟踪我的所有网络流量时,我可以看到我在点击网站时需要使用的所有API调用。因此,即使API没有文档化,我也知道我需要的所有端点 一旦我通过网站登录到我的帐户,API就会通过身份验证。然后,我可以在浏览器中向API发出请求。然而,我似乎不知道如何通

我事先向你道歉,因为我对这东西还不太熟悉。我也见过类似的问题,但就是不知道我的具体情况

我试图通过Python使用API,但不知道如何进行身份验证,也没有文档。我使用一个有网站的服务。该网站似乎是由一个API驱动的。因此,当我通过ctrl-shift-I跟踪我的所有网络流量时,我可以看到我在点击网站时需要使用的所有API调用。因此,即使API没有文档化,我也知道我需要的所有端点

一旦我通过网站登录到我的帐户,API就会通过身份验证。然后,我可以在浏览器中向API发出请求。然而,我似乎不知道如何通过请求库中的Python进行身份验证。我对任何方式的身份验证都持开放态度,甚至根据其他关于堆栈溢出的建议尝试使用浏览器中的cookie,但我对这种方法非常不熟悉

我完全错过了什么吗?我在堆栈溢出中找到的大多数身份验证方法似乎都适用于其他方法

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%确定用户名和密码的名称-值对是正确的

我甚至尝试了一个简单的get请求,并在URL上添加用户名、邮件和密码字段

根据URL方法的组合,我最近得到了401、404和405

提前道歉,因为我相信这是非常基本的。我提交用户名和密码的方法正确吗?还是我需要使用浏览器cookie

我正在通过水蟒使用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)

除了运行Javascript,在Python中没有什么与HTTP相关的事情是不能在浏览器中完成的

您可能缺少请求或某些参数。在您开始浏览器会话之前,可能有一个cookie集

尝试记录和模拟来自incognito选项卡的所有请求,这样您就可以确保开始时的状态与Python会话相同


如果您能告诉我们您正试图通过哪个网站进行身份验证,或许我们可以为您提供更多帮助。

谢谢您的关注。我知道我对这一点一般来说都很陌生,尤其是在身份验证方面。而且似乎你错放了一个参数。使用
username\u或\u email
代替username或email。另外,以:Mozilla开头的标题应该是一个带有“用户代理”密钥的dict。谢谢。我在来源中看到它是用户名或邮件,但可能我找错了地方。我包括了这个标题,因为我在其他帖子中看到一些评论说,有时候网站会阻止自动请求。因此,如果没有标题,这将是一个简单的工作:s=requests.Session()payload={'username_或_email':'XXXXXXX','password':'XXXXXXX'}test=s.post('',json=payload)print(test)我现在得到一个错误:我现在得到:SSLError:HTTPSConnectionPool(host='members.onepeloton.com',port=443):url:/login超过了最大重试次数(由SSLError(SSLError(“错误的握手:错误([('SSL例程','tls_进程_服务器_证书','certificate verify failed')),),)引起)我尝试更改代码以添加verify=False,正如我在另一篇堆栈溢出文章中看到的那样,但得到了相同的错误