NorfiPC
NorfiPC » Internet » Wget, ejemplos prácticos

Ejemplos prácticos para descargar archivos de internet con WGET

Códigos para copiar y pegar que permiten y facilitan usar WGET para descargar archivos, páginas web o sitios completos desde internet. Trucos y consejos útiles cuando se posee una conexión de red lenta o cuando los archivos a descargar son grandes.
Códigos y ejemplos prácticos para usar WGET para descargar archivos de internet en Windows WGET, indiscutiblemente es la mejor opción disponible al usuario para descargar cualquier tipo archivo de internet, ya sea un grupo de imágenes, una película, una página web con todos sus elementos o un sitio web o solo parte de este. A sus características se suma el hecho de que es gratis, software libre y por lo tanto totalmente configurable.
La única desventaja de WGET (nada es perfecto) es carecer de interface de usuario y hay un gran número de usuarios que sienten pánico y aversión, a usar la línea de comandos.
El objetivo de esta página es tratar de facilitar a esos usuarios y otros que no poseen la habilidad suficiente, el uso de WGET y contribuir a la expansión de su uso que no cuenta con la promoción que merece.
En una página anterior Como usar WGET para descargar archivos de internet, se abordan todas las características de esta minúscula aplicación, diseñada para la descarga de archivos de Internet utilizando el mismo protocolo de las páginas web, o sea HTML, aunque también puede usar FTP.
En ella se mencionan todas las ventajas que nos proporciona su uso, el objetivo de esta página es solo ofrecer los códigos para poder utilizar WGET de forma sencilla, útil principalmente a los que no estén adiestrados en el uso de la línea de comandos de Windows.
Todos los ejemplos permiten ejecutar tareas útiles con WGET, solo escoge el que te sea de utilidad y sustituye las direcciones web necesarias.


¿Cómo usar los códigos de ejemplos de WGET?


✔ Descarga el ejecutable de wget (puedes hacerlo usando los vínculos al final de esta página), descomprimirlo y el archivo wget.exe copiarlo o moverlo a la carpeta "C:\Windows" o a: "C:\Windows\system32".
Al tenerlo en cualquiera de esos dos directorios se podrá ejecutar mediante la línea de comandos, con todas las opciones y parámetros que se indiquen desde un archivo batch o directamente en la consola de CMD.
✔ Crea un archivo batch con el código necesario.
Para eso solo copia y pega el código al Bloc de notas, ciérralo, guarda los cambios y renombra el archivo, de forma tal que tenga la extensión de archivo .CMD, en vez de la clásica .TXT.
Carga una infografía que muestra un ejemplo práctico: Ver infografía del uso de WGET
✔ Lógicamente el último requisito es la dirección web de la ubicación del archivo, de la página o del sitio web, se puede obtener copiándolo de la barra de direcciones del navegador o de un vínculo existente en una página.


Tips, consejos y trucos para WGET


➔ En WGET algunas opciones son totalmente diferentes si se usan en minúscula o mayúscula, por ejemplo no es lo mismo -o que -O.
➔ Wget admite dos formas de usar las opciones, el nombre completo o abreviado, en esta página solo se emplean las opciones abreviadas, en la página que se mencionó anteriormente: Como usar WGET para descargar archivos de internet, se puede consultar la tabla donde aparecen listadas todas.
➔ Usando una línea con el comando pause en el final del archivo batch creado, permitirá hacer una pausa en la consola y así mostrar el resultado, en los casos de que a causa de errores se cierre esta rápidamente y no sea posible saber el por qué.
➔ El uso de la línea: @echo off en los archivos batch es opcional, funcionarán de todas formas sin dicha línea, solo se emplea para evitar que aparezca siempre la ruta con la ubicación desde donde se ejecuta el batch.
En los siguientes ejemplos, en los casos en que sea posible, se utilizarán direcciones de este mismo sitio web, las descargas de archivos no se incluyen ya que no funcionarán, al estar este servidor protegido contra el hotlinking y darán en ese caso un mensaje de error.


Ejemplos de descargas de archivos con WGET


Descarga simple de un archivo mostrando las peticiones y respuestas del servidor

Usando con wget la opción -S, este muestra todas las peticiones enviadas por la aplicación y las respuestas enviadas por el servidor web, de esta forma también se pueden conocer los encabezados o HTTP headers de una página.
• La opción -d activa el modo desarrollador, lo que hace que se vea toda la información disponible.
En los siguientes ejemplos se pueden comprobar las dos opciones, descargando en el primero una imagen y en el otro una página web.
@echo off
wget -d -S http://www.insmet.cu/Pronostico/tv06.jpg
wget -d -S http://norfipc.com/facebook/index.html


