私の場合は、本番マシンからデータを抽出する必要があります。私の同僚は私のために以下の戦略(API)を設計しています。Pythonリクエストはクッキーを取得できません
- アプリケーションにログインする - アプリケーション/スクリプトを設定するためにクッキーを使用します。
- プロジェクトのホームページにアクセスします.JSON形式のプロジェクト情報が多数あります。
- 抽出プロジェクトIDフィルタを使用して、各資格のプロジェクトの詳細情報を取得するために、特別なAPIを使用して...
ここでは私のコードです:
import requests
s = requests.session()
login_data=dict(User='XXXXXX',Password='XXXXXX')
url = 'http://internal-pilot-XXXXXXX-elb-15h4lq2sm46fi-6574XXXXX.us-east-1.elb.amazonaws.com/XXXX-editor-web/spring_security_login'
s.post(url, data=login_data)
r = s.get('http://internal-pilot-XXXXXXX-elb-15h4lq2sm46fi-6574XXXXX.us-east-1.elb.amazonaws.com/XXXX-editor-web/api/projects')
私がすることで、コードの行を実行しますライン。 's.post(url、data = login_data)を実行した後、'私は 'Response [200]'を取得しましたが、セッションクッキーが空であることに気付きました。 012.( '...')を実行した後、私は 'Response [403]'を受け取ったことに気付き、セッションクッキーはもはや空ではなくなりました。
>>> s.get('http://internal-pilot-XXXXXXX-elb-15h4lq2sm46fi-6574XXXXX.us-east-1.elb.amazonaws.com/oaqc-editor-web/api/projects')
<Response [403]>
>>> s.cookies.get_dict()
{'AWSELB': '39E1F543067A169F5670C20A97C217D25E0183C29D4C14F38EFC1FC58E993C6F96E88F97B58950E092F4C948A0A99AE42DED20A93E542EFD80F074EB26477729DB0DD1B5469C655062CB6005E3C6F5BDDDCEA57A12', 'JSESSIONID': '61A6DFB9DDDF1BFD7FD4F6B47E7E2B2D'}
は、その後、私は試した R = s.get( '...'、クッキー=のs.cookies) まだだクッキーが正常に保存され、に渡されていなかったことの応答[403] '次の要求。
ここに間違いを見つけましたか?私は検索し、スタックオーバーフローで多くの同様の議論が見つかりましたが、誰も私の問題を解決しません。どうもありがとう。
私はあなたの提案を試みたが、違いはありません。 –
それからあなたの同僚と話をするか、Postmanを使ってPOSTリクエストをテストすることをお勧めします。 – Cicero