Come usare wget in modo avanzato

6 giu 2023 4 min di lettura
Come usare wget in modo avanzato
Indice dei contenuti

Introduzione

wget offre un gran numero di funzioni avanzate che possono essere utilizzate per personalizzare e automatizzare il processo di download. Di seguito sono riportati alcuni esempi.

Leggere gli URL da un file

Se avete un file che contiene gli URL che volete scaricare, potete utilizzare l'opzione -i:

wget -i file

Se specificate '-' come nome del file, gli URL saranno letti dall'input standard.

Creare una copia mirror di un sito web

Per creare una copia mirror di un sito web profonda cinque livelli, con la stessa struttura di directory dell'originale, con un solo tentativo per documento, salvando il log delle attività in gnulog, potete usare il comando:

wget -r https://www.gnu.org/ -o gnulog

Potete anche convertire i link nei file scaricati per puntare ai file locali, in modo da poter visualizzare i documenti offline:

wget --convert-links -r https://www.gnu.org/ -o gnulog

Questi comandi scaricano il sito web "www.gnu.org" e salvano il log delle attività in un file chiamato "gnulog".

Scaricare una pagina HTML con tutte le sue risorse

Per scaricare solo una pagina HTML, ma assicurandovi che tutti gli elementi necessari per la visualizzazione della pagina, come le immagini inline e i fogli di stile esterni, vengano scaricati, potete utilizzare l'opzione -p e --convert-links:

wget -p --convert-links http://www.example.com/dir/page.html

Questo comando salverà la pagina HTML a www.example.com/dir/page.html, e le immagini, i fogli di stile, ecc., da qualche parte sotto www.example.com/, a seconda di dove si trovavano sul server remoto.

Se non volete avere tutte quelle directory del server casuale, basta salvare tutti quei file sotto una sottodirectory download/ della directory corrente:

wget -p --convert-links -nH -nd -Pdownload http://www.example.com/dir/page.html

Questo comando salverà la pagina HTML e tutte le sue risorse in una sottodirectory chiamata "download" della directory corrente.

Mostrare gli header del server

Per recuperare l'index.html di www.lycos.com, mostrando gli header originali del server, potete utilizzare l'opzione -S:

wget -S http://www.lycos.com

Se volete salvare gli header del server con il file, forse per un post-processing, potete utilizzare l'opzione --save-headers:

wget --save-headers http://www.lycos.com/

Questo comando salverà gli header del server nel file index.html.

Scaricare i primi due livelli di un sito FTP

Per scaricare i primi due livelli di wuarchive.wustl.edu, salvandoli in /tmp, potete utilizzare le opzioni -r, -l2 e-P/tmp:

wget -r -l2 -P/tmp ftp://wuarchive.wustl.edu

Questo comando scaricherà i primi due livelli di wuarchive.wustl.edu e li salverà in /tmp.

Scaricare tutti i file GIF da una directory

Se volete scaricare tutti i file GIF da una directory su un server HTTP, potete utilizzare le opzioni -r, -l1, --no-parent e -A.gif:

wget -r -l1 --no-parent -A.gif http://www.example.com/dir

Questo comando scaricherà tutti i file GIF dalla directory specificata sul server HTTP.

Riprendere i download interrotti senza sovrascrivere i file esistenti

Se il vostro download viene interrotto, e non volete sovrascrivere i file già presenti, potete utilizzare l'opzione -nc:

wget -nc -r https://www.gnu.org

Questo comando riprenderà il download dal punto in cui è stato interrotto, senza sovrascrivere i file già presenti.

Codificare il proprio nome utente e password per HTTP o FTP

Se volete codificare il vostro nome utente e password per HTTP o FTP, potete utilizzare la seguente sintassi:

wget ftp://hniksic:[email protected]/.emacs

Questo comando scaricherà il file .emacs dal server FTP specificato, utilizzando il nome utente "hniksic" e la password "mypassword".

Inviare i documenti scaricati all'output standard

Se volete che i documenti scaricati vengano inviati all'output standard invece che ai file, potete utilizzare l'opzione -O:

wget -O - http://jagor.srce.hr/ http://www.srce.hr

Questo comando scaricherà i documenti dai siti web specificati e li invierà all'output standard invece di salvarli come file​1​.

Limitare la velocità di download

Se volete limitare la velocità di download per evitare di sovraccaricare la vostra connessione, potete utilizzare l'opzione --limit-rate. Ad esempio, per limitare la velocità di download a 200k, potete usare:

wget --limit-rate=200k http://example.com

Questo comando scaricherà il file dal sito web specificato a una velocità massima di 200 kilobytes al secondo.

Scaricare file da un elenco di URL

Se avete una lista di URL da cui volete scaricare file, potete utilizzare l'opzione -i con un file che contiene tutti gli URL. Ad esempio:

wget -i urls.txt

Questo comando scaricherà tutti i file dagli URL elencati nel file "urls.txt".

Scaricare file in background

Se volete che wget scarichi i file in background, potete utilizzare l'opzione -b. Ad esempio:

wget -b http://example.com

Questo comando farà iniziare il download del file in background, permettendovi di continuare a utilizzare il terminale per altri comandi.

Scaricare file solo se non sono già presenti localmente

Se volete scaricare solo i file che non sono già presenti localmente, potete utilizzare l'opzione -N. Ad esempio:

wget -N http://example.com

Questo comando scaricherà il file solo se non è già presente localmente o se la versione locale è più vecchia di quella sul server.

Conclusione

Questi sono solo alcuni degli usi avanzati di wget. L'utility è estremamente versatile e può essere utilizzata in molti modi diversi per automatizzare e personalizzare i vostri download. Consultate la pagina man di wget o la sua documentazione online per ulteriori informazioni.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.