問題タブ [cookiejar]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - curl を Cookie を含む Python リクエストに変換する
背景の詳細:
2FA の SSO を備えた内部サイトがあり、クライアント証明書も必要です。ジョブを送信するフォームがあります。CLIから実行してプロセスを自動化しようとしています。これまでのところ、curl を使用してジョブを送信できました。動作させるには、ブラウザ セッションから Cookie を抽出する必要があります。したがって、次のcurlコマンドは期待どおりに実行されています
curl -b cookies.txt -k --cert cert --key key -F 'field=value' url
私は今、同じものを Python requests 呼び出しに変換しようとしました。ただし、Cookie を取得していないようです。これは、SSO ログイン ページに移動するスクリプトの出力からわかります。ここに私がこれまでに持っているスクリプトがあります
私ができることから、すべてのcurlオプションを一致させました。しかし、前述のように、Cookie を無視しているようで、SSO を実行しようとします。これを実行する方法はありますか?他に何も機能しない場合は、サブプロセスを介してカールを実行する必要があります。しかし、Pythonリクエスト内でそれを実行したいと思います。
どんな助け/ヒントも大歓迎です。
python - Pythonでhttp cookiejarにCookieを追加するのが難しいのはなぜですか? 私はいつも CookieError: Attempt to set a reserved key 'domain' で終わります
このトピックに関連して見つけたすべての質問を読みましたが、役に立たなかったり関連したものはありませんでした。
Asyncio と aiohttp で playwright を使用して、いくつかの Web ベースのタスクを自動化しています。そのワークフローの一部には、Cookie の取得と再利用が含まれます。私はプレイライトを使用context.storage_state()
して、ストレージからすべてを取得します。dict
次のように、ストレージ内のすべてを含む を返します。
を使用して Cookie を取得し、storage['cookies']
それらをループして、それぞれを に追加しようとします。これは単なるオブジェクトaiohttp.CookieJar()
であると確信しています。http.cookiejar.CookieJar()
これらのdictの1つをCookieとしてCookie jarにロードしようとするたびに、
CookieError: Attempt to set a reserved key 'domain'
RFC2109 標準とソース コードを見てきました: https://github.com/python/cpython/blob/3.9/Lib/http/cookies.py
何を試してもエラーが発生します。
私が試してみました:
また、Cookie dict からすべての「予約済み」キーを削除しようとしましたが、それが Cookie のデータの大部分です。実際の Cookie を Cookie jar にロードすることはできません。私はHTTP cookie.pyのソースコードとドキュメントを読みましたが、私がしていることの何が問題なのかを説明できる限り、そこには何もありません。
セッションを介さずに Cookie jar オブジェクトに Cookie をロードできた人はいますか?