Descarga simple de un archivo con el informe creado en un log

Al utilizar la opción "-o log.txt" en wget, se creará un archivo de texto nombrado "log.txt" u otro nombre que se desee, en el mismo directorio donde se ejecute el batch.
En dicho archivo quedará registrado todo el informe de la operación.
En estos casos la consola no mostrará nada.
@echo off
wget  http://download.mozilla.org/?product=firefox-3.6.8&os=win&lang=es-ES -o log.txt
En los siguientes ejemplos se incluye la opción: "-o log.txt" en todos, para facilitar la comprobación de la operación al finalizar.
Al ejecutarse otro batch el archivo log será sobrescrito, también puede emplearse la opción -a, en este caso se agrega la información al archivo ya creado.
No obstante puedes quitar la opción si así lo deseas.

Descarga segura de archivos de internet

Al mismo ejemplo anterior se adiciona la opción: "-c", para lograr que en caso un error en la conexión, al restablecerse esta prosiga en el mismo punto en que se detuvo.
Es la opción ideal al tener necesidad de descargar archivos grandes, más cuando se trata de una conexión de internet lenta e inestable como son las conexiones dialup.
wget -c http://technet.microsoft.com/en-us/sysinternals/bb842062.aspx
En este caso si se interrumpe la descarga accidentalmente o de forma intencional, se puede continuar exactamente desde el punto en que se interrumpió.
Descargar un archivo de internet usando WGET de forma segura


Proseguir una descarga y asegurarse de no volver a descargar archivos

Un caso parecido es cuando se realiza la descarga de varios archivos diferentes, se cancela la operación y se prosigue otra ocasión, en ese caso se puede usar la opción: "-nc" para impedir que se descarguen de nuevo archivos que ya están en el equipo.
En este ejemplo se utilizan adicionalmente las opciones:
• -r descarga recursiva
• -A especificar solo el tipo de archivos a descargar
1- Comenzamos con la descarga:
wget -c -r -A .jpg http://sitio.com/ -o log.txt
2- Para continuar usamos:
wget -nc -r -A .jpg http://sitio.com/ -o log.txt

Descarga de varios archivos cuyos vínculos están en un archivo de texto.

En este caso solo es necesario usar la opción: "-i" seguida de la ruta del archivo a descargar.
Se puede utilizar cuando es necesario descargar varios archivos o paginas diferentes, se relacionan la direcciones URL necesarias, no importa cuántas, en un sencillo archivo creado con el Bloc de notas y se referencia su nombre en el archivo batch.
En este ejemplo se hace referencia a un archivo nombrado: "link.txt"
wget -i link.txt -o log.txt


Filtrar las descargas de archivos con WGET


Al usar wget en descargas recursivas, lógicamente la aplicación bajará una multitud de archivos que puede no sean necesarios y consuma un tiempo excesivo la operación necesaria.
En esos casos es posible filtrar y solo descargar el contenido verdaderamente útil, para eso se pueden usar opciones diferentes.

Descargar solo los tipos de archivos seleccionados

La opción: "-A" permite especificar a continuación y separados por comas los tipos de archivos que solo se necesitan descargar.
wget -r -A .gif http://sitio.com -o log.txt

Descargar solo archivos filtrados por su nombre

Otra forma de usar -A (accept) para filtrar archivos es por su nombre.
En el siguiente ejemplo se descargan del servidor solo los archivos cuyos nombres que comiencen con el término: "foto", por ejemplo: foto01, foto-linda, etc. (Usa las comillas y el asterisco)
wget -r -A "foto*" http://sitio.com -o log.txt

Seleccionar que tipos de archivos no se deben descargar

La opción: "-R" permite especificar a continuación y separados por comas los tipos de archivos que serán rechazados ya que no se desean descargar.
wget -r -R gif,png,js http://sitio.com -o log.txt

Descargar archivos solo de directorios específicos

La opción: "-I" permite especificar los directorios de los que solo se descargarán archivos al utilizar el modo recursivo.
wget -r -I /web,/internet http://norfipc.com/ -o log.txt

Especificar donde se guardarán los archivos descargados

La opcion: "-P" permite especificar donde se almacenarán los archivos descargados, si la carpeta no existe wget la creará.
wget http://norfipc.com/facebook/index.html -P descargas -o log.txt


Descargar un mismo archivo regularmente, solo si existe una versión más reciente

