0
私はこのウェブサイトにログインしようとしています:https://portals.broadinstitute.org/cmap/index.jspこの回答からのコードを使用してください:https://stackoverflow.com/a/22547541/651779。これは正しく動作するために使用されました。しかし、これを実行すると、私は許可が拒否されます。ユーザー名とパスワードは正しいです。これは、(で満たされたユーザー名とパスワードを使用して)URL与えウェブサイトにログインできませんでした
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)
:
コードの下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
以前のスタック回答では、最初にクッキーを設定する必要があります。上記の印刷は、
JSESSIONID B2CFD19CBB9105EC2DC4D75DD7C3C0C9 portals.broadinstitute.org None True
となります。
print(resp.read())
誤ったユーザーパスワードの組み合わせを入力すると、同じhmtlページが表示されます。どのように正しく送信されないのでしょうか?
は、なぜあなたは 'requests'を使用していませんか? –
@tmadam requests.Session()が p = s.post( 'http://www.broadinstitute.org/ cmap/j_security_check '、data = payload) print(p.text) も認証エラー –