Si necesitamos descargar y parsear una web para extraer una cadena de caracteres, lo podemos realizar sin problemas con un script bash y wget. Pero resulta que hay veces que la web a la que queremos acceder está protegida por usuario/contraseña y como wget trabaja desde línea de comandos, no podemos acceder a las cookies almacenadas en el navegador para acceder a la URL protegida y descargarla. La solución pasa por exportar las cookies a un fichero de texto, e incluirlo en los parámetros de wget para que se autentifique en la web, y más tarde guarde la web.

acceder a la web para autentificarnos

Si queremos guardar las cookies para después poder descargar la URL protegida desde el comando wget, lo primero que debemos hacer es acceder a la web que más tarde vamos a descargar con nuestro usuario/contraseña y guardar las mismas y si existe la opción de «Recordarme en este equipo«, marcarlo.

instalar Export Cookies

El primer paso es instalar este plugin de Firefox que permite con dos clicks, exportar las cookies a un fichero de texto. Existen más complementos para más navegadores y otros métodos de extracción, pero este es el más rápido y sencillo.

Descargar Export Cookies

export-cookies-firefox

Una vez instalado el complemento, vamos al menú «Herramientas -> Export Cookies…» y guardamos el fichero cookies.txt en nuestro equipo.

descarga de la web

Una vez guardado el fichero cookies.txt, procedemos a descargar la web indicándolo como primer parámetro este fichero y como segundo la URL a descargar. Por último redireccionamos la salida a un fichero HTML.
Descarga mediante curl:

#!/bin/bash
#obtener la url con las cookies.
curl --cookie cookies.txt http://www.webprotegidaporcookies.com > webprotegida.html

Descarga mediante wget:

#!/bin/bash
#obtener la url con las cookies.
wget --load-cookies=cookies.txt http://www.webprotegidaporcookies.com > webprotegida.html