Una de las características más útiles de wget es el uso de la opción: "-N" (timestamping).
Si en nuestro equipo existe ya un archivo igual al que se quiere descargar, solicita al servidor la fecha de la última modificación del archivo solicitado (last-modified date) y solo si es más reciente del que se posee se descarga.
El ejemplo permite descargar regularmente una foto de satélite meteorológico, solo si existe en el servidor una versión más reciente de la que obra en nuestro poder.
wget -N http://www.ssd.noaa.gov/goes/east/carb/vis.jpg -o log.txt

Renombrar archivos

La opción "-O" (output) permite cambiar el nombre de un archivo descargado.
En el siguiente ejemplo se renombra el archivo original: "vis.jpg" a: "satelite.jpg".
wget -O=satelite.jpg http://www.ssd.noaa.gov/goes/east/carb/vis.jpg

Descargar páginas que usan HTTPS, el protocolo seguro

Para descargar archivos o páginas desde sitios con SSL en los que no hay que autentificarse, usa las siguientes opciones:
--secure-protocol=auto  
--no-check-certificate

Por ejemplo para descargar la última versión de Wget para Windows usa:
--secure-protocol=auto  
--no-check-certificate
wget.exe --secure-protocol=auto --no-check-certificate -c https://eternallybored.org/misc/wget/wget-1.16.3-win64.zip

Ejemplos de descargas de páginas web con WGET


Descarga de una página web con todos los elementos vinculados.

La opción "-p" se utiliza para descargar páginas web aisladas, pero que también se descarguen todos los elementos necesarios para que se muestre y funcione correctamente offline. Se descargarán de esta forma scripts, archivos css, imágenes, etc.
wget -p http://norfipc.com/inf/como-subir-fotos-imagenes-servidor-web.php


Re-escribir los links en la página y cambiar la extensión

Al mismo ejemplo anterior podemos adicionarle dos opciones.
• -k al finalizar la descarga re-escribe los links que existan en la página para que apunten a los archivos descargados si fuera necesario, para asegurar su funcionamiento offline.
Por ejemplo, en la página original en este sitio la ruta a la imagen del RSS es: ../img/icon/rss24.png, en la página descargada es: rss24.png
• -E Ajustar la extensión. Sustituye la extensión original de la página, que en este caso es .php por la predeterminada .html con el objetivo que pueda ser ejecutada por cualquier usuario.
• Adicionalmente se usa la opción -nd (no directorio) para que todos los archivos estén en el mismo directorio.
wget -p -k -E -nd http://norfipc.com/inf/como-subir-fotos-imagenes-servidor-web.php

Descargas recursivas con WGET

La opción "-r" permite descargar todos los archivos de un sitio web de forma recursiva, para optimizar esta operación usualmente se incluyen otras opciones.
En este ejemplo se hace una descarga del sitio completo de Apache (solo una demostración), para eso se incluyen las opciones:
• -l2 (nivel de profundidad) se limita a dos directorios la descargas, de forma predeterminada wget emplea 5.
• -k Re escribir links.
wget -r -l2 -k http://www.apache.org/ -o log.txt

Crear espejo de un sitio web con WGET

La opción -m (mirror) es similar a la descarga recursiva, pero en este caso no existe limite en lo absoluto, es similar a emplear las opciones: -r -l inf -N
wget -m http://www.apache.org/ -o log.txt

Actualizar los archivos recientes de un sitio web descargado

Si al mismo ejemplo anterior se le agrega la opción -N, cada vez que se ejecute el batch descargará solo los archivos recientes que se hayan creado.
wget -m -N http://www.apache.org/ -o log.txt


Como navegar por los sitios web descargados en la PC


Los sitios web o parte de ellos descargados con WGET al equipo, para tener su información disponible offline, pueden accederse y navegar en ellos si se posee instalado en el equipo un servidor web.
¿Qué es un servidor web?
Es un software que se instala en el equipo y permite representar las páginas web guardadas en el disco duro con el navegador que utilizamos y acceder a ellas de la misma forma que lo hacemos en internet.
Los servidores web más utilizados son Apache, que es software libre y el más popular en internet y ISS (Internet Information Services) servidor web de Microsoft que está incluido en todas las instalaciones de Windows.
En las siguientes paginas puedes encontrar toda la información necesaria para instalar un servidor y acceder a los sitios guardados.
Como instalar y configurar el servidor web Apache en Windows
Como instalar, configurar y usar el servidor IIS en Windows
Acceder y tener sitios web completos en la PC offline, usando Virtual Host en Apache


