Utiliser wget pour réaliser le mirroir d'un site Internet
Si vous avez le besoin de créer un mirroir local d'un site Internet, il n'est nul besoin d'un logiciel compliqué. L'outil wget qui permet de télécharger un fichier en ligne de commande, permet aussi ,moyennant la connaissance des bonnes options, de télécharger l'ensemble du contenu d'un site Internet afin d'en créer un miroir utilisable localement, sans connexion à Internet. Cet article vous donne la ligne de commande à utiliser, et explique vaguement les options utilisées.
Soyez citoyen !
N'utilisez pas cette ligne de commande à tort et à travers ! Cet fonctionnalité soumet les sites Internet à un stress important. Ne vous en servez que rarement, pour des besoins spécifiques, et sur des sites qui vous appartiennent, de préférence.
Si vous faites un usage immodéré de cet outil, vous ne valez pas mieux que les spammeurs qui nous innondent d'emails importuns.
Mirroir d'un site internet
Remarque: Pour l'exemble, j'utilise le nom de domaine www.reflet.com, Remplacez les références à ce domaines par le site dont vous souhaitez créer le mirroir.
Pour réaliser le mirroir d'un site Internet, placez vous dans un dossier vide destiné à contenir le site:
mkdir www.reflet.com
cd www.reflet.com
Et lancez-en le téléchargement:
wget \
--tries=5 \
--no-clobber \
--continue \
--no-host-directories \
--html-extension \
--recursive \
--level=inf \
--convert-links \
--backup-converted \
--page-requisites \
--no-parent \
--restrict-file-names=windows \
--random-wait \
--no-check-certificate \
http://www.reflet.com/
Une fois l'exécution de cette ligne de commande terminée (cela peut prendre longtemps suivant la taille du site mirroiré et la vitesse de votre connexion), vous trouverez dans le dossier ou vous vous trouvez le contenu du site:
ls
Remarque: Si le site dont on crée le mirroir utilise import() pour charger les fichiers CSS, wget n'arrive pas a s'en dépêtrer. Il y'a sans doute une solution complexe au problème, mais personellement, je n'ai pas envie de la chercher. Après tout, on travaille ici dans les derniers retranchements de wget :D. Cependant, il semblerait que ce problème soit corrigé du moins partiellement dans la version 1.12 de wget.
Vous pouvez maintenant visualiser le contenu du mirroir à l'aide de Firefox, ou de votre navigateur préféré. Par exemple:
firefox index.html
Explication des options utilisées
Remarque : l'ensemble des informations de cette sections et bien plus peuvent être retrouvées dans le manuel de wget:
man wget
Voici les options utilisées par la ligne de commande de création d'un mirroir local:
- --tries=5 : On essaye au maximum 5 fois de télécharger les fichiers du site. Cela permet de récupérer les éventuelles erreurs.
- --no-clobber : Par défaut, si un fichier d'un dossier est téléchargé plusieurs fois, chaque téléchargement entraine le renommage des téléchargement précédents, on retrouve donc N fois le même fichier dans le mirroir. L'option no-clobber désactive cette fonctionnalité de renommage, et ne conserve qu'une seule version du fichier.
- --continue : Cette option permet de reprendre le téléchargement de fichiers téléchargés partiellement (par exemple, lorsqu'un téléchargement est intérompu par une erreur réseau). C'est un gain de bande passante non négligeable.
- --no-host-directories : Ceci désactive la création de dossiers pour les hôtes, sans cela les contenus sont stoqués dans un dossier nommé comme leur site d'origine (par exemple : dans le dossier www.reflet.com).
- --html-extension : Ajoute l'extension .html aux fichiers de ce type ne la possédant pas. C'est très pratique si vous créez un mirroir de sites en PHP, ASP, Python, etc...
- --recursive : Téléchargement récursif, on télécharge tous les sous-dossiers du site.
- --level=inf : Désactive la limite de niveau maximum. On télécharge vraiment TOUT le site.
- --convert-links : Convertit les liens dans les documents html de façon à ce que le contenu puisse être parcouru hors ligne, depuis le disque dur.
- --backup-converted : sauvegarde les fichiers avant leur conversion par "convert-links", au cas ou :D.
- --page-requisites : Télécharge les dépendances d'affichage d'une page, cela comprend les images et les fichiers css et javascript.
- --no-parent : Ne remonte pas aux niveaux au dessus du site téléchargé, cela évite d'avoir un mirroir qui prend tout un site, au lieu de seulement une partie spécifique.
- --restrict-file-names=windows : Renomme les fichiers de façons à ce qu'ils soient exploitables par Windows. Indispensable si vous devez graver votre mirroir sur un CD.
- --random-wait : Attente aléatoire entre chaque requête pour éviter de surcharger le serveur, et / ou de se faire bloquer par lui.
- --no-check-certificate : Ne valide pas le certificat SSL pour les liens https.. pratique si vous utilisez un certificat non valide.
Autre outil de création de mirroirs
Si vous souhaitez un outil vraiment spécialisé dans la création de mirroir, je vous propose d'installer l'outil en ligne de commande httrack:
sudo apt-get install httrack
Pour l'utiliser, lancez le simplement avec :
httrack
Remerciements
- Merci à Greg pour son article Using Find.
création de site mirroirs
ce site ma l'air très interressent, je pense mis éjourner un bon moment...
Merci ;))
wget marche bien, mais problèmes avec l'interface graphique
Je suis sous ubuntu karmic. Si je fais des downloads avec wget et ses options, je n'ai aucun problème. Par contre, si je veux utiliser gwget (qui n'est parait il que l'interface graphique), alors les options comme la récursivité etc ne sont pas prises en compte... J'ai testé ceci aussi bien avec la version 1.0.2 que 1.0.4 !!!
Avez vous eu des retours sur des problèmes de ce genre ?
Merci