Как отправить куки в пост-запросе с библиотекой Python Requests? - PullRequest
75 голосов
/ 23 августа 2011

Я пытаюсь использовать библиотеку Requests для отправки файлов cookie с пост-запросом, но я не уверен, как на самом деле настроить файлы cookie на основе ее документации.Сценарий предназначен для использования в Википедии, и файлы cookie, которые необходимо отправить, имеют следующую форму:

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

Однако, быстрый запуск документации requests дает это как единственный пример:

cookies = dict(cookies_are='working')

Как я могу кодировать cookie, как указано выше, используя эту библиотеку?Нужно ли делать это с помощью стандартной библиотеки cookie Python, а затем отправить ее вместе с запросом POST?

Ответы [ 2 ]

157 голосов
/ 23 августа 2011

В последнем выпуске Requests для вас будут созданы CookieJars из простых словарей.

import requests

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

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

Наслаждайтесь:)

91 голосов
/ 23 января 2012

Просто для продолжения предыдущего ответа, если вы связываете два запроса вместе и хотите отправить файлы cookie, возвращенные из первого, во второй (например, для поддержания сеанса в режиме ожидания между запросами), вы можете сделать:

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