Otras opciones útiles que permite WGET


Utilizar WGET como la araña de un buscador web

La opción "-spider" hace que wget explore una página web comprobando que existe, no descargará ningún archivo, solo mostrará el informe correspondiente.
Es una opción muy útil para los desarrolladores para comprobar el correcto funcionamiento de la estructura de un sitio.
En el siguiente ejemplo se crea un informe en un archivo nombrado log.txt del escaneo hecho a la dirección que se muestra, usando solo una profundidad de un nivel con la opción -l1.
wget --spider -r -l1 http://norfipc.com/facebook/index.html -o log.txt

Como comprobar la validez de los links de un sitio web con WGET

Del mismo modo anterior la opción -spider permite comprobar la validez de los links o vínculos de una página web o de todo un sitio cuando se emplea la opción recursiva.
También se muestra si existen links rotos (broken links), solo es necesario jugar con las otras opciones para lograr un resultado satisfactorio.
En este ejemplo se comprueba la validez de todos los links de este sitio, incluyendo los externos, se usa la opción "-nv" para que se abrevie la información que se escriba en el archivo de salida.
wget --spider -r -l2 -nv http://norfipc.com/ -o log.txt
Lee mas informacion detallada: Como buscar y encontrar enlaces rotos en mi blog o sitio web


Archivo batch para revisar los links con WGET

Código para crear un sencillo archivo batch, que puede ser de mucha ayuda para verificar si existen links rotos en cualquier página de internet.
Para usarlo ejecútalo y pega la dirección URL, al final del informe verás el resultado.
Para pegar texto en la consola de CMD, es necesario haber habilitado la Edición rápida en las opciones de configuración.
Más información: Como configurar la consola de CMD
@echo off

set/p URL= 
wget --spider -r -l1 -nv %URL%
pause

Listar archivos en un directorio con Wget

wget --spider -r -l1 -nv http://norfipc.com/wordpress/ -o log.txt

Descargar archivos protegidos del hotlinking

En algunos sitios solo es posible descargar archivos si la página desde donde se efectúa la solicitud está en el mismo domino, esto se hace con el propósito de evitar el hotlin, que no es más que crear vínculos a archivos desde sitios diferentes con fines deshonestos. En este sitio el hotlink no es posible.
Wget permite la opción "--referer=URL" para descargar estos archivos solo sustituyendo URL por la dirección de la página de referencia.
En este ejemplo puedes descargar un pequeño archivo de este sitio con este método, aunque verdaderamente solo tiene fines prácticos cuando se trate de archivos grandes, ya que en este caso es más fácil acudir a la página del autor con el navegador, en la que está disponible gratis el link de descarga.
No obstante es solo un ejemplo.
wget -c --referer=http://norfipc.com/comandos/comandos-windows-7.html 
http://norfipc.com/ftp/robocopy.zip

Como utilizar otro Agente de usuario con WGET

Muchos sitios web usan scripts en el servidor, para identificar el navegador con el que el usuario accede y de esa forma tomar acciones como servir las páginas web con estilos o contenido diferentes de acuerdo al medio empleado.
Esto es posible ya que cada navegador al realizar una petición envía su agente de usuario en el encabezado HTTP, en el que se incluyen varios datos como el nombre del software, versión, sistema operativo, etc.
Algunos sitios utilizan la información que proporciona el agente de usuario, para discriminar a los usuarios y Wget es uno de los programas que habitualmente son totalmente bloqueados.
Si te ves en ese caso, es posible usar en las peticiones otro Agente de usuario o inclusive ninguno. Hazlo de cualquiera de las siguientes formas:
WGET -U Mozilla/5.0  http://pagina.html
WGET --user-agent="" http://pagina.html
En el primer caso indicamos que usamos Firefox, en el segundo caso no se indica ningún Agente, en ambos se impedirá la censura.

¿Cómo iniciar WGET con Windows?

En algunos casos puede que sea necesario ejecutar un archivo batch que realice alguna tarea con WGET, cada vez que se inicie Windows. Pueden ser tareas como actualizar una imagen del satélite meteorológico, descargar un archivo de noticias, etc.
Para conseguirlo solo es necesario crear un acceso directo al archivo batch en la carpeta de Inicio de Windows.
• Para abrir la carpeta de Inicio escribe en el cuadro de Inicio o en Ejecutar: shell:Startup y oprime la tecla Enter.
• Arrastra con el clic derecho del ratón presionado el archivo batch a dicha carpeta para crear el acceso directo.

Páginas relacionadas