Faire un miroir de sauvegarde locale d'un site web tiers avec wget et faire une bibliothèque utilisable hors d'internet

Faire un miroir de sauvegarde locale d'un site web tiers avec wget et faire une bibliothèque utilisable hors d'internet

- 10 mins

Les menaces auxquelles nous sommes confronté·es sont de plus en plus nombreuses, violentes et les informations auxquelles nous pouvons accéder sont de plus en plus compromises. D’autant lorsque nous dépendons d’entreprises ou d’institutions publiques pour des services critiques. Il y a aussi l’intensité croissante d’aléas liés aux dérèglements climatiques.

L’un des moyens d’atténuer ces risques consiste à effectuer des sauvegardes, qui peuvent ensuite être utilisées pour la restauration de sites web et mettre ces sauvegardes là où peu de personnes et d’organisations ont accès ; autrement dit les mettre dans notre espace de stockage local qui nous appartient. Parmi plusieurs stratégies et différentes approches techniques, nous pouvons opter pour celle du miroir.

En informatique, un miroir est une copie exacte d’un ensemble de données. Sur le Web, un site miroir est une copie exacte d’un autre site web

Wikipedia, Site miroir

Une copie en miroir est un duplicata identique à l’original fait à un instant T. Et nous pourrons ajouter à notre copie miroir des modifications faites sur l’original ultérieurement ou faire une copie miroir nouvelle pour comparer deux versions. Les copies en miroir peuvent aider à restaurer des sites web supprimés ou défacés ; les copies en miroir faites sur un appareil peuvent servir à accéder à des informations sans connexion internet depuis cet appareil.

Un exemple de cas où wget n’est pas nécessaire pour faire un miroir : le site web que vous souhaitez sauvegarder à un code source ouvert et libre d’accès. Il est alors plus judicieux de cloner le dépôt de ce code source et d’effectuer des mise à jour du clone par la suite.

Il existe pléthore de documentations, billet de blogs, tutoriels, vidéo sur la mise en miroir d’un site web. Disons alors que ce billet de blog s’inscrit dans une « pédagogie par la répétition ».

wget peut fonctionner avec Windows, macOS, Linux, Android, et d’autres systèmes d’opération.

Si cette démarche vous est trop difficile techniquement, envoyez moi un message discret par le moyen qui vous convient et je serais joie de discuter, de vous aider, et peut-être même de faire un miroir de vos ressources web.

Pourquoi faire cela ?

Liste non-exhaustive

En ce qui me concerne, la technique n’est qu’accessoire. Ce qui compte profondément et contribue à structurer des capacités collectives ce sont les échanges, les discussions et les rencontres qui peuvent être occasionnées par ce genre d’opérations.

Pour un exemple de cas d’usage de mise en miroir, l’article « Soutenir la littérature trans sans les GAFAM », publié par Alex traduisant l’original de Bethany Karsten, pourra donner l’envie de sauvegarder en local https://thetransfemininereview.com/. le miroir de thetransfemininereview.com fait en date du 23 mars 2025 : 556,1 Mio

Très peu de personnes et d’organisations disposent de leur propre infrastructure de stockage et d’hébergement web. Ainsi de nombreuses ressources sont rendues inaccessibles (connexions internet interrompues ou censurées, fichiers effacés, saisies des serveurs, piratage, etc). Nos efforts disparaissent, nos atouts sont détruits, nos ressources sont volées.

De plus, l’absence de stockage viable à long terme pose des problèmes aux organisations qui peuvent être tenues par la loi de conserver des données, ainsi qu’aux particulièr·es qui souhaitent réduire les risques sur la durée de conservation de leurs données.

Alors que les individus et les organisations génèrent des quantités toujours plus importantes d’informations, sous la forme de pages web, qui doivent être stockées à long terme, les coûts de stockage continuent d’augmenter et le stockage numérique fiable et à long terme se fait rare.

Il y a aussi l’option complémentaire avec du stockage froid : stockage de données archivées qui nécessite une conservation à long terme, mais qui n’exige pas un accès continu et/ou ne nécessite pas une accessibilité aisée au dispositif.Voir aussi Backup sur disque externe par Sebsauvage Cela peut être un disque dur externe uniquement connecté à notre machine après l’action au moyen de wget (que je vais décrire ci-après) sur lequel on copie notre miroir et qui serait ensuite entreposé dans un endroit sécurisé, hors connexion réseaux internet et électrique.

Le chiffrement des données stockées est primordial !

Pourquoi le stockage froid est-il important ?

Wget et le miroir

