Cómo capturar páginas web con el programa GNU Wget Raúl Araya, Judit Feliu, Mercedes Suárez {raul.araya; judit.feliu; mercedes.suarez}@iula.upf.es Qué es GNU Wget? Una utilidad de código abierto (GNU) GNU Wget es una utilidad de red gratuito que sirve para capturar archivos de Internet. Para ello utiliza los dos protocolos más empleados en la red, el HTTP y el FTP. Es un programa de código abierto, es decir, del cual podemos disponer del código fuente (+ info: http://www.gnu.org). Un programa de consola Es un programa de consola, es decir, que se ejecuta en modo texto. No es un programa gráfico, ni interactivo. Esto, que puede asustarnos al principio si estamos demasiado acostumbrados a utilizar un entorno gráfico, no tiene por que desanimarnos. Pronto descubrimeros toda la potencia de este pequeño programa. Un programa de capturas recursivas Con GNU Wget, es posible capturar las páginas (y los directorios FTP) recursivamente, es decir, con GNU Wget podemos hacer copias completas de los sitios web que nos interesen (siempre y cuando tengamos el espacio libre suficiente en nuestro disco duro). Dónde lo puedo encontrar? En el CD-ROM En la carpeta del taller 4, encontrarás el archivo comprimido que contiene el ejecutable junto con su archivo de ayuda, así como otros archivos que describiremos más adelante, en la sección de Trucos y Consejos. Recuerda que para descomprimir el archivo necesitarás algún programa de descompresión, como por ejemplo, Winzip (http://www.winzip.com). En Internet En Internet, lo podrás encontrar en la siguiente dirección: http://www.qtm.net/~twegscheid/wget.html Qué necesito para ejecutarlo? GNU Wget funciona en casi cualquier tipo de UNIX, y en entornos win32 (es decir, Windows 95, Windows 98 y Windows
2000 ). La versión incluida en el CD-ROM es para entornos win32. Recuerda que para que funcione debes estar conectado a Internet. Si no es así, el programa dará un mensaje de error. Cómo se instala? Descomprime el contenido del archivo wget153.zip que se encuentra en la misma carpeta que este tutorial en un directorio de tu disco duro (por ejemplo, en c:\wget\). Ejecución básica Para acceder al programa, deberemos hacerlo desde MS-DOS en Windows 95 y Windows 98, o desde la consola del sistema en Windows 2000. TRUCO: Para acceder rápidamente a una consola desde el escritorio de Windows, podemos pulsar la combinación de teclas WIN+R. Aparecerá en pantalla el diálogo Ejecutar. Escribiremos en él command.com y pulsaremos la tecla Enter. Una vez situados en la consola, escribiremos el siguiente comando: cd c:\wget (si este es el directorio en el que lo hemos instalado). Enter Desde aquí podremos ejecutar el programa. Cuáles son las opciones más utilizadas? Para capturar una única página Digamos que nos interesa capturar tan sólo una página, sin los gráficos que la acompañan y sin seguir los hipervínculos que hay en ella. Por ejemplo, si queremos capturar el archivo internet.html que se encuentra en la dirección http://www.lugar.en (este hipervínculo es imaginario). Ejecutaremos el siguiente comando: wget http://www.lugar.en/internet.html Para capturar un lugar de internet completo Supongamos que queremos capturar un lugar de Internet completo, como por ejemplo, un periódico digital que se encuentra en la dirección: http://www.lugar.en/internet Ejecutaremos el siguiente comando: wget m http://www.lugar.en/internet Deberemos tener cuidado con esta opción, ya que hará una copia exacta de todo el lugar en nuestro disco duro. El parámetro
-m le indica al programa que debe hacer un mirror, es decir, una copia de la información tal y como se encuentra almacenada en el servidor. Si en algún momento deseamos parar la ejecución del programa (por ejemplo, si nos damos cuenta de que estamos copiando demasiada información y no nos interesa, podremos parar el programa utilizando la combinación de teclas CTRL+X). Si tan sólo nos interesa capturar la página principal de ese lugar y seguir un determinado número de niveles de hipervínculos de esa página (en el ejemplo seguiremos 3 niveles), utilizaremos el siguiente comando: wget -r -l=3 http://www.lugar.en/internet Con el parámetro -r le estamos indicando al programa que debe hacer una captura recursiva. Con la opción -l=n le indicamos al programa que debe seguir los hipervínculos que se encuentran en la página principal hasta n niveles de recursividad (en este caso 3). Deberemos tener en cuenta que tanto esta serie de parámetros como la anterior seguirán los hipervínculos fuera del dominio original. Si desde la página principal situada en http://www.lugar.en/internet hay un hipervínculo a http://www.otrolugar.en/otrositio, el programa capturará también las páginas (en el ejemplo sólo hasta dos niveles, ya que el primero es la página inicial http://www.lugar.en/internet) situadas en ese otro lugar. A continuación veremos cómo evitar esto. Para capturar un lugar de Internet sin salir de un directorio Se puede dar el caso de que nos interese capturar un lugar de internet sin seguir los hipervínculos que apuntan a otros lugares de internet, esto es, un caso en el que queramos capturar tan sólo lo que se encuentra en un directorio determinado y sus subdirectorios. Utilizaremos el siguiente comando: wget -r -l=3 np http://www.lugar.en/internet Como se ve, hemos empleado el mismo comando, añadiendo el parámetro -np, que le indica al programa que no ascienda a directorios superiores. Dónde está la información que he copiado? Una de las características principales del programa es que siempre hará una copia exacta de la información tal y como se encuentra en el servidor. Es decir, hará una copia de la estructura de directorios del servidor. Así, si queremos copiar un libro con varios capítulos, y la organización de los directorios en el servidor es la siguiente:
http://www.libro.de/internet/indice.html http://www.libro.de/internet/cap1/capitulo1.html http://www.libro.de/internet/cap2/capitulo2.html etc. Y la página índice contiene enlaces a los capítulos 1 y dos, al utilizar el programa, copiará la información en el disco duro en un directorio llamado www.libro.de, que contendrá otro directorio llamado internet. En éste encontraremos un archivo llamado indice.html, y dos directorios más llamados cap1 y cap2, que contendrán los archivos capitulo1.html y capitulo2.html respectivamente. Quizás no nos guste esta forma de guardar la información, ya que implica tener que recorrer varios directorios para poder recuperarla más adelante. Si queremos evitar este comportamiento, podremos hacerlo añadiendo a las órdenes anteriores los parámetros -nd (que le indica que no crea directorios en nuestro disco duro) y/o -nh (que le indica que no cree una copia de los directorios tal y como se encuentran en el servidor). Si lo que nos interesa es volcar toda la información a un archivo, añadiremos el parámetro -- output-document=archivo, donde archivo será el nombre del archivo en el que queremos que vaya volcando toda la información. Cómo accedo a la ayuda? Hasta aquí hemos visto algunos ejemplos de los usos más frecuentes que puede tener el GNU Wget. Esto pretende ser una guía rápida de uso, así que no nos extenderemos más. Si deseamás información, o si le interesa averiguar qué otros parámetros puede aceptar el programa wget, bastará con que ejecutar el siguiente comando: wget --help En pantalla aparecerá la lista completa de parámetros que acepta el GNU Wget, junto con una breve descripción (en inglés). Es muy aconsejable leer la ayuda del programa, ya que GNU Wget tiene más usos que los señalados en esta breve guía de uso. También nos puede servir para bajarnos archivos binarios de Internet, ya que también utiliza el protocolo FTP. Trucos y consejos Ejecutar wget desde cualquier directorio Si desea ejecutar el programa wget desde cualquier directorio cuando esté en la consola, descomprima los archivos en el directorio c:\windows\command (sólo para Windows 95 y Windows
98 ). Todo esto está muy bien, pero son muchos parámetros para memorizar Si no tiene buena memoria, o simplemente no le apetece tener que ver siempre la lista de parámetros con el comando wget -- help, deje que el ordenador trabaje por usted, cree uno o más archivos de proceso por lotes que contenganlas opciones más comunes. Aquí tiene un ejemplo: En Windows 95 y Windows 98 : Entre en MS-DOS, y ejecute el siguiente comando: edit Escriba lo siguiente: wget -r -l=3 np nd %1 (en caso de haber instalado el wget en un directorio distinto de c:\windows\command, deberemos introducir la ruta completa, por ejemplo, c:\wget\wget... ) Con el ratón vamos al menú Archivo, Guardar como. Donde pone, nombre del archivo, escribimos: C:\windows\command\zugaweb.bat Esto nos permitirá ejecutar el comando: zugaweb http://www.sitio.en/internet Que capturará el sitio de Internet utilizando el GNU Wget con los parámetros que hemos escrito en el archivo zugaweb.bat.