簡體   English   中英

認證失敗登錄網站

[英]Authentication failure logging into website

我正在嘗試使用此答案中的一段時間代碼登錄到該網站: https : //portals.broadinstitute.org/cmap/index.jsphttps : //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頁面。 為什么無法正確發送這些信息?

使用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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM