WGET

Wget est un programme en ligne de commande non interactif de téléchargement de fichiers depuis le Web. Il supporte les protocoles HTTP, HTTPS et FTP ainsi que le téléchargement au travers des proxies HTTP.

Wget peut travailler en arrière-plan et ainsi vous permettre de lancer un téléchargement et de vous déconnecter du système ! Utile car il ne requiert pas d'action de l'utilisateur et vous permet d'effectuer ses tâches en arrière plan, ce qui peut être très utile pour les téléchargements de données nombreuses et lourdes. Vous pouvez ainsi changer de session et laisser Wget finir le travail !

Ce logiciel libre permet le simple téléchargement d'un fichier mais aussi la recopie en local de tout ou partie d'un site qui sera par la suite consultable hors-ligne. Point fort appréciable, Wget vous permet de reprendre un téléchargement échoué suite à divers problèmes (connexions instables ou très lentes etc…). Les nombreuses options de Wget en font un outil de téléchargement très puissant !

  • Disposer d'une connexion à Internet configurée et activée

Wget est installé par défaut dans les dernières versions d'Ubuntu. Cependant, si ce n'est pas le cas, il suffit d'installer le paquet wget. Il est possible de définir certaines des options ci-dessous dans le fichier personnel « .wgetrc ».

wget [options] [url]

Par défaut, le fichier sera enregistré dans le dossier courant, ordinairement votre dossier personnel /home/vous.

Descriptions des options principales

-V –> Renseigne sur la version de Wget.

-h –> Affiche toutes les options disponibles.

-i –> Lit les adresses depuis un fichier .txt.

-N –> ( –timestamping ) Active l'horodatage (time-stamping). Permet d'écraser les fichiers sur la destination s'ils existent

-t –> Définit le nombre de tentatives, 0 ou inf pour un nombre illimité de tentatives. Par défaut 20 tentatives sont effectuées, à moins qu'une erreur fatale apparaisse.

-c –> Reprend un téléchargement interrompu.

-S –> Affiche les messages envoyés par les serveurs FTP ou HTTP.

-Y –> on/off active ou désactive le support proxy.

-nd –> Si cette option est utilisée les fichiers sauvegardés le seront dans un seul et même répertoire.

-r –> Active le téléchargement récursif.

-l –> Indique la profondeur à utiliser lors d'un téléchargement récursif.

-k –> Convertit les liens pour être disponible en consultation locale.

-p –> Oblige Wget à télécharger tous les fichiers requis pour une consultation convenable d'une page HTML.

-m –> Active toutes les options convenables pour faire un miroir.

--follow-ftp –> Sans cette option tous les liens FTP donnés depuis un document HTML seront ignorés.

-H –> Autorise lors d'un téléchargement récursif le changement d'hôtes.

-np –> Ne remonte pas les répertoires parents.

-A –> Permet de ne télécharger que le type de fichier choisi.

-o –> Permet d' enregistrer tous les messages de Wget dans un fichier.

-a –> Idem que -o sauf que les messages sont ajoutés à la suite du fichier empêchant ainsi d'écraser l'ancien fichier.

--user-agent=paul –>S'identifier sous le nom paul pour le serveur HTTP. Permet de falsifier la valeur de user-agent envoyé par Wget, ceci n'est pas recommandé à moins de vraiment savoir ce que vous faites

--limit-rate=30K –> Permet de limiter le débit, ici à 30 ko/s.

-q –> Évite l'affichage des messages du wget.

D'autres options sont bien sûr disponibles, elles sont disponibles sur le Manpage en francais. ( Voir dans la section Références )

Exemples d'utilisation courante

Télécharger simplement un fichier :

wget http://www.site.org/rep/01/fichier.txt

Reprendre un téléchargement si celui-ci est incomplet ( option inutile s'il s'agit de retenter un téléchargement échoué ) :

wget -c ftp://serveur.org/rep/01/fichier.txt

