Ryke Weblog

Ubuntu, Linux, Android, Reflexiones y Eventos

Descargando con wget

Posted by ryke en septiembre 9, 2008

Wget es un gestor de descarga de contenidos de servidores web. Puede descargar cualquier componente, siempre que esté disponible, de un sitio web. Soporta descargas mediante los protocolos HTTP, HTTPS y FTP. Se trata de una herramienta completísima (mediante man wget se puede ver todos los parámetros que soporta).

Para quien no le guste el Terminal, existe Gwget, un front-end en modo gráfico con algunas de las opciones de wget (para modificarlas, se hace a través de Edit / Preferences).

Wget guarda los archivos descargados en la carpeta desde donde ha sido ejecutado (por defecto, la carpeta personal). Para guardarlo en otro directorio, se puede hacer mediante la opción al efecto o simplemente cambiando de directorio en el Terminal antes de ejecutar wget.

Algunas de las opciones de wget son:

-k: (–convert-links) tras la descarga, convierte los enlaces apuntando a archivos locales para permitir la navegacion off-line
-l: especifica la profundidad de la descarga recursiva (por defecto es 5)
-c: reanuda la descarga parcial (ya realizada mediante wget u otro programa) de un determinada archivo
-m : (–mirror) activa recursivo, time-stamping, establece profundidad infinita y mantiene la estructura de directorios. Equivalente a -r -N -l inf –no-remove-listing.
-nc: no baja elementos ya descargados anteriormente
-nd: en las descargas de manera recursiva, se puede indicar que no cree directorios (todos los archivos serán archivados en el mismo directorio)
-np: recursivo hacia los directorios hijos y no hacia el padre
-o fichero.log : permite especificar el nombre de un fichero donde se guardará un log
-a fichero.log : lo mismo que -o, pero añadiendo en lugar de sobreescribir
-p : (–page-requisites) descarga todos los archivos necesarios para mostrar correctamente las páginas html
-r : descarga de manera recursiva
-x : crea estructura de directorios en local, mapeando la estructura de directorios del servidor web
-N : (–timestamping) descarga aquellos ficheros que: 1.- no existan ya en local con el mismo nombre y 2.- aunque existan, el fichero remoto tuviese fecha de modificacion más reciente que el local
-A patron : indica que sólo queremos descargar ficheros cuyos nombres coincidan con el patrón especificado. Por ejemplo -“A avi,gif,jpg,mp3,mpg,png,zip, *.doc, *.DOC”
-R patron : indica que no queremos descargar ningún fichero cuyo nombre coincida con el patrón especificado. Por ejemplo -“R avi,gif,jpg,mp3,mpg,png,zip, *.doc, *.DOC”
–save-cookies=cookie_file : guarda las cookies de la pagina visitada en el fichero local cookie_file
–load-cookies=cookie_file : cookie_file es el nombre del fichero del que wget leerá las cookies a enviar al servidor en cada petición
-U agent-string: (–user-agent=agent-string) dado que algunos servidores bloquean a wget, aparenta ser un navegador distinto (–user-agent=Opera http://url.a.descargar)

Para descargar múltiples URLs, las direcciones se pueden especificar en un fichero (una dirección por línea) o bien desde la misma lí­nea de comandos separadas por espacios (por ejemplo wget http://www.sitio1.com http://www.sitio2.com)
Si las direcciones se han especificado en un fichero, debe utilizarse el parámetro -i (por ejemplo wget -i fichero)

EJEMPLOS:

– El que uso para tener una copia en local del blog
wget -r -k -p -nc -np http://elblog.com/

– Descarga la página principal de http://www.ejemplo.com a un archivo llamado “index.html”
wget http://www.ejemplo.com/

– Descarga el contenido del directorio raí­z de un sitio web y todos sus subdirectorios (-r)
wget -r http://www.ejemplo.com/

– Igual que el anterior, pero convirtiendo los enlaces a locales, posibilitando la navegación off-line (-k)
wget -k -r http://www.gnu.org/

– Mirror de un sitio web y todos sus subdirectorios (-m), máxima profundidad 5 (l 5), guardando la actividad en un fichero log (-o)
wget -m -np -l 5 http://www.ejemplo.com/ -o ficherolog

– Desacargar una determinada página HTML con todos los elementos necesarios para que se muestre correctamente (-p)
wget -p -k http://www.server.com/dir/page.html

– Reanuda la descarga de un archivo si se ha cortado la conexión (-c)
wget -c http://pagina.com/carpeta/archivo_a_descargar

– Descarga solo los tipos de imágenes especificados de un sitio web (-A)
wget -r -A=”jpg”,”JPG”,”gif”,”GIF” -nc -np http://www.ejemplo.com

– Usando mecanismo de autenticación http o ftp
wget -c –user=xxxx –password=yyyy http://ejemplo.com/carpeta/archivo
wget -c –user=xxxx –password=yyyy ftp://ejemplo.com/archivo

– Recoger sólo los enlaces listados en el archivo local “my_movies.txt”. Usar una espera arbitraria de 0 a 33 segundos entre archivos. Cuando hay un fracaso, reintentar hasta 22 veces con 48 segundos entre cada reintento. No enviar a ningún agente-usuario. No hacer caso de exclusiones de robot. Colocar todos los archivos capturados en el directorio “/movies” y recoger los resultados de acceso al archivo local “my_movies.log”. Bueno sólo para descargar imágenes específicas conocidas u otros archivos.
wget -t 22 –waitretry=48 –wait=33 –random-wait –user-agent=”” -e robots=off -o ./my_movies.log -P/movies -i ./my_movies.txt

– Usando wget para descargar contenido protegido por referer y cookies.
*1. conseguir url base y guardas sus cookies en el archivo
wget –cookies=on –keep-session-cookies –save-cookies=cookie.txt http://first_page
*2. poner el contenido protegido usando cookies almacenadas
wget –referer=http://first_page –cookies=on –load-cookies=cookie.txt –keep-session-cookies –save-cookies=cookie.txt http://second_page

Aquí explican un truquillo para engañar a wget, en caso de que su uso se vea bloquedado y en relación con el fichero robots.txt: http://crysol.inf-cr.uclm.es/node/963

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

 
A %d blogueros les gusta esto: