web-dev-qa-db-fra.com

Comment envoyer des cookies dans une demande de publication avec la bibliothèque Python Requests?

J'essaie d'utiliser la bibliothèque Requests pour envoyer des cookies avec une demande de publication, mais je ne sais pas comment configurer les cookies en fonction de sa documentation. Le script est destiné à être utilisé sur Wikipedia, et le ou les cookie (s) à envoyer sont de cette forme:

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

Cependant, le quickstart requests documentation en donne le seul exemple:

cookies = dict(cookies_are='working')

Comment puis-je encoder un cookie comme ci-dessus en utilisant cette bibliothèque? Dois-je le créer avec la bibliothèque de cookies standard de python, puis l'envoyer avec la demande POST?

76
Ricardo Altamirano

La dernière version de Requests construira CookieJars pour vous à partir de simples dictionnaires.

import requests

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

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

Prendre plaisir :)

161
Kenneth Reitz

Pour prolonger la réponse précédente, si vous associez deux demandes et souhaitez envoyer les cookies renvoyés de la première à la seconde (par exemple, maintenir une session active dans plusieurs demandes), vous pouvez procéder comme suit:

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