Important ! : Demandez toujours aux personnes qui sont en charges du site web qui vous voulez mettre en miroir avant d’agir ! Le serveur sur lequel vous faites des requêtes pour être monté avant de mesures de sabotages contre des “IA” et/ou robot de scrapping et vous remplir littéralement de centaines de giga de détritus. Voir par exemple, cette documentation en anglais sur l’usage du logiciel iocaine et celle-ci. Aussi, un site web peut contenir des pages avec de ressources volontairement malicieuse et/ou vérolées.

wget permet de faire des requêtes depuis une machine sur une machine distante, par exemple depuis votre ordinateur sur un serveur hébergeant le site web https://thetransfemininereview.com/. Une des conséquences par ces requêtes est que vous transmettez des informations comme votre adresse IP, la date et heures des requêtes, et bien d’autres données.

Nous verrons plus loin quelques mesures pour atténuer ces conséquences.

GNU Wget is a free software package for retrieving files using HTTP, HTTPS, FTP and FTPS, the most widely used Internet protocols

Lecteur·ice, je vous laisse installer wget à votre convenance, puis choisir depuis quel dossier vous désirez travailler pour télécharger les miroirs des sites web qui vous plaisent.

Avec wget nous allons générer un dossier qui sera nommé d’après le nom du site web copié. Vous pourrez ouvrir ce dossier (clic droit) dans votre navigateur web et le consulter et y naviguer quand vous voulez, y compris sans être connecté⋅e à internet.

Selon la documentation de wget, avec ce qui est appelé l’ « utilisation très avancée », si vous souhaitez utiliser wget dans une interface utilisateur de terminal (TUI) pour faire un miroir d’une page web ou d’un site web entier sur votre ordinateur :

$ wget -m -k -K -E https://www.gnu.org/

Avec:

Nous pouvons donc utiliser la même chose avec :

$ wget -mkKE https://www.gnu.org/

Il se peut que nous voulions plus de fonctionnalités car nous voulons un miroir précis et utile, en utilisant :

Cela ressemble maintenant à :

$ wget --mirror -p -c -k -K -E <url>

Ou bien

$ wget -mpckKE <url>

Plus avancé avec des gants pour les requêtes

Je l’ai dit, nous avons à nous soucier des traces que nous laissons lorsque nous faisons des requêtes qui envoient des données pour recevoir d’autres données.

Ensuite, afin de demander de manière moins brutale et d’éviter l’interdiction du serveur, nous pourrions ajouter des arguments.


$ wget -mpckKE --user-agent="" -e robots=off <url>

Avec :

Attention ! : je l’ai dis, demandez toujours avant de faire un miroir d’un site web qui n’est pas le votre. Et le fait de ne pas respecter les règles sur serveur robot.txt peut sérieusement ennuyer læ personne qui fait l’administration système ou aussi aboutir à un résultat d’abandon de votre requête wget.

Approche avec plus de précaution concernant nos informations transmises

Nous pouvons également continuer à réduire nos empreintes et à atténuer les problèmes de confidentialité en utilisant le réseau Tor. Ce qui va fournir une adresse IP au serveur sur lequel nous envoyons nos requêtes à la place de notre adresse IP réelle de connexion.

Avec torsocks - socks -

$ torsocks wget -mpckKE --user-agent="" -e robots=off <url>

On peut aussi ajouter un autre niveau de mitigation avec un temps d’attente entre chaque requête, afin de ne pas être trop brutal sur le serveur cible et d’éviter d’être rejeté ou banni

$ torsocks wget -mpckKE --user-agent="" -e robots=off --wait 1 <url>

Cependant, cette option peut augmenter le temps de mise en miroir de quelques secondes (pour un site statique) à 3 ou 4 minutes, et jusqu’à plusieurs heures pour un site léger et/ou un site plus complexe.

Exécuter avec plusieurs sites web

Créons une list.txt contenant toutes les url des sites web que nous voulons mettre en miroir. Ensuite, il suffit de lancer :

$ torsocks wget -mpckKE --user-agent="" -e robots=off --wait 1 list.txt

Certaines personnes voudront peut-être faire un alias nommé miroir pour avoir une commande type

$ miroir <url>

D’autres voudront peut-être Torifié un script (bash, zsh, autre), ce qui donnera :

$ torifiy ./miroir.sh

Nous pouvons aussi planifier et automatiser de telles requêtes par avance, par exemple avec cron, pour répéter nos actions avec régularité calendaire.

Remerciements

Merci à toutes les personnes qui soutiennent les efforts par leurs dons


Xavier Coadic

Xavier Coadic

Human Collider

rss framagit github mail linkedin stackoverflow