ERICLINUX: Wget - Aprende a realizar descargas.

1/4/08

Wget - Aprende a realizar descargas.

ERICLINUX

Vía BRAIANET me encuentro con éste magnifico articulo.

Si usas GNU/Linux, probablemente ya habrás utilizado en alguna ocación wget… aún si usas Windows, puedes instalarte el Cygwin e incluir wget dentro de los paquetes instalados. Lo primero que leemos usando el comando man wget, es algo como esto:

GNU Wget es una utilidad libre para descargas no-interactivas de archivos desde la Web. Soporta los protocolos HTTP, HTTPS, y FTP, así como descargas a través de proxys.

Pero si bien esta es una herramienta que corre desde la línea de comandos, a la hora de realizar descargas nos es de gran utilidad, y si bien puedes hacer descargas desde tu navegador web o software adicional, wget te ofrece lo mismo y más. De hecho muchas personas no conocen a profundidad todas las ventajas que nos ofrece wget, y ese es el motivo de ésta entrada.

Para intentar exponer las opciones que nos ofrece wegt, voy a darles una serie de ejemplos prácticos de uso… y dice así:

Descargar un archivo demasiado pesado (5GB, por ejemplo desde un sitio web):

# wget http://pagina.com/carpeta/grandistrolinux.iso

Pero… mientras estás descargando este archivo, repentinamente, puede que haya un apagón y tu computador pierda el hilo de lo que ha descargado, o momentáneamente el servidor desde donde lo estás bajando se cae. En estos casos sería mejor utilizar wget así:

# wget -c http://pagina.com/carpeta/grandistrolinux.iso

Con la opción –c cualquier interrupción en la descarga será “resumida” en otro intento de descarga. De hecho, si existe parte de un archivo que se intentó descargar sin la opción –c, wget continuaría descargando el archivo pero guardándolo con otro nombre: grandistrolinux.iso.1.

Puedes también especificar el número de reintentos que hará wget usando la opción –tries. Por ejemplo si quisiéramos que se el número de intentos de descarga sea 8 podemos hacer lo siguiente:

# wget -c –tries=8 http://pagina.com/carpeta/grandistrolinux.iso

o

# wget -c -t 8 http://pagina.com/carpeta/grandistrolinux.iso

Incluso, podemos especificar el nombre del archivo resultante, es decir, sino queremos que el archivo que descargamos tenga el nombre grandistrolinux.iso sino ditro.iso, podemos hacer esto:

# wget -c –output-document=ditro.iso http://pagina.com/carpeta/grandistrolinux.iso

Pero wget no solo descarga archivos desde una página web, puede usar también otros protocolos de comunicación, como por ejemplo FTP:

# wget -c –tries=10 ftp://pagina.com/carpeta/archivo.iso

Puedes cambiar el estilo en el que se muestra de forma gráfica el progreso de la descarga, así:

# wget -c –progress=dot http://pagina.com/carpeta/grandistrolinux.iso

También es posible configurar el límite de tasa de transferencia con wget usando la opción –limit-rate, por ejemplo si queremos limitarlo a 100.5K por segundo

# wget -c –limit-rate=100.5k http://pagina.com/carpeta/grandistrolinux.iso

de manera alternativa, la opción limit rate se puede usar con números+sufijos así:

# wget -c –limit-rate=1m http://pagina.com/carpeta/grandistrolinux.iso

Además, wget soporta el mecanismo de autenticación http y ftp y puede ser usado así:

# wget -c –user=usuario –password=contrasenia http://pagina.com/carpeta/grandistrolinux.iso

o

# wget -c –user=usuario –password=contrasenia ftp://72.29.83.102/archivo.odt

Puedes usar wget además, para enviar cookies a sitios que puedan requerirlo así:

# wget –save-cookie cookies.txt –post-data ‘name=cris&passwd=cami’ “http://unsitio.net/auth.php”

Y una vez autenticados con las cookies, como en ejemplo anterior, podemos proceder a descargar los archivos que necesitemos:

# wget –load-cookies cookies.txt -p http://unsitio.net/carpeta/algo.php

También es posible usar “recursión”. Si deseas descargar todos los archivos desde una página web recursivamente usando wget, lo puedes hacer así:

# wget -r “http://localhost/iniciaraqui/”

También podrías indicarle que no cree directorios, cuando está realizando descargas de manera recursiva… lo cual solamente descargará los archivos, así:

# wget -r -nd “http://localhost/iniciaraqui/”

Descargar los dos primeros niveles o más, de manera recursiva así:

# wget -r -l2 “http://localhost/iniciaraqui/”

Es posible usar además algo muy similar a Expresiones Regulares en wget. Esto se hace usando los caracteres especiales * ?. Por ejemplo:

