descargar todos los links con Bash

Temas sobre programación ( php, c, sql, html, perl, python, ruby, java, bash, etc ) y recursos ( herramientas, frameworks, hosting, cms, etc )

Moderadores: akodo, maiku

Responder
Avatar de Usuario
neurus
Forista Legendario
Forista Legendario
Mensajes: 1806
Registrado: Dom Oct 10, 2004 7:00 am

descargar todos los links con Bash

Mensaje por neurus » Sab Mar 31, 2012 11:34 pm

Estaba visitando una página de bases de datos de ajedrez. Muy completa, pero muy mal escrita. No había manera en que un ser humano tuviera paciencia de descargarse todos los links.

Ya sé que hay una extensión para Firefox (DownThemAll) que permite descargar todos los links de una página. La desinstalé hace mucho tiempo, porque molesta más de lo que ayuda.

Pero seguía necesitando descargar todos los links. Resultado:

Código: Seleccionar todo

#!/bin/bash -x
read -p "indique directorio raíz " RAIZ
curl $RAIZ >/tmp/raiz.html
sed -e 's/="/ /g 
	s/="/ /g
	s/">/ /g
	s/"/ /g
	s/</ /g	' /tmp/raiz.html >> raiz.html
for i in $(cat raiz.html|tr ' ' '\n'|grep http); do wget $i; done
Requeridos: curl y wget.

Lo que me trae a la memoria esta cita de The Unix Haters Book.
I liken starting one’s computing career with Unix, say as an undergraduate, to being born in East Africa. It is intolerably hot, your body is covered with lice and flies, you are malnourished and you suffer from numerous curable diseases. But, as far as young East Africans can tell, this is simply the natural condition and they live within it. By the time they find out differently, it is too late. They already think that the writing of shell scripts is a natural act
Traducción:
Me gusta comparar el iniciar una carrera informática en Unix, con nacer en África Oriental. Es intolerablemente cálido, tu cuerpo está cubierto de piojos y moscas, estás desnutrido y sufres de numerosas enfermedades curables. Pero, por lo que los jóvenes del Este de África pueden decir, esta es simplemente la condición natural en que ellos viven. Para cuando, con el tiempo, averiguan que hay algo diferente, es demasiado tarde. Ya piensan que escribir shellscripts es algo natural.
Avatar de Usuario
mcun
Administrador
Administrador
Mensajes: 3888
Registrado: Lun Abr 19, 2010 12:30 am
Ubicación: En una de las nalgas del culo del mundo (según la Bersuit Vergarabat)
Contactar:

Re: descargar todos los links con Bash

Mensaje por mcun » Sab Mar 31, 2012 11:55 pm

interesante el link...

a, y gracias por el script ..
Los programadores de verdad no documentan. La documentación es para los idiotas que no pueden leer un volcado de memoria.

Trusted Network and Developer | Lee el Reglamento !! |WIKI-EL | Twitter @mr_mcun
Debian + TTY | ArchLinux + awesome | openSUSE + Gnome-Shell | Linux User #508809
Avatar de Usuario
neurus
Forista Legendario
Forista Legendario
Mensajes: 1806
Registrado: Dom Oct 10, 2004 7:00 am

Re: descargar todos los links con Bash

Mensaje por neurus » Dom Abr 01, 2012 12:14 am

El libro del link lo recomiendo siempre que puedo. Hace un tiempo había empezado a traducirlo, pero me cansé y lo dejé.
La versión en PDF, hasta hace un par de años, la distribuía... ¡Microsoft!.
Es una colección de escritos completamente desquiciados, por gente que prácticamente creció con Unix (las anécdotas son de fines de los 70, comienzos de los 80).
Recuerdo que uno de los autores (son muchos, cada uno envía su anécdota sobre lo que le resultaba relevante), parece creer -finge creer- que su Solaris detecta cuando lleva mucho tiempo sin guardar un documento, para colgarse y perder todo.

En cuanto al script, ahora que terminó de descargar todo, acabo de darme cuenta de que podía prescindir de sed, haciéndolo mucho más simple. En lugar de convertir las comillas en espacios, y luego los espacios en saltos de llínea, convierto directamente las comillas en saltos:

