En el següent article anem a fer una ullada a Wget. Cal dir que GNU WGET és una eina lliure que permet la descàrrega de continguts des de servidors web d'una manera simple i ràpida. El seu nom deriva de World Wide Web (w) I de la paraula obtenir (en anglès obtenir). Aquest nom ve a voler dir: obtenir des de la WWW.
Avui dia hi ha desenes d'aplicacions per descarregar arxius de manera molt eficient. La majoria d'elles es basen en interfícies web i d'escriptori, i estan desenvolupades per a tots els sistemes operatius. No obstant això en GNU / Linux (també hi ha versió per a Windows) Hi ha el poderós gestor de descàrregues d'arxius wget. Aquesta considerat com el downloader més potent que existeix. Suporta protocols com http, https i ftp.
Descarregar arxius amb wget
Descàrrega d'un arxiu
La manera més simple d'utilitzar aquesta eina, és realitzar la descàrrega indicant l'arxiu que volem:
wget http://sitioweb.com/programa.tar.gz
Descarregar utilitzant diferents protocols
Com a bon gestor de descàrregues, és possible sol·licitar més d'una descàrrega alhora. Fins i tot podrem utilitzar diferents protocols en la mateixa ordre:
wget http://sitioweb.com/programa.tar.gz ftp://otrositio.com/descargas/videos/archivo-video.mpg
Descarregar per extensió
Una altra manera de descarregar diversos arxius que utilitzin la mateixa extensió, Serà utilitzant el comodí asterisc:
wget<code class="language-bash" data-lang="bash">-r -A.pdf</code>http://sitioweb.com/*.pdf
Aquesta comanda no sempre funciona, ja que alguns servidors poden haver bloquejat l'accés a wget.
Descarregar un llistat d'arxius
Si el que volem és descarregar els arxius que ens anem trobant, només haurem de guardar els seus URL en un arxiu. Crearem una llista anomenada fitxers.txt i indicarem el nom de la llista a la comanda. cal col·locar només un URL per línia dins archivos.txt.
La comanda que utilitzarem per descarregar el llistat creat i que guardem en archivos.txt serà el següent:
wget -i archivos.txt
Reiniciar una descàrrega
Si pel motiu que sigui la descàrrega es va interrompre, podrem continuar la descàrrega des d'on s'hagi quedat utilitzant la opció c amb la comanda wget:
wget -i -c archivos.txt
Afegeix un log sobre la descàrrega
Si volem obtenir registre sobre la descàrrega, per poder controlar qualsevol incidència sobre la mateixa, haurem d'afegir la opció -o com es mostra a continuació:
wget -o reporte.txt http://ejemplo.com/programa.tar.gz
Limitar l'ample de banda de la descàrrega
En descàrregues molt llargues podrem limitar l'ample de banda de la descàrrega. Amb això evitarem que la descàrrega es porti tot l'ample de banda mentre duri la descàrrega:
wget -o /reporte.log --limit-rate=50k ftp://ftp.centos.org/download/centos5-dvd.iso
Descàrrega amb usuari i contrasenya
Si volem fer una descàrrega des d'un lloc on es requereix d'usuari / contrasenya, només haurem d'utilitzar aquestes opcions:
wget --http-user=admin --http-password=12345 http://ejemplo.com/archivo.mp3
Intents de descàrrega
Per defecte, aquest programa realitza 20 intents d'establir la connexió i iniciar la descàrrega, en llocs molt saturats és possible que ni amb 20 intents es vaig aconseguir. amb la opció t augmenta a més intents.
wget -t 50 http://ejemplo.com/pelicula.mpg
Descarregar una web amb wget
Wget no està limitat a només descàrregues d'arxius.Anem a poder descarregar una pàgina completa. Només haurem d'escriure alguna cosa com:
wget www.ejemplo.com
Descarrega una web i els seus elements extra
Amb l' opció p descarregarem a més tots els elements extres necessaris de la pàgina com fulles d'estils, imatges en línia, etc.
Si hi afegim la opció r se descarregarà de manera recursiva fins a 5 nivells de el lloc:
wget -r www.ejemplo.com -o reporte.log
Converteix els enllaços a locals
Per defecte, els enllaços dins de el lloc apunten a la direcció de l'domini complet. Si descarreguem el lloc de manera recursiva per després estudiar-fora de línia, podrem utilitzar la opció convert-links que els convertirà en enllaços locals:
wget --convert-links -r http://www.sitio.com/
Aconsegueix una còpia completa de el lloc
Tindrem la possibilitat d'obtenir una còpia completa d'un lloc. la opció -mirror és igual a utilitzar les opcions -r -l inf -N que indica recursivitat a nivell infinit i obtenint la marca de temps original de cada arxiu descarregat.
wget --mirror http://www.sitio.com/
Transforma les extensions
Si descarregues el lloc Web per veure-ho fora de línia és possible que diversos fitxers no s'obrin, a causa de extensions com .cgi, .asp o .php. Llavors és possible indicar amb la opció -html-extension que es converteixin tots els arxius a una extensió .html.
wget --mirror --convert-links --html-extension http://www.ejemplo.com
Aquestes són només unes pautes generals del que es pot fer amb Wget. Qui vulgui podrà consultar el manual en línia per consultar totes les possibilitats que ens ofereix aquest meravellós gestor de descàrregues.
Pel de «Descarregar per extensió» he deixat de llegir. No pots descarregar el que no coneixes. A no ser que el directori demanat permeti el llistat d'arxius i no tingui d'un index (i han d'ocórrer ambdues alhora), això que dius no es pot fer. Vaja nivell.
Hola Rubén, és una mica atrevida la ignorància.
El que comentes es pot fer amb un simple comandament a google:
filetype:pdf site:ubunlog.com
En aquest exemple no hi ha cap pdf en aquest blog, però canvia el domini de la fin per la web que prefereixis i veuràs que fàcil és veure tots els fitxers d'un tipus d'una web.
Tingues un bon dia.
Però wget no es connecta a google per buscar els pdf que hi ha en una url. El directori web ha d'estar obert i existir una pàgina índex generada per mod_autoindex o anàlegs, com bé diu Rubén Cardenal ,.
«Aquesta comanda no sempre funciona, ja que alguns servidors poden haver bloquejat l'accés a wget.»
Aquesta esmena que li van col·locar a aquest article, ja que no estic d'acord amb ella (encara que tècnicament és possible bloquejar certs agents web per les peticions de capçalera http i retornar un missatge 403 «no permès») i pas a explicar el perquè:
Tot servidor web Apache (i estic parlant sobre un percentatge considerable de servidors) per defecte permeten fer «globbing» (excel·lent article de Wikipedia, llegiu: https://es.wikipedia.org/wiki/Glob_(inform%C3%A1tica) .
Això en la pràctica vol dir, tal com especifica el sr. Rubén (i ell té raó), QUE SI NO HI HA UN ARXIU ANOMENAT «index.php» o «index.html» (o fins i tot anomenat simplement «index») el servidor tranquil·lament retornarà un llistat dels arxius i directoris (per descomptat en forma d'una pàgina html amb la informació com a enllaç web de cada fitxer). LA MAJORIA DELS SERVIDORS WEB desactiven AQUESTA CARACTERÍSTICA PER MITJÀ DE L'ARXIU .htacces (parlant estrictament de Apache2) PER RAONS DE SEGURETAT.
Heus aquí la versatilitat de wget (veure la seva història, de nou en Wikipedia, la que més sap: https://es.wikipedia.org/wiki/GNU_Wget ) D'analitzar o «parsing» aquesta informació i extreure només les extensions que li demanem.
Ara bé en el cas que no funcioni això, per una o altra raó, podrem provar amb altres funcions avançades de wget, cito directe en anglès:
You want to download all the GIFs from a directory on an HTTP server. You tried 'wget http://www.example.com/dir/*.gif’, But that did not work because HTTP retrieval does not support GLOBBING (les majúscules les poso jo). In that case, utilitzeu:
wget -r -l1 -no-parent -A.gif http://www.example.com/dir/
More verbose, but the effect is the same. '-R -l1' means to retrieve recursively (see Recursive Download), with maximum depth of 1. '-no-parent' means that references to the parent directory are ignored (see Directory-Based Limits), and '-A. gif 'means to download only the gIF files. '-A «* .gif»' would have worked too.
SI ES CORRE D'AQUESTA ÚLTIMA MANERA wget ens crearà una carpeta amb l'adreça web sol·licitada a la carpeta per defecte on estiguem treballant, i farà subdirectoris de ser necessari i allà col·locarà, per exemple, les imatges .gif que li demanem.
--------
PERÒ si tot i així no és possible obtenir només certa classes d'arxius (* .jpg, per exemple) haurem de fer servir el paràmetre «-page-requisites» que descarrega tots els elements interns d'una pàgina html (imatges, sons, css, etc) juntament amb la pàgina html en si mateixa ( «-page-requisites» es pot abreujar «-p») i que seria l'equivalent a descarregar alguna cosa semblant a un «mhtml» https://tools.ietf.org/html/rfc2557
Espero us sigui útil.
Gràcies pels apunts. Salu2.
Crec que tens un error, les dues primeres línies tenen el mateix comandament.
Moltes gràcies, molt bon tutorial!