GNU/Linux >> Tutoriales Linux >  >> Linux

7 trucos útiles para usar el comando wget de Linux

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í.


Linux
  1. Una guía de la terminal de Linux para principiantes

  2. 8 consejos para la línea de comandos de Linux

  3. Usando la fuerza en la línea de comando de Linux

  4. Consejos para usar el comando superior en Linux

  5. 4 herramientas para descargar cualquier archivo usando la línea de comandos en Linux

Cómo descargar archivos con el comando Wget en Linux

Tutorial sobre el uso del comando Timeout en Linux

Tutorial sobre el uso del último comando en la terminal de Linux

Una guía práctica para el comando chroot en Linux

¿Cómo usar el comando wget en Linux?

Cómo descargar archivos en Rocky Linux 8 en la línea de comandos usando wget