Código: Seleccionar todo

#!/bin/bash -x
read -p "indique directorio raíz " RAIZ
curl $RAIZ >/tmp/raiz.html
for i in $(cat /tmp/raiz.html|tr '"' '\n'|grep http); do wget $i; done
Avatar de Usuario
mcun
Administrador
Administrador
Mensajes: 3888
Registrado: Lun Abr 19, 2010 12:30 am
Ubicación: En una de las nalgas del culo del mundo (según la Bersuit Vergarabat)
Contactar:

Re: descargar todos los links con Bash

Mensaje por mcun » Dom Abr 01, 2012 12:23 am

En estas ocasiones me lamento de no terminar de una vez de aprender bien ingles ... pero hay cosas realmente muy sorprendentes allí, o locas creo que pasan mucho tiempo compilando XD.

"Yes, weeell, to list my files I merely type P; MJOI."

"P; MJOI?? What they heck does that mean?"

"It just so happens that if I put my coffee cup on the keyboard and rock it a certain way, that's what it will type; so, I do that to list my files!"
Los programadores de verdad no documentan. La documentación es para los idiotas que no pueden leer un volcado de memoria.

Trusted Network and Developer | Lee el Reglamento !! |WIKI-EL | Twitter @mr_mcun
Debian + TTY | ArchLinux + awesome | openSUSE + Gnome-Shell | Linux User #508809
Avatar de Usuario
neurus
Forista Legendario
Forista Legendario
Mensajes: 1806
Registrado: Dom Oct 10, 2004 7:00 am

Re: descargar todos los links con Bash

Mensaje por neurus » Dom Abr 01, 2012 12:27 am

jajaja todo el libro tiene esa tónica.
Por ejemplo:
X-Windows is the Iran-Contra of graphical user interfaces: a tragedy of political compromises, entangled alliances, marketing hype, and just plain greed. X-Windows is to memory as Ronald Reagan was to money.
Nos fuimos un poco al carajo con el off topic, ¿no?
Avatar de Usuario
mcun
Administrador
Administrador
Mensajes: 3888
Registrado: Lun Abr 19, 2010 12:30 am
Ubicación: En una de las nalgas del culo del mundo (según la Bersuit Vergarabat)
Contactar:

Re: descargar todos los links con Bash

Mensaje por mcun » Dom Abr 01, 2012 12:30 am

Jaa ese si que es agudo ... si a esta altura el oftopic es el script XDD ...
Los programadores de verdad no documentan. La documentación es para los idiotas que no pueden leer un volcado de memoria.

Trusted Network and Developer | Lee el Reglamento !! |WIKI-EL | Twitter @mr_mcun
Debian + TTY | ArchLinux + awesome | openSUSE + Gnome-Shell | Linux User #508809
Avatar de Usuario
akodo
Moderador
Moderador
Mensajes: 1457
Registrado: Mié Nov 28, 2007 8:00 am
Ubicación: En la X del explorer (pulse para llamar)

Re: descargar todos los links con Bash

Mensaje por akodo » Jue Abr 05, 2012 12:28 am

Por tocar un poco la moral, pero ¿por qué usas curl y wget? ¿No sería mejor utilizar sólo una aplicación (preferentemente la que estuviera instalada en el ordenador)?

Es que me da vagancia utilizar scripts que me obliguen a instalar más programas de los que necesito.
Descargue el gestor de mp3 "Music Manager" -> ([url=http://ctrlalt.iespana.es]mmlf[/url])
Última versión del gestor "Music Manager" -> ([url=http://sourceforge.net/projects/jmusicmanager/]jmmm[/url])
Avatar de Usuario
neurus
Forista Legendario
Forista Legendario
Mensajes: 1806
Registrado: Dom Oct 10, 2004 7:00 am

Re: descargar todos los links con Bash

Mensaje por neurus » Jue Abr 05, 2012 3:58 am

Porque acostumbro usar curl en cuando programo php, y puedo confiar en el código html que descargue. No me ocurre lo mismo con wget, en quien confío más para bajar archivos binarios.

Pero si te da vagancia, la solución es no usarlo...
Responder
  • Similar Topics
    Respuestas
    Vistas
    Último mensaje