web-dev-qa-db-ja.com

Python Requestsライブラリを使用して投稿リクエストでCookieを送信するにはどうすればよいですか?

Requests ライブラリを使用して、投稿リクエストでCookieを送信しようとしていますが、ドキュメントに基づいて実際にCookieを設定する方法がわかりません。このスクリプトはウィキペディアで使用するためのものであり、送信する必要があるCookieは次の形式です。

enwiki_session=17ab96bd8ffbe8ca58a78657a918558e; path=/; domain=.wikipedia.com; HttpOnly

ただし、requestsドキュメントのクイックスタートでは、これを唯一の例として示しています。

cookies = dict(cookies_are='working')

このライブラリを使用して上記のようなCookieをエンコードするにはどうすればよいですか? Pythonの標準cookieライブラリで作成し、POSTリクエストとともに送信する必要がありますか?

76

Requestsの最新リリースでは、単純な辞書からCookieJarsが作成されます。

import requests

cookies = {'enwiki_session': '17ab96bd8ffbe8ca58a78657a918558'}

r = requests.post('http://wikipedia.org', cookies=cookies)

楽しい :)

161
Kenneth Reitz

前の答えを拡張するために、2つのリクエストをリンクし、最初のリクエストから返されたCookieを2番目のリクエストに送信する場合(たとえば、リクエスト間でセッションを維持する場合)は、次のことができます。

import requests
r1 = requests.post('http://www.yourapp.com/login')
r2 = requests.post('http://www.yourapp.com/somepage',cookies=r1.cookies)
91
oarevalo