Der richtige Weg, wenn urllib.request verwendet, ist ein OpenerDirector
mit einem bevölkerten verwenden CookieProcessor
:
cookieProcessor = urllib.request.HTTPCookieProcessor()
opener = urllib.request.build_opener(cookieProcessor)
dann verwenden Sie opener
und es werden die Cookies automatisch verarbeiten:
response = opener.open(request,timeout=100)
Standardmäßig wird das CookieJar (http.cookiejar.CookieJar
) in einem einfachen Speicher verwendet, aber Sie können einenverwenden in Sie 210 brauchen eine langfristige Lagerung von persistente Cookies oder sogar eine http.cookiejar.MozillaCookieJar
wenn Sie in einem cookies.txt
jetzt Vermächtnis Mozilla Format
Wenn Sie die Verwendung von Cookies bestehenden in Ihrem Web-Browser, Sie gespeichert persistente Cookies verwenden möchten Sie müssen sie zuerst in einer cookie.txt-kompatiblen Datei speichern und in ein MozillaCookieJar laden. Für Mozilla finden Sie ein Add-on Cookie Exporter. Für andere Browser müssen Sie manuell eine cookie.txt-Datei erstellen, indem Sie den Inhalt der Cookies lesen, die Sie in Ihrem Browser benötigen. Das Format finden Sie in The Unofficial Cookie FAQ. Auszüge:
... jede Zeile enthält ein Name-Wert-Paar. Ein Beispiel cookies.txt Datei kann einen Eintrag hat, der wie folgt aussieht:
.netscape.com WAHR/FALSCH 946.684.799 NETSCAPE_ID 100103
Jede Linie steht für ein einzelnes Stück der gespeicherten Informationen. Ein Tab wird zwischen jedem der Felder eingefügt.
Von links nach rechts, hier ist das, was jedes Feld darstellt:
- Domäne - Die Domäne, die erstellt und dass die Variable lesen kann.
- Flag - Ein TRUE/FALSE-Wert, der angibt, ob alle Maschinen innerhalb einer bestimmten Domäne auf die Variable zugreifen können. Dieser Wert wird automatisch vom Browser festgelegt, abhängig vom Wert, den Sie für die Domäne festgelegt haben.
- Pfad - Der Pfad innerhalb der Domäne, für den die Variable gültig ist.
- secure - Ein TRUE/FALSE-Wert, der angibt, ob für den Zugriff auf die Variable eine sichere Verbindung mit der Domäne erforderlich ist. * Ablaufdatum - Die UNIX-Zeit, für die die Variable abläuft. Die UNIX-Zeit ist definiert als die Anzahl der Sekunden seit dem 1. Januar 1970 00:00:00 GMT.
- name - Der Name der Variablen.
- Wert - Der Wert der Variablen.
Aber die normale Art und Weise ist eine vollständige Sitzung zu imitieren und automatisch die Cookies aus den Antworten extrahieren.
der Cookie ist nicht die Header. Also pass nicht so auf. Sie müssen höchstwahrscheinlich auf das Cookiejar-Modul schauen. Es ist jedoch nicht trivial, also ist der einfachste Weg zweifellos die Verwendung von Anfragen. –
Es ist kein schlechter Versuch; Lassen Sie mich nachdrücklich dazu ermutigen, eine höhere Bibliothek zu verwenden, die Norm lautet "Anfragen" für synchronen Code. Wie kommt es auch, dass 'header'-Variable nicht verwendet wird? Haben Sie vor, einen Header zu erstellen, der sowohl die Felder "User-Agent" als auch "Cookie" enthält? Schließlich empfehle ich, zuerst mit der Befehlszeile mit 'httpie' zu experimentieren. –