Dans ce cas seul le répertoire /01/ sera copié ( -np ), les répertoires parent étant ignorés :

wget -r -np http://www.site.org/rep/01/

Ici aucun répertoire ne sera créé ( -nd ) :

wget -r -nd http://www.site.org/rep/01/

Télécharger sur un FTP avec authentification (ici le nom d'utilisateur est paul et son mot de passe 123) :

wget -r l4 ftp://paul:123@serveur.org/

Spécifier un dossier de destination :

wget -P $HOME/dossier/de/destination http://www.site.org/rep/01/fichier.txt

Exemples d'utilisation avancée

Télécharger les URL contenues dans un fichier :

wget -i fichier

Télécharger un fichier accessible par un lien dynamique (notamment les sites en PHP) : Il faut mettre l'adresse URL entre simple quote et préciser le nom du fichier de destination avec l'option -O

wget -i $HOME/Téléchargements/  'https://www.vim.org/scripts/download_script.php?src_id=19574' -O taglist_46.zip

Télécharge récursivement le site ( -r ) et enregistre les messages dans le fichier wgetlog ( -o ) en limitant le débit du téléchargement à 30 Ko/s ( –limite-rate=30k ) :

wget -r --limit-rate=30k http//www.site.org/ -o wgetlog

Téléchargement avec une profondeur de 4 ( -l4 ) et en enregistrant les messages à la suite du fichier wgetlog déjà créé ( -awgetlog ) :

wget -r -l4 http://www.site.org/ -awgetlog

Dans ce cas seul les fichiers de type .txt seront téléchargés ( -A.txt ) :

wget -r -l3 -A.txt ftp://serveur.org/

Ici seul les fichiers .jpg seront téléchargés ( -A.jpeg ), les messages seront inscrit à la suite du fichier wgetlog ( -awgetlog ) et Wget téléchargera à partir des adresses indiqués dans le fichier maliste.txt ( -imaliste) :

wget -r -A.jpg -awgetlog -imaliste.txt

Télécharger le site récursivement avec une profondeur infinie ( -linf ), convertit les liens pour une consultation en local ( -k ), rapatrie tous les fichiers nécessaires à l'affichage convenable d'une page HTML ( -p ) et renomme toutes les pages HTML avec l'extension .html ( -E ) :

wget -r -linf -k -p -E http://www.site.org/

Par le script wgetgui

Voici un petit script qui permet d'utiliser wget avec les mêmes options à la ligne de commande tout en voyant la progression, le taux de transfert et le temps restant dans une interface conviviale.

Créez un fichier avec le code suivant et enregistrez le de préférence comme wgetgui dans le dossier ~/bin/:

wgetgui
#!/bin/bash
wget $@ 2>&1 | tee /dev/stderr | sed -u "s/^ *[0-9]*K[ .]*\([0-9]*%\) *\([0-9,]*[A-Z]\) *\([0-9a-z]*\).*/\1\n#Téléchargement ... \3 restant à \2\/s/" | zenity --title="Wget Gui" --text="Connexion..." --progress --auto-close --auto-kill 2> /dev/null
echo


Puis, rendez-le exécutable avec:

Remplacez ~/bin/wgetgui par le chemin d'accès de votre script s'il porte un autre nom et/ou n'est pas dans ~/bin.
chmod +x ~/bin/wgetgui
Afin de bénéficier confortablement de ce script, il est préférable de rajouter ceci à la fin de votre fichier ~/.bashrc:
export PATH=$PATH:$HOME/bin

Si vous ne le faites pas, vous devrez exécuter le script de cette manière :

./dossier/vers/votre/script/wgetgui http://foo.bar.com/file.txt

Vous pouvez dès à présent utiliser le script en faisant :

wgetgui http://foo.bar.com/file.txt
  • wget.txt
  • Dernière modification: Le 11/09/2022, 11:42
  • par moths-art