Format von Cookies bei der Verwendung von wget?

31

Was ist das Netscape - Format von wget‚s cookies.txt? Ich muss eine Website spiegeln, für die eine Anmeldung erforderlich ist. Ich verwende eine Chrome-Erweiterung, die Cookies in diesem Format zurückgibt. Ich speichere sie in cookies.txt, importiere sie mit dem wgetBefehl, aber es wird nur der Inhalt heruntergeladen, als wäre ich überhaupt nicht angemeldet.

Ich freue mich über jede Hilfe.

Zarko Djuric
quelle

Antworten:

46

Das Format ist das Netscape-Format, wie in der Manpage angegeben, und dieses Format ist:

Das Layout der Datei "cookies.txt" von Netscape sieht so aus, dass jede Zeile ein Name-Wert-Paar enthält. Eine Beispieldatei "cookies.txt" enthält möglicherweise einen Eintrag, der wie folgt aussieht:

.netscape.com TRUE / FALSE 946684799 NETSCAPE_ID 100103

Jede Zeile steht für eine einzelne gespeicherte Information. Zwischen den Feldern wird jeweils ein Tabulator eingefügt.

Von links nach rechts stellt jedes Feld Folgendes dar:

domain - Die Domäne, die erstellt hat UND die die Variable lesen kann.

flag - Ein TRUE / FALSE-Wert, der angibt, ob alle Computer in einer bestimmten Domäne auf die Variable zugreifen können. Dieser Wert wird vom Browser abhängig von dem Wert, den Sie für die Domain festgelegt haben, automatisch festgelegt.

path - Der Pfad in 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.

Ablauf - Die UNIX-Zeit, zu der 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.

value - Der Wert der Variablen.

(Aus " The Inofficial Cookie FAQ ", der Übersichtlichkeit halber bearbeitet)

ETL
quelle
3
Ist die Datei Tab oder Leerzeichen getrennt?
Ferrybig
3
@ferrybig Tabs werden verwendet.
Geckon
Ist etwas Besonderes daran, dass der Cookie von zB 127.0.0.1 stammt, anstatt von etwas mit einem Domainnamen?
PypeBros
4

Eine Möglichkeit, Cookies für wget zu erhalten, besteht darin, die Optionen --keep-session-cookies von wget zu verwenden.

Beispielsweise :

wget --keep-session-cookies --save-cookies cookies.txt "http://MYSITE/?__login=USER&__password=PASS"

Dies ?__login etchängt von der Website ab, die Sie spiegeln möchten. Möglicherweise müssen Sie sich ansehen, wie das Authentifizierungsformular funktioniert.

Dann können Sie verwenden:

wget --mirror --load-cookies cookies.txt http://MYSITE/
Arthur Lutz
quelle
3
Dies beantwortet nicht die Frage, was das Dateiformat ist
Michael
2

Das Netscape-Cookie-Dateiformat für jede Datenzeile ist wie oben beschrieben, aber Sie können es nur dann einlesen, HTTP::Cookies::Netscapewenn eine solche Kopfzeile vorhanden ist, die für das gesamte Dateiformat erforderlich ist:

# Netscape HTTP Cookie File

oder dieses:

# HTTP Cookie File
Phil Goetz
quelle