# wget http://localhost/*.txt
# wget ftp://dominio.com/pub/file??.vbs
# wget http://dominio.com/pub/files??.*
# wget -r “*.jpg” http://dominio.com/pub/

A la hora de descargar, por ejemplo, un fichero HTML… los links en su interior podrían apuntar al dominio del cual se descargaron. wget permite convertir los links dentro de los ficheros HTML, a enlaces que apunten a archivos locales. Esto es posible usando la opción –k :

# wget -k http://localhost/wordpress/

Podemos además crear un archivo de log en wget, usando la opción –o, así:

# wget -c -o /var/log/archivolog http://localhost/archivo.txt

También puedes correr wget en background así:

# wget -b http://localhost/archivo.txt

O si usas GNU/Linux podría hacerse directamente desde la consola así:

# wget http://localhost/archivo.txt &

Una de las opciones que más me gustan de wget es la capacidad de leer URLs de un archivo externo. Para aprovechar ésta función, puedes hacer:

# wget -i Lista-URL.txt

Si usas wget como en el ejmplo anterior, no deberás escribir explícitamente la URL en la línea de comandos.

Puedes obligar a wget a usar IPv6 o IPv4 usando las opciones -6 y -4, respectivamente. Además, puedes deshabilitar el caché y las cookies usando las opciones –no-cache y –no-cookies.

En cuanto a descargas a través de un Proxy, puedes indicarle el usuario y password de autenticación usando las opciones –proxy-user y –proxy-password, así:

# wget –proxy-user=usuario –proxy-password=contrasenia URL

Adicionalmente, wget tiene soporte para HTTPS (SSL/TLS) usando los argumentos listados abajo:

–secure-protocol= (auto,SSLv2,SSLv3, TLSv1)
–certificate=archivo_certificado_cliente
–certificate-type= (PEM,DER)
–private-key=archivo_llave_privada
–private-key-type= (PEM,DER)
–ca-certificate=archivo_certificado
–ca-directory=directorio_fuente

La opción –no-parent necesita ser especificada cuando se realicen descargas recursivas de tal manera que se evite la búsqueda recursiva del directorio padre.

Un Saludo, Eric.

Enlaces de interés:

ERICLINUX

Vía BRAIANET me encuentro con éste magnifico articulo.

Si usas GNU/Linux, probablemente ya habrás utilizado en alguna ocación wget… aún si usas Windows, puedes instalarte el Cygwin e incluir wget dentro de los paquetes instalados. Lo primero que leemos usando el comando man wget, es algo como esto:

GNU Wget es una utilidad libre para descargas no-interactivas de archivos desde la Web. Soporta los protocolos HTTP, HTTPS, y FTP, así como descargas a través de proxys.

Pero si bien esta es una herramienta que corre desde la línea de comandos, a la hora de realizar descargas nos es de gran utilidad, y si bien puedes hacer descargas desde tu navegador web o software adicional, wget te ofrece lo mismo y más. De hecho muchas personas no conocen a profundidad todas las ventajas que nos ofrece wget, y ese es el motivo de ésta entrada.

Para intentar exponer las opciones que nos ofrece wegt, voy a darles una serie de ejemplos prácticos de uso… y dice así:

Descargar un archivo demasiado pesado (5GB, por ejemplo desde un sitio web):

# wget http://pagina.com/carpeta/grandistrolinux.iso

Pero… mientras estás descargando este archivo, repentinamente, puede que haya un apagón y tu computador pierda el hilo de lo que ha descargado, o momentáneamente el servidor desde donde lo estás bajando se cae. En estos casos sería mejor utilizar wget así:

# wget -c http://pagina.com/carpeta/grandistrolinux.iso

Con la opción –c cualquier interrupción en la descarga será “resumida” en otro intento de descarga. De hecho, si existe parte de un archivo que se intentó descargar sin la opción –c, wget continuaría descargando el archivo pero guardándolo con otro nombre: grandistrolinux.iso.1.

Puedes también especificar el número de reintentos que hará wget usando la opción –tries. Por ejemplo si quisiéramos que se el número de intentos de descarga sea 8 podemos hacer lo siguiente:

# wget -c –tries=8 http://pagina.com/carpeta/grandistrolinux.iso

o

# wget -c -t 8 http://pagina.com/carpeta/grandistrolinux.iso

Incluso, podemos especificar el nombre del archivo resultante, es decir, sino queremos que el archivo que descargamos tenga el nombre grandistrolinux.iso sino ditro.iso, podemos hacer esto:

# wget -c –output-document=ditro.iso http://pagina.com/carpeta/grandistrolinux.iso

Pero wget no solo descarga archivos desde una página web, puede usar también otros protocolos de comunicación, como por ejemplo FTP:

