it-swarm.com.de

Wie versende ich Cookies in einer Post-Anfrage mit der Python Requests-Bibliothek?

Ich versuche, die Bibliothek Requests zu verwenden, um Cookies mit einer Post-Anfrage zu senden, bin mir aber nicht sicher, wie ich die Cookies basierend auf ihrer Dokumentation einrichten soll. Das Skript ist für die Verwendung in Wikipedia vorgesehen. Die zu sendenden Cookies haben die folgende Form:

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

In der Kurzanleitung der Dokumentation zu requests ist dies jedoch das einzige Beispiel:

cookies = dict(cookies_are='working')

Wie kann ich mit dieser Bibliothek ein Cookie wie das oben beschriebene kodieren? Muss ich es mit der Standard-Cookie-Bibliothek von Python erstellen und dann zusammen mit der POST Anfrage senden?

76

Die neueste Version von Requests erstellt CookieJars für Sie aus einfachen Wörterbüchern.

import requests

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

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

Genießen :)

161
Kenneth Reitz

Um die vorherige Antwort zu erweitern: Wenn Sie zwei Anforderungen miteinander verknüpfen und die von der ersten an die zweite zurückgegebenen Cookies senden möchten (z. B. um eine Sitzung über mehrere Anforderungen hinweg aufrechtzuerhalten), können Sie Folgendes tun:

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