Con el terminal: Bajar un sitio web completo con Wget
Nada mejor que Wikipedia para explicar en que consiste esta herramienta:
GNU Wget es una herramienta de software libre que permite la descarga de contenidos desde servidores web de una forma simple. Su nombre deriva de World Wide Web (w), y de «obtener» (en inglés get), esto quiere decir: obtener desde la WWW.
Actualmente soporta descargas mediante los protocolos HTTP, HTTPS y FTP.
Entre las características más destacadas que ofrece wget está la posibilidad de fácil descarga de mirrors (espejos) complejos de forma recursiva, conversión de enlaces para la visualización de contenidos HTML localmente, soporte para proxies…
Es cierto que existen otras aplicaciones que nos ayudan a realizar este tipo de labores como httrack o incluso extensiones para Firefox como Scrapbook, pero nada como la sencillez de un terminal 😀
Haciendo la magia
Me resultó curioso en la película: The Social Network, como el personaje de Mark_Zuckerberg usa la frase: «Un poco de wget mágico«, cuando se disponía a descargar las fotos para Facemash 😀 y es cierto, wget permite hacer magia con los parámetros adecuados.
Veamos un par de ejemplo, comencemos con el uso sencillo de la herramienta.
Para bajar una página:
$ wget https://blog.desdelinux.net/con-el-terminal-bajar-un-sitio-web-completo-con-wget
Para bajar el sitio completo de forma recursiva, incluyendo imágenes y otros tipos de datos:
$ wget -r https://blog.desdelinux.net/
Y aquí viene la magia. Como bien nos explican en el artículo de HumanOS, muchos sitios verifican la identidad del navegador para aplicar diversas restricciones. Con Wget podemos burlar esto de la siguiente forma:
wget -r -p -U Mozilla https://blog.desdelinux.net/
O también podemos hacer pausa entre cada página, ya que de lo contrario el dueño del sitio puede darse cuenta que e estamos bajando el sitio completamente con Wget.
wget --wait=20 --limit-rate=20K -r -p -U Mozilla https://blog.desdelinux.net/