我试图登录到一个网站,以获取一些数据。我注意到'post'方法中没有表单数据,但是有一个'request payload'。此外,当我登录时,我再也看不到login post方法。以下是网络登录后方法的屏幕截图:
当我登录时,下一页显示的是我使用以下代码登录:
import requests
urlData = 'https://b*********.dk/Account/Market'
urlLogin = 'https://b**********an.dk/
with requests.Session() as c:
urlLogin = 'https://b*************n.dk/Authorization/
c.get(urlLogin)
NetSession = c.cookies['ASP.NET_SessionId']
login_data = {
'ASP.NET_SessionId': NetSession,
'username':"A******",
'Password':"q******",
'remmemberMe': True
}
lol = c.post(urlLogin, data=login_data)
print(lol.text)
运行此代码时,将输出以下内容:
^{pr2}$当我输入错误的密码时,Processed
值是false
,而正确的凭据是true
。但它不能登录。知道为什么会这样吗?在
正如您已经正确注意到的,原始凭证不是使用表单编码发送的(意思是
&user=alice&password=secret
),而是JSON编码的(因此{"user":"alice", "password": "secret"}
)。您还可以在请求的Content-Type
报头中看到这一点,它是application/json
where(与application/x-www-form-urlencoded
其他的相反)。在为了使您的定制请求生效,您可能还需要发送JSON编码的数据。这是documented in length in the official Documentation,所以我只给出一个简短的版本:
相关问题 更多 >
编程相关推荐