我正在尝试从此 URL 登录网站:“ https://pollev.com/login ”。由于我使用的是学校电子邮件,因此门户会重定向到学校的登录门户,并使用该门户来验证登录。当您输入 uw.edu 电子邮件(例如:myname@uw.edu)时,它就会显示。登录后,UW 将 POST 请求回调发送到https://www.pollevywhere.com/auth/washington/callback ,其中包含如下所示的SAMLResponse 标头。我想我需要模拟来自 pollev 登录页面的 GET 请求,然后将登录标头发送到 UW 登录页面,但我现在所做的不起作用。
这是我的代码:
import requests
with requests.session() as s:
header_data = {
'user - agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 '
'(KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36',
'referer': 'https://pollev.com/login'
}
login_data = {
'j_username' : 'username',
'j_password' : 'password',
'_eventId_proceed' : 'Sign in'
}
r = s.get('https://idp.u.washington.edu/idp/profile/SAML2/Redirect/SSO?execution=e2s1',
headers=header_data, data=login_data)
print(r.text)
Run Code Online (Sandbox Code Playgroud)
现在,r.text 显示一个 NoSuchFlowExecutionException html 页面。我缺少什么?登录网站通常需要登录名、密码、Referrer 和 X-CSRF 令牌,我可以做到这一点,但我不知道如何导航重定向以进行身份验证。