martedì 25 gennaio 2011

Scaricare con wget

Alcuni script ne fanno uso, wget viene usato per scaricare file dalla rete. Il download è non interattivo, si esegue il comando facendolo puntare su un indirizzo e impostandone il comportamento (sono disponibili molte opzioni). Il processo di download, se nel comando scritto non ci sono errori e se l'indirizzo è corretto o raggiungibile, viene eseguito in background. wget scaricherà i file da noi indicati, dal primo all'ultimo, ripetendo e/o riprendendo (se il server che trasmette è in grado di farlo) il download in caso di errori. Supporta i protocolli HTTP, HTTPS ed FTP. Questo comando è in grado di seguire i link presenti nei documenti HTML, XHTML e CSS. Con wget possiamo scaricare file attraverso la rete oppure creare la versione locale di un sito.
wget dispone di numerose opzioni, sia in forma breve che estesa. La sintassi del comando è la seguente: wget opzioni url. Se non indichiamo al comando un url quest'ultimo si limiterà a scaricare il file (indicato proprio dall'url) nella directory di lavoro. Alcune opzioni, inoltre, prevedono un parametro aggiuntivo. Altre, invece, hanno un significato booleano o logico, la loro presenza nel comando abilita la funzione che esse rappresentano. Vi elenco alcune opzioni:
  • -b: il comando va in background subito dopo l'esecuzione. Inoltre, se non viene specificato un file per l'output (con l'opzione -o) il comando scriverà quest'ultimo all'interno del file wget.log;
  • -o file: specifica il file da usare per l'output;
  • -a file: l'output del comando viene accodato al file indicato;
  • -q: il comando verrà eseguito senza mostrare messaggi informativi sullo standard output;
  • -i file: il comando preleva gli url dal file specificato;
  • -t numero: permette di specificare il numero di tentativi da fare per il download di un file prima di dichiarare lo stesso irraggiungibile (il comando dirà, a seconda dei casi, connection refused oppure not found). wget esegue di default 20 tentativi per file, se numero è pari a 0 il comando eseguirà un numero infinito di tentativi;
  • -O file: il file scaricato verrà scritto nel file indicato. Questa opzione permette, quindi, di direzionare l'input su un file. Possiamo usare questa opzione per scaricare il file e assegnare allo stesso un nome diverso da quello in rete;
  • -c: se una precedente sessione di wget è stata interrotta (ad esempio per problemi alla connessione) molto probabilmente troveremo nella directory di lavoro un file parziale, incompleto. Con questa opzione possiamo far ripartire il download;
  • -T tempo: specifica (in secondi) il tempo di timeout per la connessione verso l'url;
  • -limit-rate=velocità: limita il download dei file alla velocità indicata (in byte al secondo). E' possibile usare il suffisso k per i kilobyte ed m per i megabyte;
  • --user=utente e --password=password: specificano, se la connessione al server lo prevede, il nome utente e la password;
  • --ask-password: dopo aver fornito il nome utente con --user, questa opzione permette di digitare la password in un secondo momento, senza scriverla sulla riga di comando;
  • -nd: quando è attiva la modalità ricorsiva questa opzione non permette la creazione gerarchica di cartelle. Tutti i file verranno scaricati nella stessa directory;
  • -np: se è attiva la modalità ricorsiva è preferibile attivare anche questa opzione se non vogliamo far percorrere a wget anche la directory padre (quella che il comando ls segna come ..);
  • -r: abilità la modalità ricorsiva, wget segue ricorsivamente i link e percorrendo, quindi, anche le sottodirectory;
  • -l profondità: specifica il livello di profondità della ricorsione che di default è pari a 5;
  • -w tempo: indica (in secondi) il tempo di attesa fra una richiesta e quella successiva;
  • -A tipo: permette di specificare a wget i tipi di file da scaricare. Tutti gli altri tipi di file verranno ignorati dal comando. Specificate l'estensione dei file, separandole con una virgola. E' possibile usare il carattere jolly (*);
  • -R tipo: indica al comando un comportamento opposto a quello visto per -A. In tal caso, infatti, il comando non scaricherà i tipi di file elencati dopo l'opzione;
  • -E: se stiamo scaricando le pagine di un sito web questa opzione dirà a wget di dare a tutti i file scaricati l'estensione .html;
  • -p: se stiamo scaricando le pagine di un sito web, questa opzione dice a wget di scaricare tutti i file e le pagine utili alla visualizzazione della pagina corrente (e analizzata dal comando);
Trovate altre opzioni nella pagina del manuale del comando, man wget. Il file /etc/wgetrc raccoglie le impostazioni che definiscono il comportamento di default per wget. Che ne dite di provare?
Con il comando wget -Erp http://digilander.libero.it/luca.petrosino/appunti.html scaricherete in un colpo solo l'intera sezione appunti del mio sito web, sia le pagine html che gli appunti (oltre ai file che occorrono per vedere le stesse pagine web offline, immagini, codice javascript etc...).

Nessun commento:

Posta un commento