Table des matières

wget

Télécharger un site entier

Si vous voulez télécharger un site entier, peut être pour le visiter off-line, wget peut le faire. Par exemple:

$ wget \
   --recursive \
   --no-clobber \
   --page-requisites \
   --html-extension \
   --convert-links \
   --restrict-file-names=windows \
   --domains website.org \
   --no-parent \
       www.website.org/tutorials/html/
       

Cette commande va télécharger le site www.website.org/tutorials/html/.

Les options sont:

-–recursive: télécharge le site web entier.
–-domains website.org: ne suit pas les liens pointant hors du domaine website.org.
–-no-parent: ne suis pas les liens pointant hors du dossier tutorials/html/.
–-page-requisites: récupère tous les éléments qui composent la page (images, CSS et cie).
-–html-extension: enregistre les fichiers avec l’extention .html.
–-convert-links: convertit les liens afin qu’ils fontionnent localement (off-line).
–-restrict-file-names=windows: modifie les noms de fichiers afin qu’ils fonctionnent aussi sur Windows.
–-no-clobber: n’écrase pas les fichiers déjà existants (utilisé en cas de téléchargement interrompu et repris).

Il peut aussi être important d’ajouter les options

–wait=9 –limit-rate=10K

qui éviteront de surcharger le serveur qui vous fournit les pages et d’éviter, éventuellement, de vous faire blacklister par un admin un peu pointilleux.

–-wait=X : attend X secondes entre chaque téléchargement
-–limit-rate=XK : limite la bande passante utilisée à X Ko/s

Utiliser ces options permet plus de souplesse que de simplement utiliser l’option -m (mirror).

Exemples

Afficher à l’écran le contenu d’une url, par exemple afficher le code html d’une page web

wget -qO- http://google.fr
-q : pour quiet, pour ne pas afficher tout le bazard de texte
-O : permet de spécifier dans quel fichier stocker le contenu téléchargé par wget. Ici on ajoute un tiret afin de spécifier la redirection vers l’écran (STDOUT)

Faire un appel à une url. Dans le cas d’un cron web par exemple.

wget -q --spider http://monsite.fr/cron.php
-q : pour quiet, pour ne pas polluer les logs ou autre.
–spider : permet de ne rien télécharger.

Télécharger un répertoire complet via ftp (ce qu’on ne peut pas faire avec de simple commande ftp)

wget -r ftp://login:passwd@ftp.host.net/thedir

Nommer le fichier automatiquement

Assez souvent quand on télécharge un fichier, on se retrouve avec un nom de fichier qui ne correspond à rien, exemple

$ wget http://download-lb.utorrent.com/endpoint/btsync/os/linux-glibc23-x64/track/stable
$ ls
$ stable

On se retrouve avec un fichier nommé stable qui est en faite le dernier élément de l’url. Si on télécharge à la même url dans un navigateur web classic, on obtient le fichier btsync_glibc23_x64.tar.gz

Voici la solution, l’option –content-disposition qui tient compte de l’entête “Content-Disposition” pour le choix des noms de fichiers locaux.

$ wget --content-disposition http://download-lb.utorrent.com/endpoint/btsync/os/linux-glibc23-x64/track/stable
$ ls
$ btsync_glibc23_x64.tar.gz