3
何時間も探してみましたが、何も動作していないようです。私はいくつかのデータをダウンロードするためにウェブページにログインしようとしています。ブラウジング接続が終了すると、ログインには新しいCookie(PHPSESSID)が必要になります。Pythonリクエスト:POSTとCookieを使用してWebサイトにログイン
import requests
payload = {'user':'myusername', 'password':'mypassword'}
url = 'blahblah.blah'
with requests.Session() as s:
r = s.get(url)
cookie = {'PHPSESSID': r.cookies['PHPSESSID']}
r = s.post(url, data=payload, cookies=cookie)
これは、しかし、私は、ログインに失敗したことだと思いログインページにリダイレクトします。私は、次の試してみました。私はその後、クロムを介してログインしようとし、手動でクッキーを取得します。私がこれを行うと、そのクッキーを使ってリクエストを使ってログインすることができます。
with requests.Session() as s:
cookie = {'PHPSESSID': 'some value obtained by logging in through Chrome and copying the cookie value'}
r = s.post(url, cookies=cookie, data=payload)
上記は完璧に機能します。
元のコードで何が間違っているのかわかりません。どんな援助もありがとう! 、あなたはあなたがログインしている その後の要求のためにあなたのcookie
を使用することができた後
リクエストセッションを使用するポイントは、Cookieが連続したリクエストで自動的に返されることです。あなたはあなた自身でクッキーを設定しませんか?またはs.cookiesを使って設定する – dhishan
私はクッキーを手動で設定せずに試しましたが、動作しませんでした。ログインページにリダイレクトされます。 – onepint16oz
Wiresharkツールを使ってサーバーが受信して送信したクッキーを分析し、 'cookie = {'PHPSESSID':r.cookies ['PHPSESSID']}'によって割り当てられたクッキーをチェックし、r.statusまたはr.historyをこのコードをインタプリタで実行します。コードは実際に私にはうまく見えます。 @dhishanが言ったように – dhishan