GNU/Linux >> Linux Esercitazione >  >> Linux

7 trucchi pratici per usare il comando wget di Linux

Wget è un'utilità gratuita per scaricare file dal web. Ottiene i dati da Internet e li salva in un file o li visualizza nel tuo terminale. Questo è letteralmente anche ciò che fanno i browser Web, come Firefox o Chromium, eccetto per impostazione predefinita, essi rendering le informazioni in una finestra grafica e di solito richiedono che un utente le controlli attivamente. Il wget l'utilità è progettata per essere non interattiva, il che significa che puoi scrivere o pianificare wget per scaricare file indipendentemente dal fatto che tu sia al computer o meno.

Scarica un file con wget

Puoi scaricare un file con wget fornendo un collegamento a un URL specifico. Se fornisci un URL che per impostazione predefinita è index.html , quindi la pagina dell'indice viene scaricata. Per impostazione predefinita, il file viene scaricato in un file con lo stesso nome nella directory di lavoro corrente.

$ 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'

Puoi creare wget invia i dati allo standard out (stdout ) utilizzando invece il --output-document con un trattino - carattere:

$ wget http://example.com --output-document - | head -n4
<!doctype html>
<html>
<head>
   <title>Example Domain</title>

Puoi usare il --output-document opzione (-O in breve) per nominare il tuo download come vuoi:

$ wget http://example.com --output-document foo.html

Continua un download parziale

Se stai scaricando un file molto grande, potresti dover interrompere il download. Con il --continue (-c in breve), wget può determinare dove si è interrotto il download e continuare il trasferimento del file. Ciò significa che la prossima volta che scarichi una ISO di distribuzione Linux da 4 GB non dovrai mai tornare all'inizio quando qualcosa va storto.

$ wget --continue https://example.com/linux-distro.iso

Scarica una sequenza di file

Se non è un file grande ma diversi file che devi scaricare, wget può aiutarti in questo. Supponendo che tu conosca la posizione e il modello di nome file dei file che desideri scaricare, puoi utilizzare la sintassi Bash per specificare i punti di inizio e fine tra un intervallo di numeri interi per rappresentare una sequenza di nomi di file:

$ wget http://example.com/file_{1..4}.webp

Rispecchia un intero sito

Puoi scaricare un intero sito, inclusa la sua struttura di directory, usando il --mirror opzione. Questa opzione è la stessa dell'esecuzione di --recursive --level inf --timestamping --no-remove-listing , il che significa che è infinitamente ricorsivo, quindi ottieni tutto sul dominio specificato. A seconda dell'età del sito web, ciò potrebbe significare che stai ricevendo molti più contenuti di quanto pensi.

Se stai usando wget per archiviare un sito, quindi le opzioni --no-cookies --page-requisites --convert-links sono utili anche per garantire che ogni pagina sia fresca, completa e che la copia del sito sia più o meno autonoma.

Modifica le intestazioni HTML

I protocolli utilizzati per lo scambio di dati hanno molti metadati incorporati nei pacchetti che i computer inviano per comunicare. Le intestazioni HTTP sono componenti della parte iniziale dei dati. Quando navighi in un sito Web, il tuo browser invia le intestazioni delle richieste HTTP. Usa il --debug opzione per vedere quali informazioni sull'intestazione wget invia ad ogni richiesta:

$ 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---

Puoi modificare l'intestazione della tua richiesta con --header opzione. Ad esempio, a volte è utile imitare un browser specifico, sia per testare che per tenere conto di siti codificati male che funzionano correttamente solo per programmi utente specifici.

Per identificare come Microsoft Edge in esecuzione su 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

Puoi anche mascherarti come un dispositivo mobile specifico:

$ 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

Visualizzazione delle intestazioni delle risposte

Allo stesso modo in cui le informazioni sull'intestazione vengono inviate con le richieste del browser, anche le informazioni sull'intestazione vengono incluse nelle risposte. Puoi vedere le intestazioni delle risposte con --debug opzione:

$ 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'

Rispondere a una risposta 301

Un codice di risposta 200 significa che tutto ha funzionato come previsto. Una risposta 301, d'altra parte, significa che un URL è stato spostato in modo permanente in una posizione diversa. È un modo comune per l'amministratore di un sito Web di trasferire il contenuto lasciando una "traccia" in modo che le persone che visitano la vecchia posizione possano ancora trovarlo. Per impostazione predefinita, wget segue i reindirizzamenti, ed è probabilmente ciò che normalmente vuoi che faccia.

Tuttavia, puoi controllare cosa wget fa quando incontra una risposta 301 con il --max-redirect opzione. Puoi impostarlo su 0 da seguire nessun reindirizzamento:

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

In alternativa, puoi impostarlo su un altro numero per controllare quanti reindirizzamenti wget segue.

Espandi un URL abbreviato

Il --max-redirect l'opzione è utile per guardare gli URL abbreviati prima di visitarli effettivamente. Gli URL abbreviati possono essere utili per la carta stampata, in cui gli utenti non possono semplicemente copiare e incollare un URL lungo, o sui social network con limiti di caratteri (questo non è un grosso problema su un social network moderno e open source come Mastodon ). Tuttavia, possono anche essere un po' pericolosi perché la loro destinazione è, per natura, nascosta. Combinando il --head opzione per visualizzare solo le intestazioni HTTP e il --location opzione per svelare la destinazione finale di un URL, puoi sbirciare in un URL abbreviato senza caricare l'intera risorsa:

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

Più risorse Linux

  • Comandi Linux cheat sheet
  • Cheat sheet sui comandi avanzati di Linux
  • Corso online gratuito:Panoramica tecnica RHEL
  • Cheat sheet della rete Linux
  • Cheat sheet di SELinux
  • Cheat sheet dei comandi comuni di Linux
  • Cosa sono i container Linux?
  • I nostri ultimi articoli su Linux

La penultima riga di output, che inizia con Posizione , rivela la destinazione prevista.

Usa wget

Una volta che ti eserciti a pensare al processo di esplorazione del Web come un unico comando, wget diventa un modo rapido ed efficiente per estrarre le informazioni di cui hai bisogno da Internet senza preoccuparti di un'interfaccia grafica. Per aiutarti a integrarlo nel tuo solito flusso di lavoro, abbiamo creato un cheat sheet con il comune wget usi e sintassi, inclusa una panoramica del suo utilizzo per interrogare un'API. Scarica il wget di Linux cheat sheet qui.


Linux
  1. Una guida al terminale Linux per principianti

  2. 8 suggerimenti per la riga di comando di Linux

  3. Usando la forza sulla riga di comando di Linux

  4. Suggerimenti per l'utilizzo del comando top in Linux

  5. 4 strumenti per scaricare qualsiasi file utilizzando la riga di comando in Linux

Come scaricare file con il comando Wget in Linux

Tutorial sull'uso del comando Timeout su Linux

Tutorial sull'utilizzo dell'ultimo comando nel terminale Linux

Una guida pratica per il comando chroot in Linux

Come utilizzare il comando wget in Linux?

Come scaricare file in Rocky Linux 8 sulla riga di comando usando wget