Wie speichere ich Anfragen (Python) -Cookies in einer Datei?
Wie die Bibliothek zu benutzen requests
(in python) nach einer Anfrage
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import requests
bot = requests.session()
bot.get('http://google.com')
halten alle cookies in einer Datei und dann wiederherstellen Sie die cookies aus einer Datei.
InformationsquelleAutor der Frage agrynchuk | 2012-10-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es keine unmittelbare Möglichkeit dies zu tun, aber es ist nicht schwer zu tun.
Können Sie sich einen
CookieJar
- Objekt aus der session, wiesession.cookies
. Sie können- Anfragen.utils.dict_from_cookiejar
verwandeln es in ein dict. Anschließend können SieGurke
, um es zu speichern in eine Datei (Sie können auchRegal
wenn Sie brauchen, um zu speichern mehr als eine Sache).Einem vollständigen Beispiel :
Laden ist dann :
InformationsquelleAutor der Antwort madjar
Nachdem ein Aufruf wie
r = requests.get()
,r.cookies
zurückRequestsCookieJar
die Sie direktGurke
, d.h.Wenn Sie möchten, speichern Sie Ihre cookies in für Menschen lesbaren format, müssen Sie einige Arbeit zu extrahieren, die
RequestsCookieJar
zu einemLWPCookieJar
.InformationsquelleAutor der Antwort dtheodor
Weiter geht ' s mit @miracle2k Antwort, Anfragen
Session
s sind dokumentiert arbeiten mit einem cookielibCookieJar
. DieLWPCookieJar
(undMozillaCookieJar
) können speichern und laden Ihre cookies zu und von einer Datei. Hier ist eine komplette code-snippet speichern und laden von cookies für Anfragen Sitzung. Dieignore_discard
parameter wird verwendet, um die Arbeit mit httpbin für den test, aber Sie können nicht wollen, es gehören Ihr im echten code.InformationsquelleAutor der Antwort gazpachoking
Dies wird den job tun:
Dem CookieJar API erfordert, dass Sie den Aufruf der load() und save () - manuell allerdings. Wenn Sie nicht über die Pflege der cookies.txt format, ich habe eine ShelvedCookieJar Umsetzung dauerhaft auf ändern.
InformationsquelleAutor der Antwort miracle2k
Fand ich, dass die anderen Antworten hatte Probleme:
Diese Antwort beseitigt diese beiden Probleme:
Dann rufen Sie
save_cookies(session, filename)
zu speichern oderload_cookies(session, filename)
zu laden. So einfach ist das.InformationsquelleAutor der Antwort MattClimbs
Biete ich eine Art von json:
und
InformationsquelleAutor der Antwort Lewis Livermore
dtheodor Antwort bekam 95% gibt, außer dieser:
Mir dies wirft eine Ausnahme, nämlich session() nicht braucht Argumente.
Arbeitete ich rund um Sie, indem Sie die Schlüssel/Werte auf den Keks.get_dict und fügen Sie diese manuell in die Sitzung mit:
InformationsquelleAutor der Antwort gtalarico
Können Sie die Gurke die cookies-Objekt direkt:
Den dict Darstellung findet eine fülle von Informationen: Ablauf, domain, Pfad,...
Es hängt von der Nutzung Sie beabsichtigen zu tun mit den cookies, aber wenn Sie nicht über Informationen über den Ablauf, zum Beispiel, sollten Sie implementieren die Logik zu verfolgen, Ablauf, von hand.
Beizen die Bibliothek zurückgegebene Objekt können Sie ganz einfach rekonstruieren, der Staat, dann können Sie relais, die auf der Bibliothek der Umsetzung.
Offensichtlich, auf diese Weise, den Verbraucher über die eingelegte Objekt muss die gleiche Bibliothek
InformationsquelleAutor der Antwort JackNova