登录websi时身份验证失败

2024-10-05 15:27:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图登录到这个网站:https://portals.broadinstitute.org/cmap/index.jsp使用代码从一段时间以前从这个答案:https://stackoverflow.com/a/22547541/651779。它以前工作正常。然而,当运行它现在我得到一个授权被拒绝。用户名和密码正确。你知道吗

代码下方:

login_url = 'http://www.broadinstitute.org/cmap/j_security_check'

login_values = urllib.parse.urlencode({'j_username': user,
                                       'j_password': pwd, 
                                       'submit': 'sign in'})
print(login_url+'?'+login_values)

这将提供url(填写用户名和密码):

http://www.broadinstitute.org/cmap/j_security_check?j_username=<username>&j_password=<password>&submit=sign+in

当我粘贴到我的浏览器它正确登录我,所以我知道用户名和密码仍然是好的。你知道吗

payload_submit_signature = bytes(login_values, 'ascii')

cj = http.cookiejar.CookieJar()
opener = urllib.request.build_opener(
    urllib.request.HTTPRedirectHandler(),
    urllib.request.HTTPHandler(debuglevel=0),
    urllib.request.HTTPSHandler(debuglevel=0),
    urllib.request.HTTPCookieProcessor(cj))

opener.open(submit_signature_url) #First call to capture the JSESSIONID
resp = opener.open(login_url, payload_submit_signature)
for cookie in cj:
    print (cookie.name, cookie.value, cookie.domain, cookie.expires, cookie.secure) #etc etc

根据前面的堆栈应答,需要首先设置cookie。上面的指纹显示

JSESSIONID B2CFD19CBB9105EC2DC4D75DD7C3C0C9 portals.broadinstitute.org None True

所以这似乎奏效了。你知道吗

print(resp.read())

这与您在填写错误的用户密码组合时得到的hmtl页面相同。为什么不能正确发送?你知道吗


Tags: orghttpurl密码cookierequestusernamelogin
1条回答
网友
1楼 · 发布于 2024-10-05 15:27:36

使用requests,这段代码适合我

login = 'https://portals.broadinstitute.org/cmap/j_security_check'
index = 'https://portals.broadinstitute.org/cmap/index.jsp'
username = 'my username'
password = 'my password'
data = { 'j_username':username, 'j_password':password, 'submit':'sign+in' }

ses = requests.Session()
ses.get(index)    # you need this to get cookies #
post = ses.post(login, data=data)

print(ses.cookies.get_dict())
print(post.url)
print('sign out' in post.content)

结果:

{'JSESSIONID': 'A86EDB10DB2BC063EFE7A528F5E88A77'}
https://portals.broadinstitute.org/cmap/index.jsp
True

相关问题 更多 >