PythonはモジュールのCookieインスタンス分析を要求します

Cookieはなじみのないものではなく、セッションと同様に、httpリクエストの前後の状態を維持できます。セッションとの違いは、Cookieデータはクライアントにのみ保存されることです。リクエストは、Cookieを処理するための対応するメソッドも提供します。

python requests module-sessionでは、リクエスト内のセッションオブジェクトがリクエスト間でCookieを保持できることがわかっているため、Cookieの使用が非常に簡単になります。メソッドレベルでリクエストを設定する場合は、次の例のように実行できます。

import requests
s = requests.session()
# ステップ1:リクエストにCookieを設定するリクエストを送信する
cookies =dict(cookies_are='cookie1')
# tips: http://httpbin.orgを使用してhttpリクエストとレスポンスをテストできます
r1 = s.get(url='http://httpbin.org/cookies', cookies=cookies)print(r1.text)
# ステップ2:リクエストを送信して、リクエストにCookieを再度設定します
cookies =dict(cookies_are='cookie2')
r2 = s.get(url='http://httpbin.org/cookies', cookies=cookies)print(r2.text)

運用結果

# r1.text
{" cookies":{"cookies_are":"cookie1"}}
# t2.text
{" cookies":{"cookies_are":"cookie2"}}

結果から、メソッドレベルのパラメータはリクエスト間で維持されないため、このメソッドではCookieが単一のリクエストに対してのみ機能することがわかります。これはリクエスト内のセッションオブジェクトのメカニズムであるため、ここでは繰り返しません。では、リクエスト間でCookieを保持したい場合はどうでしょうか。セッションオブジェクトのクロスリクエストメカニズムは、次のようにここでも適用できます。

import requests
s = requests.session()
s.cookies.update({'cookies_are':'cookie'})
r = s.get(url='http://httpbin.org/cookies')print(r.text)

言及する価値があるのは、Cookieを割り当てるために辞書を直接使用することに加えて、requestsは使用するRequestsCookieJarオブジェクトも提供します。その動作は辞書に似ていますが、インターフェイスはより完全で、クロスドメインおよびクロスパスの使用に適しています。公式ドキュメントの例を見てください。

import requests
jar = requests.cookies.RequestsCookieJar()
jar.set('tasty_cookie','yum', domain='httpbin.org', path='/cookies')
jar.set('gross_cookie','blech', domain='httpbin.org', path='/elsewhere')
url ='http://httpbin.org/cookies'
r = requests.get(url, cookies=jar)print(r.text)

運用結果

{" cookies":{"tasty_cookie":"yum"}}

結果から、RequestsCookieJarオブジェクトを使用して、さまざまな要求パスに従ってさまざまなCookieを送信する効果を実現し、Cookieの操作の柔軟性をさらに高めることがわかります。

参照文書

https://github.com/psf/requests/blob/master/requests/cookies.py

https://requests.readthedocs.io/en/master/user/quickstart/#cookies

以上が本稿の内容ですので、皆様のご勉強に役立てていただければ幸いです。

Recommended Posts

PythonはモジュールのCookieインスタンス分析を要求します
Python3モジュール
Pythonモジュールの知識の完全な分析
Pythonリクエストモジュールセッションコード例
Pythonデータ分析
Python3組み込みモジュールの使用法
Python線形補間分析
Pythonでの同時リクエスト
Pythonシングルインスタンスモード
pythonのPrettytableモジュール
Pythonでの同時リクエスト(パート2)
wavファイルのPython分析
Python3クローラーデータクリーニング分析
PythonクローラーのJSの分析
Pythonサンドボックスエスケープの分析
Pythonオブジェクト指向プログラミングの分析
Pythonデータサイエンス:関連分析
python描画モジュールのmatplotlib
PythonFakerデータ偽造モジュール