# wget -c –tries=10 ftp://pagina.com/carpeta/archivo.iso

Puedes cambiar el estilo en el que se muestra de forma gráfica el progreso de la descarga, así:

# wget -c –progress=dot http://pagina.com/carpeta/grandistrolinux.iso

También es posible configurar el límite de tasa de transferencia con wget usando la opción –limit-rate, por ejemplo si queremos limitarlo a 100.5K por segundo

# wget -c –limit-rate=100.5k http://pagina.com/carpeta/grandistrolinux.iso

de manera alternativa, la opción limit rate se puede usar con números+sufijos así:

# wget -c –limit-rate=1m http://pagina.com/carpeta/grandistrolinux.iso

Además, wget soporta el mecanismo de autenticación http y ftp y puede ser usado así:

# wget -c –user=usuario –password=contrasenia http://pagina.com/carpeta/grandistrolinux.iso

o

# wget -c –user=usuario –password=contrasenia ftp://72.29.83.102/archivo.odt

Puedes usar wget además, para enviar cookies a sitios que puedan requerirlo así:

# wget –save-cookie cookies.txt –post-data ‘name=cris&passwd=cami’ “http://unsitio.net/auth.php”

Y una vez autenticados con las cookies, como en ejemplo anterior, podemos proceder a descargar los archivos que necesitemos:

# wget –load-cookies cookies.txt -p http://unsitio.net/carpeta/algo.php

También es posible usar “recursión”. Si deseas descargar todos los archivos desde una página web recursivamente usando wget, lo puedes hacer así:

# wget -r “http://localhost/iniciaraqui/”

También podrías indicarle que no cree directorios, cuando está realizando descargas de manera recursiva… lo cual solamente descargará los archivos, así:

# wget -r -nd “http://localhost/iniciaraqui/”

Descargar los dos primeros niveles o más, de manera recursiva así:

# wget -r -l2 “http://localhost/iniciaraqui/”

Es posible usar además algo muy similar a Expresiones Regulares en wget. Esto se hace usando los caracteres especiales * ?. Por ejemplo:

# wget http://localhost/*.txt
# wget ftp://dominio.com/pub/file??.vbs
# wget http://dominio.com/pub/files??.*
# wget -r “*.jpg” http://dominio.com/pub/

A la hora de descargar, por ejemplo, un fichero HTML… los links en su interior podrían apuntar al dominio del cual se descargaron. wget permite convertir los links dentro de los ficheros HTML, a enlaces que apunten a archivos locales. Esto es posible usando la opción –k :

# wget -k http://localhost/wordpress/

Podemos además crear un archivo de log en wget, usando la opción –o, así:

# wget -c -o /var/log/archivolog http://localhost/archivo.txt

También puedes correr wget en background así:

# wget -b http://localhost/archivo.txt

O si usas GNU/Linux podría hacerse directamente desde la consola así:

# wget http://localhost/archivo.txt &

Una de las opciones que más me gustan de wget es la capacidad de leer URLs de un archivo externo. Para aprovechar ésta función, puedes hacer:

# wget -i Lista-URL.txt

Si usas wget como en el ejmplo anterior, no deberás escribir explícitamente la URL en la línea de comandos.

Puedes obligar a wget a usar IPv6 o IPv4 usando las opciones -6 y -4, respectivamente. Además, puedes deshabilitar el caché y las cookies usando las opciones –no-cache y –no-cookies.

En cuanto a descargas a través de un Proxy, puedes indicarle el usuario y password de autenticación usando las opciones –proxy-user y –proxy-password, así:

# wget –proxy-user=usuario –proxy-password=contrasenia URL

Adicionalmente, wget tiene soporte para HTTPS (SSL/TLS) usando los argumentos listados abajo:

–secure-protocol= (auto,SSLv2,SSLv3, TLSv1)
–certificate=archivo_certificado_cliente
–certificate-type= (PEM,DER)
–private-key=archivo_llave_privada
–private-key-type= (PEM,DER)
–ca-certificate=archivo_certificado
–ca-directory=directorio_fuente

La opción –no-parent necesita ser especificada cuando se realicen descargas recursivas de tal manera que se evite la búsqueda recursiva del directorio padre.

Un Saludo, Eric.

Enlaces de interés:

0 COMENTARIOS:

Publicar un comentario

Bienvenido a ERICLINUX.
Gracias por tu comentario.

Nota: solo los miembros de este blog pueden publicar comentarios.

Tu comentario será moderado la primera vez que lo hagas al igual que si incluyes enlaces. A partir de ahi no ser necesario si usas los mismos datos y mantienes la cordura. No se publicarán insultos, difamaciones o faltas de respeto hacia los lectores y comentaristas de este blog.