Formato de cookies cuando se utiliza wget?

31

¿Cuál es el formato de Netscape de wget's cookies.txt? Necesito reflejar un sitio web que requiere inicio de sesión. Utilizo una extensión de Chrome que devuelve cookies en ese formato, las guardo cookies.txt, importo con el wgetcomando pero, en vano, solo descarga el contenido como si no hubiera iniciado sesión en absoluto.

Agradezco cualquier ayuda.

Zarko Djuric
fuente

Respuestas:

46

El formato es el formato Netscape como se indica en la página del manual y este formato es:

El diseño del archivo cookies.txt de Netscape es tal que cada línea contiene un par nombre-valor. Un archivo de ejemplo cookies.txt puede tener una entrada similar a esta:

.netscape.com TRUE / FALSE 946684799 NETSCAPE_ID 100103

Cada línea representa una sola pieza de información almacenada. Se inserta una pestaña entre cada uno de los campos.

De izquierda a derecha, esto es lo que representa cada campo:

dominio : el dominio que creó Y que puede leer la variable.

flag : un valor VERDADERO / FALSO que indica si todas las máquinas dentro de un dominio dado pueden acceder a la variable. El navegador establece este valor automáticamente, según el valor que establezca para el dominio.

ruta : la ruta dentro del dominio para el que la variable es válida.

seguro : un valor VERDADERO / FALSO que indica si se necesita una conexión segura con el dominio para acceder a la variable.

caducidad : el tiempo UNIX en el que caducará la variable. El tiempo UNIX se define como el número de segundos desde el 1 de enero de 1970 a las 00:00:00 GMT.

nombre : el nombre de la variable.

valor : el valor de la variable.

(De " Preguntas frecuentes sobre cookies no oficiales ", editado para mayor claridad)

ETL
fuente
3
¿El archivo Tab o Space está separado?
Ferrybig
3
@ferrybig Se utilizan pestañas.
geckon el
¿Tiene algo especial que la cookie provenga, por ejemplo, 127.0.0.1 en lugar de algo con un nombre de dominio?
PypeBros
4

Una forma de obtener cookies para wget es usar las opciones --keep-session-cookies de wget.

Por ejemplo :

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

El ?__login etcdepende de la página web que está tratando de espejo, es posible que tenga que mirar cómo funciona el formulario de autenticación.

Entonces puedes usar:

wget --mirror --load-cookies cookies.txt http://MYSITE/
Arthur Lutz
fuente
3
esto no responde a la pregunta de cuál es el formato de archivo
Michael
2

El formato de archivo de cookies de Netscape para cada línea de datos es el anterior, pero no podrá leerlo a HTTP::Cookies::Netscapemenos que tenga una línea de encabezado como esta, que requiere el formato de archivo completo:

# Netscape HTTP Cookie File

o esto:

# HTTP Cookie File
Phil Goetz
fuente