Wget es una utilidad gratuita para descargar archivos de la web. Obtiene datos de Internet y los guarda en un archivo o los muestra en su terminal. Esto es literalmente lo que hacen los navegadores web, como Firefox o Chromium, excepto que, de forma predeterminada, procesan la información en una ventana gráfica y generalmente requieren que un usuario los controle activamente. El wget
La utilidad está diseñada para no ser interactiva, lo que significa que puede programar o programar wget
para descargar archivos ya sea que esté en su computadora o no.
Descargar un archivo con wget
Puede descargar un archivo con wget
proporcionando un enlace a una URL específica. Si proporciona una URL cuyo valor predeterminado es index.html
, luego se descarga la página de índice. De forma predeterminada, el archivo se descarga en un archivo del mismo nombre en su directorio de trabajo actual.
$ wget http://example.com
--2021-09-20 17:23:47-- http://example.com/
Resolving example.com... 93.184.216.34, 2606:2800:220:1:248:1893:25c8:1946
Connecting to example.com|93.184.216.34|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1256 (1.2K) [text/html]
Saving to: 'index.html'
Puedes hacer wget
enviar los datos a la salida estándar (stdout
) en su lugar usando el --output-document
con un guión -
carácter:
$ wget http://example.com --output-document - | head -n4
<!doctype html>
<html>
<head>
<title>Example Domain</title>
Puede usar el --output-document
opción (-O
para abreviar) para nombrar tu descarga como quieras:
$ wget http://example.com --output-document foo.html
Continuar una descarga parcial
Si está descargando un archivo muy grande, es posible que tenga que interrumpir la descarga. Con --continue
(-c
para abreviar), wget
puede determinar dónde se detuvo la descarga y continuar con la transferencia de archivos. Eso significa que la próxima vez que descargue una distribución ISO de Linux de 4 GB, nunca tendrá que volver al principio cuando algo salga mal.
$ wget --continue https://example.com/linux-distro.iso
Descargar una secuencia de archivos
Si no es un archivo grande sino varios archivos que necesita descargar, wget
puede ayudarte con eso. Suponiendo que conoce la ubicación y el patrón de nombre de archivo de los archivos que desea descargar, puede usar la sintaxis de Bash para especificar los puntos de inicio y fin entre un rango de números enteros para representar una secuencia de nombres de archivo:
$ wget http://example.com/file_{1..4}.webp
Duplicar un sitio completo
Puede descargar un sitio completo, incluida su estructura de directorios, utilizando --mirror
opción. Esta opción es lo mismo que ejecutar --recursive --level inf --timestamping --no-remove-listing
, lo que significa que es infinitamente recursivo, por lo que obtendrá todo en el dominio que especifique. Dependiendo de la antigüedad del sitio web, eso podría significar que obtiene mucho más contenido del que cree.
Si está utilizando wget
para archivar un sitio, entonces las opciones --no-cookies --page-requisites --convert-links
también son útiles para garantizar que cada página esté actualizada, completa y que la copia del sitio sea más o menos independiente.
Modificar encabezados HTML
Los protocolos utilizados para el intercambio de datos tienen una gran cantidad de metadatos integrados en los paquetes que envían las computadoras para comunicarse. Los encabezados HTTP son componentes de la parte inicial de los datos. Cuando navega por un sitio web, su navegador envía encabezados de solicitud HTTP. Usa el --debug
opción para ver qué información de encabezado wget
envía con cada solicitud:
$ wget --debug example.com
---request begin---
GET / HTTP/1.1
User-Agent: Wget/1.19.5 (linux-gnu)
Accept: */*
Accept-Encoding: identity
Host: example.com
Connection: Keep-Alive
---request end---
Puede modificar el encabezado de su solicitud con --header
opción. Por ejemplo, a veces es útil imitar un navegador específico, ya sea para realizar pruebas o para dar cuenta de sitios mal codificados que solo funcionan correctamente para agentes de usuario específicos.
Para identificarse como Microsoft Edge ejecutándose en Windows:
$ wget --debug --header="User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.59" http://example.com
También puede hacerse pasar por un dispositivo móvil específico:
$ wget --debug \
--header="User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 13_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.1 Mobile/15E148 Safari/604.1" \
http://example.com
Ver encabezados de respuesta
De la misma manera que la información del encabezado se envía con las solicitudes del navegador, la información del encabezado también se incluye en las respuestas. Puede ver los encabezados de respuesta con --debug
opción:
$ wget --debug example.com
[...]
---response begin---
HTTP/1.1 200 OK
Accept-Ranges: bytes
Age: 188102
Cache-Control: max-age=604800
Content-Type: text/html; charset=UTF-8
Etag: "3147526947"
Server: ECS (sab/574F)
Vary: Accept-Encoding
X-Cache: HIT
Content-Length: 1256
---response end---
200 OK
Registered socket 3 for persistent reuse.
URI content encoding = 'UTF-8'
Length: 1256 (1.2K) [text/html]
Saving to: 'index.html'
Responder a una respuesta 301
Un código de respuesta 200 significa que todo funcionó como se esperaba. Una respuesta 301, por otro lado, significa que una URL se ha movido permanentemente a una ubicación diferente. Es una forma común para que un administrador de un sitio web reubique el contenido mientras deja un "rastro" para que las personas que visitan la ubicación anterior aún puedan encontrarlo. Por defecto, wget
sigue las redirecciones, y eso es probablemente lo que normalmente quieres que haga.
Sin embargo, puede controlar lo que wget
hace cuando encuentra una respuesta 301 con --max-redirect
opción. Puede establecerlo en 0
seguir sin redireccionamientos:
$ wget --max-redirect 0 http://iana.org
--2021-09-21 11:01:35-- http://iana.org/
Resolving iana.org... 192.0.43.8, 2001:500:88:200::8
Connecting to iana.org|192.0.43.8|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://www.iana.org/ [following]
0 redirections exceeded.
Alternativamente, puede configurarlo en algún otro número para controlar cuántos redireccionamientos wget
sigue.
Expandir una URL abreviada
El --max-redirect
La opción es útil para buscar URL abreviadas antes de visitarlas. Las URL acortadas pueden ser útiles para los medios impresos, en los que los usuarios no pueden simplemente copiar y pegar una URL larga, o en redes sociales con límites de caracteres (esto no es un problema tan grande en una red social moderna y de código abierto como Mastodon ). Sin embargo, también pueden ser un poco peligrosos porque su destino es, por naturaleza, oculto. Combinando el --head
opción para ver solo los encabezados HTTP y la --location
opción para desentrañar el destino final de una URL, puede echar un vistazo a una URL abreviada sin cargar el recurso completo:
$ wget --max-redirect 0 "https://bit.ly/2yDyS4T"
--2021-09-21 11:32:04-- https://bit.ly/2yDyS4T
Resolving bit.ly... 67.199.248.10, 67.199.248.11
Connecting to bit.ly|67.199.248.10|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://example.com/ [following]
0 redirections exceeded.
Más recursos de Linux
- Hoja de trucos de los comandos de Linux
- Hoja de trucos de comandos avanzados de Linux
- Curso en línea gratuito:Descripción general técnica de RHEL
- Hoja de trucos de red de Linux
- Hoja de trucos de SELinux
- Hoja de trucos de los comandos comunes de Linux
- ¿Qué son los contenedores de Linux?
- Nuestros últimos artículos sobre Linux
La penúltima línea de salida, que comienza con Ubicación , revela el destino previsto.
Usar wget
Una vez que practique pensar en el proceso de explorar la web como un solo comando, wget
se convierte en una forma rápida y eficiente de extraer la información que necesita de Internet sin tener que preocuparse por una interfaz gráfica. Para ayudarlo a integrarlo en su flujo de trabajo habitual, hemos creado una hoja de trucos con wget
comunes usos y sintaxis, incluida una descripción general de su uso para consultar una API. Descargue Linux wget
hoja de trucos aquí.