« Aspiration de site » avec wget
Rédigé par Marc GUILLAUME | Aucun commentaireWget
La page man française de wget indique :
« Wget peut suivre les liens des pages HTML et XHTML et créer une copie locale de sites web distants, en récréant complètement la structure du site original. Ceci est parfois désigné sous le nom de « téléchargement récursif ». En faisant cela, Wget respecte le standard d'exclusion de robots (/robots.txt). Wget peut aussi convertir les liens dans les fichiers HTML téléchargés pour la consultation locale. »
Comment utiliser wget de façon « propre »
Voici une façon simple d'obtenir une copie d'un site consultable ensuite en local hors connexion. Les options choisies sont les plus simples. Il ne s'agit pas ici de maintenir un miroir d'un site mais bien de pouvoir le consulter sur sa machine locale.
Il est évidemment préférable d'avoir l'accord du webmaster avant d'aspirer un site, même si des options comme
--random-wait
peuvent permettre de passer inaperçu. Question de politesse.
Tout ce qui suit est tiré de la page man wget
qu'il ne faut bien entendu pas négliger de consulter pour voir la multitude d'autres options.
La commande suivante permet d'obtenir une copie consultable en local du site exemple.com.
wget -r -k -E -np -w 3 --random-wait -o /chemin/vers/fich.log -b http://exemple.com
Si l'on ne voulait que le sous répertoire http://exemple.com/doc/superdocwget/ il suffirait de lancer la commande sur ce chemin pour n'avoir que ce répertoire et ses sous-répertoires.
Voici l'explicitation des options retenues :
- Option
-r
-r
ou--recursive
indique que le téléchargement doit être récursif. C'est à dire que les documents seront téléchargés en suivant les liens hypertexte jusqu'à un niveau de profondeur par défaut de 5 et qui peut être modifié par l'option-l
.- Option
-k
-k
ou--convert-links
indique que une fois le téléchargement terminé, wget convertit les liens du document pour qu'il soit consultable en local. Ceci affecte non seulement les liens hypertextes, mais aussi toute partie du document qui lie un contenu extérieur, comme les images, les liens vers les feuilles de style, les hyperliens vers du contenu non-HTML, etc. C'est donc l'option qui permet d'avoir une copie locale d'un site.- Option
-E
-E
ou--html-extension
si un fichier de type application/xhtml+xml ou texte/html est téléchargé et que l'URL ne se termine pas par l'expression régulière \.[H[T[M[L?, cette option provoque l'ajout du suffixe .html au nom de fichier local. C'est pratique, si vous êtes en train de répliquer un site distant qui utilise des pages .asp, mais vous voulez que les pages répliquées soient visibles sur votre serveur Apache. Cette option est aussi très utile lorsque vous téléchargez la sortie de CGI. Une URL comme http://site.com/article.cgi?25 sera sauvegardé sous article.cgi?25.html.- Option
-np
-np
ou--no-parent
permet de ne pas remonter dans les répertoires parents. C'est une option utile, puisqu'elle garantit que seuls les fichiers en dessous d'une certaine hiérarchie seront téléchargés.- Option
-w secondes
-w secondes
ou--wait=secondes
, impose un délai de latence entre chaque requête de téléchargement de la valeur spécifiée dans secondes, cela permet de soulager le serveur en rendant les requêtes moins fréquentes. Le délai peut être précisé en minutes en utilisant le suffixem
, en heures en utilisant le suffixeh
et même en jours en utilisant le suffixed
.- Option
--random-wait
- Certains sites analysent les logs pour repérer des requêtes de téléchargement régulières qui signent l'activité d'un aspirateur de site. Avec cette option, un délai aléatoire valant entre 0.5 et 1.5 fois la valeur fixée par
-w
sera appliqué entre chaque téléchargement, afin de masquer le travail de wget. - Option
-o
- Cette option permet de définir un fichier de log où seront consignées toutes les opérations effectuées par wget lors du téléchargement qui autrement seraient redirigées vers la sortie d'erreur standard.
- Option
-b
- Envoit le porcessus en arrière plan en affichant son pid. Si aucun fichier de log n'a été spécifié par l'option
-o
les sorties sont dirigées vers un fichier wget-log.