Wget 2. Descargas Recursivas

Para variar, en esta ocasión intentaré ser breve, mientras seguimos explorando los usos de mi gestor de descargas favorito: Gnu Wget.
Hagamos un breve repaso de la primera parte, si no entiendes estos comandos, te recomiendo que estudies la 1a. lección completa.

1. Descargar un sólo archivo.

wget http://devel.trisquel.info/trisquel_3.5RC_i686.iso

1.1. Por si se nos corta la descarga, continuar y ver progreso

wget -c -v http://devel.trisquel.info/trisquel_3.5RC_i686.iso

1.2. Limitar la velocidad de descarga.

wget -cv --limit-rate=10k http://devel.trisquel.info/trisquel_3.5RC_i686.iso

1.3. Descarga en Background (segundo plano).

wget -b -cv http://devel.trisquel.info/trisquel_3.5RC_i686.iso

1.4. En Background, Continuando, Volcando información y Limitando Rate (tasa).

wget -b -cv --limit-rate=5k http://devel.trisquel.info/trisquel_3.5RC_i686.iso

1.5. Descargar página con todos los archivos de los que depende para mostrarse correctamente.

wget -pE -cv http://mexico.indymedia.org/?article1288

Hasta aquí hemos descargado un sólo elemento, o una página con todos los archivos asociados, ahora veremos unos cuantos ejemplos solamente de como usar wget para descargar colecciones de páginas.

¡Sólo estamos conjugando verbos!

Ejemplo 2. Input (entrada) de una lista de direcciones.

Confeccionamos una lista de URLs a descargar en un archivo de texto, y para que wget lea esas entradas, le indicamos el nombre del archivo a continuación de la opción -i input:

wget -b --limit-rate=20k -cv -Ep -i mis_páginas.txt

Pero no es forzoso complicarnos tanto la vida confeccionando una lista si estamos descargando, digamos, varias páginas con muy poca variación, por ejemplo, algunos artículos de Indymedia México:

En Bash podemos crear ‘substituciones de serie’ encerrando varios elementos en un comando, entre llaves: { elemento1, elemento2, …}

wget -nc -Ek -v -p http://mexico.indymedia.org/?article{1291,1318,1314,1304,1303}

Introduje una nueva opción -nc para evitar que descargue archivos repetidos, como hojas de estilo que son comunes usualmente a las páginas de un mismo sitio.

También notarás que no necesitan estar en orden alguno, los valores pueden ser arbitrarios, cualquier cadena es válida y wget la descargará mientras exista esa URL, pero imagínate hacer la lista para más de media docena de páginas ¡o cientos! :-S

En este caso, donde sí hay una secuencia lógica de URLs, podemos usar una simple función recursiva y pasársela a wget para completar las URL que queremos que descargue:

for index in $(seq 1274 1 1285); do
wget --spider http://www.phdcomics.com/comics/archive.php?comicid=$index;
done

Explicar este código rebasa el objetivo de este tutorial, así que lo dejaremos para el curso de bash que estamos preparando. Pero si te animas a estudiar por tu cuenta, te recomiendo esta página con cursos variados de software libre y no sólo de Bash: Dunetna, la mayor parte está en catalán, pero hay partes en castellano, y bueno, el catalán es más cercano a ti que me lees seguramente que el inglés o el francés.

Igual puedes intentar escribir o pegar el código en una sola línea y ver que pasa, no te preocupes, no te hará daño ni ningún servidor te bloqueará por intentar trocitos de código inofensivo como este. ¿Podrás decirme por qué? Ofrezco una recompensa: Te ayudo a desarrollar un programita sencillo en Bash si me respondes correctamente y donde encontraste la información.

Bajando Sitios (mirrors locales)

Como te podrás dar cuenta, hoy no tengo ganas de ser tan exhaustivo, así que sólo te voy a dar una receta breve para copiarte una página y todas las que podemos visitar a partir de esta, creando una copia, relativamente limitada de cierto sitio, pero buena para un primer ejercicio de recursividad con las funciones internas de Wget y sin recurrir a funciones que tal vez no estén disponibles en sistemas sin una línea de comandos avanzada, por ejemplo, Windows.

Además, en respuesta a un significativo número de nuestras lectoras, que por algunos manuales de acupuntura que he compartido nos honran con su visita, les voy a dar la receta para bajarse una gran cantidad de páginas de Medicina Tradicional China, con una gran cantidad de esquemas.

Lamentablemente, el sitio tiene un Copyright super restrictivo, que no me permite ni siquiera poner todo junto y ofrecerte la compilación, mucho menos reeditarla (no conocen Creative Commons), pero nada me impide como obtengas tu una copia personal de modo casi identico a que visitaras el sitio. La ventaja es que lo puedes descargar en unos cuantos minutos a una USB o a tu compu y ya luego aunque no tengas conexión podrás leerlo o editar para tu uso personal con toda calma

wget -nc -nd -p -Ek -r -l 1 http://www.interhiper.com/Medicina/Acupuntura/indice.htm

Y hablando de derecho a compartir sin fines de lucro la información, te pido que reflexiones, que el software libre, no es otra cosa sino ejercer el derecho humano #19, algunos se van sólo a las primeras 7 u 8 palabras, acerca de la libertad de opinión, pero también dice:

…esto incluye la libertad de recibir información (acceder al código fuente) y difundirla (compartir tus modificaciones) sin limitación de fronteras.
¡Comparte el conocimiento y la cultura! ¡Disfruta y lucha por los derechos humanos! ¡Eso es el software libre!

  1. alunado

    Acerca de tezcatl:

    Beta tester de Red Hat !! jajaja… pero es cierto.

    Muy buena la info, ya la estoy copiando. saludos desde el futuro.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s