Cómo instalar y usar Wget en Windows
Creo haberte mencionado que me gustan los programas pequeños, funcionales y elegantes [lo que sea que signifique elegante en este contexto]. Hoy vamos a ver como usar uno de esos programas que fácilmente se vuelven indispensables cuando le encuentras un uso práctico. ¡Vamos! que te resuelven un problema o te "agrega valor" [como dicen los martketing boys].
Estamos hablando del venerable GNU Wget.
¿Qué es Wget?
GNU Wget es un programa liberado bajo una licencia Open Source y que se encuentra patrocinado por la Free Software Foundation. A través de este programa es posible ejecutar descargas no interactivas de archivos desde la Web. GNU Wget tiene soporte para los siguiente protocolos:
- HTTP
- HTTPS
- FTP
Y también funciona cuando tenemos un proxy en el medio.
GNU Wget ha sido especialmente diseñado para trabajar con conexiones de red lentas o inestables. Esto significa que:
- Si una descarga falla debido a un problema de red, Wget seguirá reintentando
- Si una descarga falla debido a un problema de red, Wget seguirá intentándolo hasta que se recupere el archivo completo.
- Si el servidor soporta regetting, Wget indicará al servidor que continúe la
descarga desde donde la dejó.
¿Para qué se utiliza Wget?
Como su cometido principal es la descarga de archivos desde Internet, Wget se utiliza para, por ejemplo, descargar sitios Web enteros, lo que te permite navegarlos offline, o hacer un respaldo.
También podés automatizar descargas de un servidor FTP para hacer un respaldo, o implementar algún rústico, pero funcional, sistema de monitoreo de archivos o páginas remotas.
Cómo instalar Wget en Windows
Si utilizas Linux podes instalarlo fácilmente. Dependiendo del sabor que utilices, por ejemplo, para Ubuntu:
sudo apt-get install wget
En CentOS
sudo yum install wget
En el caso de macOS podés instarlo utilizando Homebrew:
brew install wget
Por defecto GNU Wget no viene con Windows, pero existen versiones especificas de Wget que vas a poder instalar.
En esta ocasión vamos a utilizar la versión desarrollada por Jernej Simončič.
Vamos a descargar la última versión disponible para 64-bit. Al momento de escribir esto, la última versión es: 1.21.1, que parece incorporar algunas funcionalidades interesantes como ser soporte para descarga de archivos mayores a 2GB [en realidad es un fix a un error con archivos > 2GB]
[https://eternallybored.org/misc/wget/]
Los binarios son compilados estáticamente, esto significa que wget.exe no requiere ningún otro archivo para funcionar.
|Observación: algunos antivirus puede llegar a reconocer la versión wget-1.21.1-win32.zip como "peligrosa", pero no es así. Parece ser que quién dispara esa alerta es el archivo wget.exe.debug|
Para usarla desde la consola/terminal de Windows [λCmder por supuesto] tenemos que incluir el ejecutable en una variable de entorno. Si queres resolver ese tema de forma rápida y no andar lidiando con la no muy amigable UI de Windows, te recomendamos usar Rapid Environment Editor, quizás el mejor IDE [¿El único?] para gestionar la variables de ambiente de Windows.
Ahora estamos listos para pasar a la acción.
Ejemplos de cómo usar Wget
Cómo siempre, el uso depende del problema que necesites resolver. Si tenes que hacer algo que requiera descargar un archivo, Wget puede ser una muy buena opción.
Vamos a hacer el siguiente ejercicio: tomemos algunos de los ejemplos que se encuentran listados en el sitio Hostinger Tutorials, específicamente el siguiente artículo: What is the Wget Command and How to Use It (12 Examples Included) [Hostinger: te regalamos un rel follow ;)]
Trataremos de replicarlo con la versión Wget de Windows. ¡Empecemos!
Usar Wget para descargar archivos individuales
El ejemplo básico. Si esto no funciona con la versión de Wget de Windows, bajamos la cortina y apagamos la luz.
Descargar el archivo latest.zip disponible en el dominio https://wordpress.org/
Test 1 ---------- PASS!
Wget para descargar varios archivos
Este ejemplo está muy simpático. Se trata de descargar varios archivos de forma simultanea [¿descargas secuenciales o paralelas?] Para eso, Wget toma desde un archivo las URL a partir de las cuales va a hacer las descargas.
En el artículo de Hostinger crean un archivo examples.txt con las siguientes URL:
https://wordpress.org/latest.zip https://downloads.joomla.org/cms/joomla3/3-8-5/Joomla_3-8-5-Stable-Full_Package.zip https://ftp.drupal.org/files/projects/drupal-8.4.5.zip
Test 2 ---------- PASS!
Uso del comando Wget para obtener archivos con diferentes nombres
El objetivo de este ejemplo es usar el parámetro -O que permite asignar un nombre diferente al archivo descargado.
Test 3 ---------- PASS!
Uso del comando Wget para guardar archivos en el directorio especificado
Similar al ejemplo anterior pero en este caso usamos la opción -P para decirle a Wget el directorio en donde queremos persista el archivo a descargar.
Test 4 ---------- PASS!
Uso del comando Wget para limitar la velocidad de descarga
Este ejemplo es interesante. Utiliza la opción --limit-rate para limitar el ancho de banda consumido por Wget al momento de hacer la descarga. Veamos si funciona con la versión de Windows.
Test 5 ---------- PASS!
Uso del comando Wget para descargar en segundo plano
Cuando necesitamos descargar algún archivo de tamaño considerable, Wget te permite hacer la descarga en segundo plano, a través de la opción -b, luego hacer un cat
para ver el contenido del archivo log que genera Wget.
Test 6 ---------- FAIL!
Este ejemplo no fue completado con éxito. El problema es que el archivo wget-log que genera Wget no tiene contenido. Lo probamos en CentOS 7 y efectivamente el archivo log tiene contenido. ¿Quizás un bug?
A modo de resumen sobre Wget en Windows
Como es habitual: solo "rasgamos" la superficie de lo que es posible hacer con Wget, porque no queremos agotar este tema en un solo artículo, así en un futuro podemos incluir algunos ejemplos más.
Podés suscribirte a nuestro RSS (sí, aún se utiliza) o seguirnos en Twitter, en donde tenemos menos seguidores que seguidos (la famosa relación que mide la popularidad o nivel de influencia).
No nos vamos sin antes agradecer a los creadores de Wget. Listar a todos los que colaboran en el proyecto es posible pero nos da pereza, así que vamos a mencionar a los que iniciaron el proyecto.
El proyecto GNU Wget fue creado por Hrvoje Nikšić. Podés visitar su perfil de Github presionando sobre la imagen que dejamos más abajo 👇 [muy buen avatar por cierto]. También te recomendamos su blog, en donde postea muy buenos artículos: https://morestina.net/blog/
En este archivo podes encontrar a los otros desarrolladores que han colaborado con la versión oficial de Wget: autores.
La versión de Wget de Windows que usamos en este artículo fue desarrollada y es mantenida por Jernej Simončič. Podés seguirlo en su cuenta de Twitter: @jernej__s.
A todos ellos: ¡gracias!
¡Nos vemos! Peace. ✌
/ Súmate al boletín. No es gran cosa, pero es gratis 👇 /