Doblejota Blog: Descargar una web con wget - Parte 2

Navegacion

jueves, 14 de febrero de 2013

Descargar una web con wget - Parte 2



Hace poco, empecé este tutorial sobre como podemos descargar una web al completo, usando wget en Linux. En esta segunda parte, tras haber explicado la documentación previa al procedimiento, empezamos con ello...
Antes de comenzar, respecto a la primera parte, me gustaría añadir, una puntualización de @Soulchainer, vía twitter.
Bueno, ese uso, nuevo, nuevo, lo que se dice nuevo, no es ;) Pero en algunos caso, es práctico. De todas formas,con el uso normal del programa, se identifica como el mismo cuando hace peticiones. So: quien no quiera que le acceda a la web de normal, que no le deje entrar y ya :p
Cito textualmente. Mis conocimientos de wget no son demasiado extensos, y con este comentario, de paso, remarcamos la dudosa legalidad de este procedimiento a la hora de "descargar webs".

Descargar webs...


Una vez explicado, vayamos a lo que nos interesa. Para descargar una web entera, previamente necesitarás algunos conocimientos sobre servidores,  como Apache, HTML y quizás Javascript o PHP por ejemplo. Si no eres un entendido, te recomiendo que te documentes un poco antes de empezar con esto.

Aunque wget hace magia, no es milagroso. El procedimiento consiste en:
  1. Descargar el index
  2. Analizar el index en busca de enlaces a contenido externo.
  3. Descargar el contenido externo.
  4. Ajustar el código de la página.
Si careces de conocimientos de HTML, insisto, te recomiendo que te documentes un poco antes de proceder, si no, será bastante dificil que puedas hacerlo.

Empecemos. En mi caso, lo tengo todo ubicado dentro de un mismo directorio: /var/www/carpeta y /var/www/carpeta/imagenes. Puedo acceder a ese contenido desde el navegador, tecleando http://localhost/carpeta/ mostrándome el index que he creado para esta ocasión.

Pulsa para ampliar

Para descargar el index, primero voy a crear un mkdir un directorio donde guardarlo todo. Una vez lo tengo, me muevo dentro con cd y tecleo
# wget http://localhost/carpeta/index.html
Obtendremos un archivo, que al abrirlo con un navegador, veremos algo como esto


¡Pero faltan las imágenes! Normal, porque hemos descargado únicamente el index, un documento HTML con las imágenes enlazadas dentro. Tendremos que abrir el archivo con un editor de texto, como Gedit, y analizar en busca de las imágenes, normalmente enlazadas con img src="rutadelaimagen". Esa "rutadelaimagen" es lo que nos interesa. En mi caso, la ruta es /carpeta/imagenes dentro del servidor.

Nos volvemos a la terminal, y a wget. Descargamos ahora con
# wget rutadeldirectoriodeimagenes/imagen
En mi caso,
# wget localhost/carpeta/imagenes/imagen1.jpg // Hasta descargar las 3 imagenes.
Una vez lo tengamos, ya sería cosa de, usando tus conocimientos de HTML, recolocar las rutas de las imágenes.

Ahora, que este es el método largo. ¿Podemos automatizar el proceso? Si, solamente habría que escribir un script. ¿Hay métodos más rápidos? Claro.
# wget -r -l 0 URL
De esta forma, descargamos TODO el contenido de la página, tanto el index, como todas las carpetas etc.

Bienvenidos, a la mágia de wget.