GNU Wget (o simplemente Wget , anteriormente Geturl , también escrito como su nombre de paquete, wget ) es un programa informático que recupera contenido de servidores web . Forma parte del Proyecto GNU . Su nombre deriva de " World Wide Web " y " get ", un método de solicitud HTTP. Admite descargas a través de HTTP , HTTPS y FTP .
Entre sus características se incluyen la descarga recursiva, la conversión de enlaces para la visualización sin conexión de HTML local y la compatibilidad con proxies. Apareció en 1996, coincidiendo con el auge de la popularidad de la Web, lo que provocó su amplio uso entre los usuarios de Unix y su distribución en la mayoría de las principales distribuciones de Linux . Wget está escrito en C y se puede instalar fácilmente en cualquier sistema tipo Unix. Wget se ha adaptado a Microsoft Windows , macOS , OpenVMS , HP-UX , AmigaOS , MorphOS y Solaris . Desde la versión 1.14, Wget puede guardar su salida en el formato WARC, estándar de archivado web . [ 3 ]
Historia
Wget desciende de un programa anterior llamado Geturl del mismo autor, [ 4 ] cuyo desarrollo comenzó a finales de 1995. El nombre cambió a Wget después de que el autor se percatara de un programa anterior de Amiga llamado GetURL, escrito por James Burton en AREXX .
Wget cubrió una carencia en el inconsistente software de descarga web disponible a mediados de la década de 1990. Ningún programa podía utilizar de forma fiable tanto HTTP como FTP para descargar archivos. Los programas existentes o bien eran compatibles con FTP (como NcFTP y dl) o estaban escritos en Perl , que aún no era un lenguaje común. Si bien Wget se inspiró en características de algunos de los programas existentes, era compatible con HTTP y FTP y podía compilarse utilizando únicamente las herramientas de desarrollo estándar presentes en cualquier sistema Unix.
En aquel entonces, muchos usuarios de Unix tenían problemas con las conexiones a Internet extremadamente lentas de las universidades y las conexiones por módem , lo que generó una creciente necesidad de un agente de descarga que pudiera solucionar los fallos transitorios de la red sin la ayuda de un operador humano.
Características
Robustez
Wget se diseñó para ofrecer un rendimiento óptimo incluso con conexiones de red lentas o inestables. Si una descarga no se completa debido a un problema de red , Wget intentará automáticamente reanudarla desde donde se interrumpió y repetirá este proceso hasta que se haya descargado el archivo completo. Fue uno de los primeros clientes en utilizar el entonces novedoso Rangeencabezado HTTP para implementar esta función.
Descarga recursiva
Wget puede funcionar opcionalmente como un rastreador web , extrayendo los recursos enlazados desde las páginas HTML y descargándolos secuencialmente. El proceso se repite recursivamente hasta que se hayan descargado todas las páginas o se haya alcanzado la profundidad máxima de recursión especificada por el usuario. Las páginas descargadas se guardan en una estructura de directorios similar a la del servidor remoto. Esta "descarga recursiva" permite la replicación parcial o completa de sitios web a través de HTTP. Los enlaces en las páginas HTML descargadas se pueden modificar para que apunten al material descargado localmente para su visualización sin conexión . Al realizar este tipo de replicación automática de sitios web, Wget es compatible con el Estándar de Exclusión de Robots (a menos que se utilice la opción correspondiente ).-e robots=off
La descarga recursiva también funciona con FTPLIST , donde Wget ejecuta el comando para encontrar qué archivos adicionales descargar, repitiendo este proceso para los directorios y archivos dentro del especificado en la URL principal. Se admiten comodines similares a los de la línea de comandos cuando se solicita la descarga de URL FTP.
Al descargar recursivamente a través de HTTP o FTP , se puede configurar Wget para que inspeccione las marcas de tiempo de los archivos locales y remotos, y descargue solo los archivos remotos más recientes que los locales correspondientes. Esto facilita la replicación de sitios HTTP y FTP , pero se considera ineficiente y más propenso a errores en comparación con programas diseñados específicamente para la replicación, como rsync . Por otro lado, Wget no requiere software especial del lado del servidor para esta tarea.
No interactividad
Wget es no interactivo en el sentido de que, una vez iniciado, no requiere interacción del usuario ni necesita controlar una terminal , pudiendo registrar su progreso en un archivo aparte para su posterior revisión. Los usuarios pueden iniciar Wget y cerrar sesión , dejando el programa desatendido. Por el contrario, la mayoría de los navegadores web con interfaz gráfica o de texto requieren que el usuario permanezca conectado y reinicie manualmente las descargas fallidas, lo que puede ser un gran inconveniente al transferir grandes cantidades de datos.
Portabilidad
Escrito en un estilo de C altamente portable con mínimas dependencias de bibliotecas de terceros, Wget requiere poco más que un compilador de C y una interfaz de red TCP/IP similar a la de BSD . Diseñado como un programa Unix invocado desde la consola de Unix , el programa se ha portado a numerosos entornos y sistemas similares a Unix, incluyendo Microsoft Windows a través de Cygwin y macOS . También está disponible como programa nativo de Microsoft Windows como uno de los paquetes de GnuWin .
Otras características
- Wget admite descargas a través de proxies , que se utilizan ampliamente para proporcionar acceso web dentro de los cortafuegos de las empresas y para almacenar en caché y entregar rápidamente el contenido al que se accede con frecuencia.
- Utiliza conexiones persistentes HTTP cuando están disponibles.
- IPv6 es compatible con sistemas que incluyen las interfaces adecuadas.
- Se admite SSL/TLS para descargas cifradas mediante la biblioteca OpenSSL o GnuTLS .
- Los archivos de más de 2 GiB son compatibles con sistemas de 32 bits que incluyan las interfaces adecuadas.
- La velocidad de descarga puede verse limitada para evitar el consumo de todo el ancho de banda disponible .
- Puede guardar su salida en el formato WARC , estándar de archivado web , eliminando duplicados de un archivo CDX asociado según sea necesario. [ 3 ]
Autores y derechos de autor
GNU Wget fue escrito por Hrvoje Nikšić con contribuciones de muchas otras personas, incluyendo a Dan Harkless, Ian Abbott y Mauro Tortonesi. Las contribuciones más importantes se mencionan en el archivo AUTHORS incluido en la distribución, y todas las demás están documentadas en los registros de cambios , también incluidos con el programa. Actualmente, Giuseppe Scrivano y Tim Rühsen se encargan del mantenimiento de Wget. [ 5 ]
Los derechos de autor de Wget pertenecen a la Free Software Foundation , cuya política es exigir la cesión de derechos de autor para todas las contribuciones no triviales al software GNU. [ 6 ]
Licencia
GNU Wget se distribuye bajo los términos de la Licencia Pública General de GNU , versión 3 o posterior, con una excepción especial que permite la distribución de binarios enlazados con la biblioteca OpenSSL . El texto de la excepción es el siguiente: [ 2 ]
Permiso adicional bajo la sección 7 de la versión 3 de la GNU GPL
Si modifica este programa, o cualquier obra protegida, mediante su vinculación o combinación con la biblioteca OpenSSL del proyecto OpenSSL (o una versión modificada de dicha biblioteca), que contenga partes cubiertas por los términos de las licencias OpenSSL o SSLeay, la Free Software Foundation le otorga permiso adicional para distribuir la obra resultante. El código fuente correspondiente para una versión no oficial de dicha combinación deberá incluir el código fuente de las partes de OpenSSL utilizadas, así como el de la obra protegida.
Se prevé que la cláusula de excepción se elimine una vez que se modifique Wget para que también se enlace con la biblioteca GnuTLS .
La documentación de Wget , en forma de manual de referencia de Texinfo , se distribuye bajo los términos de la Licencia de Documentación Libre de GNU , versión 1.2 o posterior. La página de manual que se suele distribuir en sistemas tipo Unix se genera automáticamente a partir de un subconjunto del manual de Texinfo y se rige por los mismos términos de la licencia.
Desarrollo
Wget se desarrolla de forma abierta, y la mayoría de las decisiones de diseño se suelen debatir en la lista de correo pública [ 7 ], seguida por usuarios y desarrolladores. Los informes de errores y los parches se envían a la misma lista.
Contribución de la fuente
El método preferido para contribuir al código y la documentación de Wget es mediante actualizaciones de código fuente en forma de parches de texto generados por la utilidad diff . Los parches destinados a ser incluidos en Wget se envían a la lista de correo [ 7 ] , donde son revisados por los responsables del proyecto. Los parches que superan la revisión de los responsables se instalan en el código fuente. Las instrucciones para la creación de parches, así como las directrices de estilo, se describen en la wiki del proyecto. [ 8 ]
El código fuente también se puede rastrear a través de un repositorio de control de versiones remoto que aloja el historial de revisiones desde la versión 1.5.3. El repositorio actualmente ejecuta Git . [ 9 ] Anteriormente, el código fuente se había alojado en (en orden inverso): Bazaar , [ 10 ] Mercurial , Subversion y a través de CVS .
Liberar
Cuando se acumulan suficientes funcionalidades o correcciones de errores durante el desarrollo, Wget se publica para el público general a través del sitio FTP de GNU y sus réplicas. Al ser gestionado íntegramente por voluntarios, no existe presión externa para su lanzamiento ni plazos de publicación obligatorios.
Las versiones se numeran con el formato mayor.menor [.revisión] , como Wget 1.11 o Wget 1.8.2 . Un aumento en el número de versión mayor representa cambios importantes y posiblemente incompatibles en el comportamiento de Wget o un rediseño radical del código. Un aumento en el número de versión menor indica la adición de nuevas funciones y correcciones de errores. Una nueva revisión indica una versión que, en comparación con la anterior, solo contiene correcciones de errores. Se omite la revisión cero, lo que significa que, por ejemplo, Wget 1.11 es lo mismo que 1.11.0. Wget no utiliza la convención de numeración de versiones pares e impares popularizada por Linux.
Referencias populares
Wget aparece en la película de Columbia Pictures de 2010, La red social . El personaje principal, una versión algo ficticia del cofundador de Facebook , Mark Zuckerberg , utiliza Wget para recopilar fotos de estudiantes de varios directorios de residencias universitarias de la Universidad de Harvard .
Lanzamientos destacados
Las siguientes versiones representan hitos importantes en el desarrollo de Wget. Las características que aparecen junto a cada versión se han editado para mayor brevedad y no constituyen información completa sobre la misma, la cual está disponible en el archivo NEWS distribuido con Wget. [ 4 ]
- Geturl 1.0, publicado en enero de 1996, fue la primera versión disponible públicamente. El primer anuncio en inglés se remonta a una publicación de noticias en Usenet, que probablemente se refiere a Geturl 1.3.4, publicado en junio. [ 11 ]
- Wget 1.4.0, publicado en noviembre de 1996, fue la primera versión en usar el nombre Wget . También fue la primera versión distribuida bajo los términos de la GNU GPL , ya que Geturl se distribuyó bajo una licencia ad hoc sin garantía .
- Wget 1.4.3, publicado en febrero de 1997, fue la primera versión lanzada como parte del proyecto GNU con los derechos de autor asignados a la FSF .
- Wget 1.5.3, lanzado en septiembre de 1998, marcó un hito en la popularidad del programa. Esta versión se incluyó en muchas distribuciones basadas en Linux , lo que permitió que el programa llegara a un público mucho más amplio.
- Wget 1.6, lanzado en diciembre de 1999, incorporó muchas correcciones de errores para la versión 1.5.3 (que para entonces ya estaba desactualizada), en gran parte gracias al esfuerzo de Dan Harkless.
- Wget 1.7, lanzado en junio de 2001, introdujo la compatibilidad con SSL , las cookies y las conexiones persistentes .
- Wget 1.8, lanzado en diciembre de 2001, añadió limitación de ancho de banda , nuevos indicadores de progreso y el recorrido en amplitud del gráfico de hipervínculos .
- Wget 1.9, lanzado en octubre de 2003, incluía soporte experimental para IPv6 y la capacidad de enviar datos mediante POST a servidores HTTP.
- Wget 1.10, lanzado en junio de 2005, introdujo soporte para archivos grandes , soporte para IPv6 en sistemas de doble familia, autorización NTLM y mejoras en SSL . Mauro Tortonesi asumió el mantenimiento del proyecto.
- Wget 1.11, lanzado en enero de 2008, adoptó la versión 3 de la Licencia Pública General de GNU y añadió soporte preliminar para el
Content-Dispositionencabezado, que suelen usar los scripts CGI para indicar el nombre de un archivo que se va a descargar. También se realizaron mejoras de seguridad en el código de autenticación HTTP. Micah Cowan asumió el mantenimiento del proyecto. - Wget 1.12, lanzado en septiembre de 2009, añadió compatibilidad para analizar URL a partir de contenido CSS en la web y para gestionar identificadores de recursos internacionalizados (IRI) .
- Wget 1.13, lanzado en agosto de 2011, admite HTTP/1.1, corrigió algunos problemas de portabilidad y utilizó la biblioteca GnuTLS por defecto para conexiones seguras. [ 12 ]
- Wget 1.14, lanzado en agosto de 2012, mejoró la compatibilidad con TLS y añadió compatibilidad con la autenticación de acceso Digest RFC 2617 .
- Wget 1.15, lanzado en enero de 2014, añadió
--https-onlysoporte paraPerfect-ForwardSecrecy. - Wget 1.16, lanzado en octubre de 2014, cambió la salida predeterminada de la barra de progreso, cerró la vulnerabilidad CVE - 2014-4877 , agregó soporte para libpsl para verificar dominios de cookies e introdujo —start-pos para permitir iniciar descargas desde una posición específica.
- Wget 1.17, lanzado en noviembre de 2015, eliminó la opción de conversión pasiva a activa de FTP debido a preocupaciones de privacidad, y agregó soporte para FTPS y para
--if-modified-since. - Wget 1.18, lanzado en junio de 2016, resolvió el problema CVE - 2016-4971 y agregó las opciones y .
--bind-dns-address--dns-servers - Wget 1.19, lanzado en febrero de 2017, añadió nuevas opciones para procesar un archivo Metalink; la versión 1.19.1 añadió la
--retry-on-http-erroropción de reintentar una descarga si el servidor web responde con un código de estado HTTP determinado. - Wget 1.20, lanzado en noviembre de 2018, añadió
--retry-on-host-errormayor fiabilidad y--accept-regexopciones--reject-regexpara recuperaciones FTP recursivas.
Wget2
GNU Wget2 2.0.0 se publicó el 26 de septiembre de 2021. Está licenciado bajo la licencia GPL-3.0 o posterior , y se basa en Libwget, que está bajo la licencia LGPL-3.0 o posterior . [ 14 ] Presenta muchas mejoras en comparación con Wget, en particular, en muchos casos Wget2 descarga mucho más rápido que Wget1.x debido a la compatibilidad con los siguientes protocolos y tecnologías: [ 15 ]
- HTTP/2 ,
- compresión HTTP ,
- conexiones paralelas,
- uso del encabezado HTTP If-Modified-Since ,
- TCP Fast Open .
Trabajos relacionados
GWget
GWget es una interfaz gráfica de usuario de software libre para Wget. Fue desarrollada por David Sedeño Fernández basándose en el entorno de software GNOME . GWget admite todas las funciones principales de Wget, así como descargas paralelas. [ 16 ]
Cliget
Cliget es un descargador de complementos de Firefox de código abierto que utiliza Curl , Wget y Aria2. Fue desarrollado por Zaid Abdulla. [ 17 ] [ 18 ] [ 19 ]
Clones
Existen clones de GNU Wget destinados a sistemas embebidos , que suelen tener limitaciones de memoria y almacenamiento. Estos clones admiten sus opciones más básicas, generalmente limitadas a la descarga.
Véase también
- rizo
- HTTrack
- lftp
- Rastreador web
- Comando Invoke-WebRequest de PowerShell iwr
Notas
- ↑ GPL-3.0 o posterior con excepción de OpenSSL.
Referencias
- ↑ Darshit Shah (11 de noviembre de 2024). "wget-1.25.0 lanzado [ estable ] " . Consultado el 11 de noviembre de 2024 .
- 1 2 "Archivo README" . Consultado el 1 de diciembre de 2014 .
- 1 2 Scrivano, Giuseppe (6 de agosto de 2012). "GNU wget 1.14 lanzado" . GNU wget 1.14 lanzado . Free Software Foundation, Inc. Recuperado el 25 de febrero de 2016 .
- 1 2 "GNU Wget NEWS – historial de cambios visibles para el usuario" . Svn.dotsrc.org. 20 de marzo de 2005. Archivado del original el 13 de marzo de 2007. Recuperado el 8 de diciembre de 2012.
Wget 1.4.0 [anteriormente conocido como Geturl] es una reescritura extensa de Geturl.
- ↑ "Wget - Proyecto GNU" . 30 de noviembre de 2018. Consultado el 30 de noviembre de 2018 .
- ↑ "Por qué la FSF obtiene cesiones de derechos de autor de los colaboradores - Proyecto GNU - Fundación del Software Libre (FSF)" . Gnu.org . Consultado el 8 de diciembre de 2012 .
- 1 2 "Gmane Loom" . News.gmane.org. Archivado del original el 9 de enero de 2013. Recuperado el 8 de diciembre de 2012 .
- ↑ "PatchGuidelines - The Wget Wgiki" . Wget.addictivecode.org. 22 de septiembre de 2009. Consultado el 8 de diciembre de 2012 .
- ↑ "Acceso al repositorio" . 31 de julio de 2012. Consultado el 7 de junio de 2013 .
- ↑ "Acceso al repositorio" . 22 de mayo de 2010. Consultado el 20 de junio de 2010 .
- ↑ Niksic, Hrvoje (24 de junio de 1996). "Geturl: Software para descarga no interactiva" . comp.infosystems.www.announce . Consultado el 17 de noviembre de 2016 .
- ↑ "/wget/trunk : contenido de NEWS en la revisión 2608" . bzr.savannah.gnu.org .
- ↑ Tim Rühsen (4 de enero de 2026). "wget2-2.2.1 lanzado" . Consultado el 4 de enero de 2026 .
- 1 2 "GNU Wget2 2.0.0 lanzado" . gnu.org . 26 de septiembre de 2021.
- ↑ "wget2" . GitLab .
- ↑ "Página principal de GWget" . 22 de marzo de 2013.
- ↑ "zaidka/cliget" . GitHub . Consultado el 25 de agosto de 2016 .
- ↑ "Conoce al desarrollador de cliget :: Complementos para Firefox" . addons.mozilla.org . Archivado del original el 21 de septiembre de 2016. Consultado el 25 de agosto de 2016 .
- ↑ "cliget" . addons.mozilla.org . Consultado el 25 de agosto de 2016 .
- ↑ "git.openwrt.org Git - project/uclient.git/summary" . git.openwrt.org . Archivado del original el 6 de octubre de 2021 . Recuperado el 6 de octubre de 2021 .
- 1 2 "landley/toybox" . 6 de octubre de 2021 – vía GitHub.
Enlaces externos
- Sitio web oficial

- Diferentes opciones de línea de comandos Wget/Wget2
- Stenberg, Daniel (9 de noviembre de 2021) [2007]. "Comparación de cURL vs wget" .
- Software de 1996
- Software de línea de comandos
- Software libre multiplataforma
- gestores de descarga
- Clientes FTP gratuitos
- Rastreadores web gratuitos
- Software del Proyecto GNU
- Clientes del protocolo de transferencia de hipertexto
- Software portátil
- Modo texto
- Archivo web
- Extracción de datos web