Ich versuche, die Anforderungsbibliothek zum Senden von Cookies mit einer Post-Anfrage zu verwenden, bin mir jedoch nicht sicher, wie die Cookies basierend auf ihrer Dokumentation tatsächlich eingerichtet werden sollen. Das Skript ist für die Verwendung in Wikipedia vorgesehen. Die zu sendenden Cookies haben folgende Form:
enwiki_session=17ab96bd8ffbe8ca58a78657a918558e; path=/; domain=.wikipedia.com; HttpOnly
Der requests
Schnellstart der Dokumentation gibt dies jedoch als einziges Beispiel an:
cookies = dict(cookies_are='working')
Wie kann ich mit dieser Bibliothek ein Cookie wie das oben genannte codieren? Muss ich es mit der Standard-Cookie-Bibliothek von Python erstellen und dann zusammen mit der POST-Anfrage senden?
python
cookies
http-request
python-requests
Ricardo Altamirano
quelle
quelle
a=b;
Paaren. Verwenden Sie bei einer Vermutunga
als Schlüssel undb
als Wert in einem Wörterbuch.Antworten:
Die neueste Version von Requests erstellt CookieJars für Sie aus einfachen Wörterbüchern.
Genießen :)
quelle
Um die vorherige Antwort zu erweitern: Wenn Sie zwei Anfragen miteinander verknüpfen und die von der ersten an die zweite zurückgegebenen Cookies senden möchten (z. B. um eine Sitzung über Anfragen hinweg am Leben zu erhalten), haben Sie folgende Möglichkeiten:
quelle
requests.session
, indem Sie Cookies über mehrere Sitzungen hinweg speichern undsession
stattdessen Anrufe vom zurückgegebenen Objekt tätigen .request.session
Wenn Sie das Cookie an den Browser übergeben möchten, müssen Sie es an die Header anhängen, die zurückgesendet werden sollen. Wenn Sie wsgi verwenden:
Ich kann mich erfolgreich bei Bugzilla und TWiki authentifizieren, die in derselben Domäne gehostet werden, in der mein Python-WSGI-Skript ausgeführt wird, indem ich den Benutzer / das Kennwort auth an mein Python-Skript übergebe und die Cookies an den Browser weitergebe. Dadurch kann ich die Bugzilla- und TWiki-Seiten im selben Browser öffnen und mich authentifizieren lassen. Ich versuche, dasselbe mit SuiteCRM zu tun, aber ich habe Probleme damit, dass SuiteCRM die vom Python-Skript erhaltenen Sitzungscookies akzeptiert, obwohl es erfolgreich authentifiziert wurde.
quelle