Wget, alguns exemples del que es pot fer amb aquesta eina

Sobre wget

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

Ajuda man de Wget

Ajuda man de 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.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

  1.   Rubén Cardenal va dir

    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.

    1.    InformaticAnònim va dir

      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.

      1.    Phrank va dir

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

    2.    Jimmy Olano va dir

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

      1.    Damian Amoedo va dir

        Gràcies pels apunts. Salu2.

  2.   Afterbanks va dir

    Crec que tens un error, les dues primeres línies tenen el mateix comandament.

  3.   Mike va dir

    Moltes gràcies, molt bon tutorial!