Un forum Discourse que j’utilise sera mis hors ligne dans quelques semaines, j’ai donc décidé d’archiver le site. J’ai fait beaucoup de recherches, d’essais et d’erreurs, et j’ai trouvé une solution simple avec HTTrack. Voici tout ce que j’ai appris.
Archiver un site Discourse avec HTTrack
Pour les utilisateurs de Windows, la meilleure solution semble être HTTrack. Cela a très bien fonctionné et a archivé le site en fichiers HTML. Toutes les catégories, discussions et publications ont été archivées, y compris toutes les pages avec des liens de navigation relatifs.
Un tutoriel de base sur HTTrack est ici. J’ai laissé les paramètres par défaut avec les paramètres personnalisés suivants.
- Adresses Web :
https://forums.gearboxsoftware.com/c/homeworld/https://forums.gearboxsoftware.com/c/homeworld-dok/
- Règles d’analyse :
-gearboxsoftware.com/* -forums.gearboxsoftware.com/* +forums.gearboxsoftware.com/c/homeworld/* +forums.gearboxsoftware.com/c/homeworld-dok/* +forums.gearboxsoftware.com/t/* +forums.gearboxsoftware.com/user_avatar/* +sea2.discourse-cdn.com/*
- Identifiant du navigateur (alias User Agent) :
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
Remarque : Il y a un problème CSS qui empêche les liens de catégorie de fonctionner, mais cela peut être facilement corrigé comme décrit ci-dessous.
Problème CSS
Lors de la visualisation des pages de catégorie en tant que googlebot, les liens des discussions ne fonctionnent pas. Un exemple est [ici](https://web.archive.org/web/20220731051419/https://forums.gearboxsoftware.com/c/homeworld/57).
Cela rend la navigation impossible sur les pages de catégorie dans HTTrack, archive.org et le cache Google. Il semble s’agir d’un problème Discourse dans un fichier CSS. Pour corriger les liens, bloquez/supprimez simplement le fichier CSS suivant :
stylesheets/desktop_theme_10_1965d1d398092f2d9f956b36e08b127e00f53b70.css?__ws=forums.gearboxsoftware.com
@codinghorror - Pouvez-vous régler cela ?
Défis
J’ai rencontré les défis suivants et je les ai finalement surmontés après de nombreux essais et erreurs.
- Les pages Discourse sont générées dynamiquement avec JavaScript. Cela donne de mauvais résultats avec la plupart des outils d’archivage/robots d’exploration.
- La plupart des discussions ne se chargent qu’avec les ~20 premiers ? messages, le reste des messages n’apparaît qu’en faisant défiler vers le bas. Appuyer sur Ctrl+P charge une page
/printavec tous les messages visibles. Les utilisateurs sont limités à l’impression de 5 pages par heure en mode impression, mais cette limite peut être augmentée par un administrateur du site Discourse. - Adrelanos a noté que les discussions multi-pages n’étaient pas correctement archivées par HTTrack, cependant je soupçonne que ce problème était dû à ses paramètres HTTrack, car je n’ai pas eu ce problème.
- L’enregistrement d’une page au format PDF n’inclura aucune section de détails réduite.
- Les pages peuvent être chargées en HTML de base en ajoutant
?_escaped_fragment_à la fin d’une URL, mais cette astuce ne fonctionne que pour les discussions, pas pour les catégories.
Les défis ci-dessus ne sont pas une préoccupation une fois que vous apprenez que toutes les pages/contenus Discourse peuvent être correctement rendus en HTML pour les robots d’exploration. Pour ce faire, vous devez changer l’agent utilisateur de votre robot d’exploration / navigateur en googlebot pour obtenir la version HTML des pages.
Archive.org
Si vous utilisez la fonction « Enregistrer la page maintenant » sur web.archive.org, elle archivera la version JavaScript de Discourse avec de mauvais résultats. Archive.org utilise l’agent utilisateur de la personne qui demande l’archive. Vous devez donc changer votre agent utilisateur en googlebot. Vous pouvez obtenir une extension Chrome appelée « User-Agent Switcher for Chrome ». Dans les options, ajoutez :
- Nom : Googlebot
- Chaîne :
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) - Groupe : Chrome
- Indicateur : 1
Outils d’archivage alternatifs
De nombreux outils sont listés ici : Archive an old forum "in place" to start a new Discourse forum
J’ai également brièvement testé des outils GUI comme Cyotek WebCopy, A1 Website Download et WAIL.
Les outils en ligne de commande incluent l’outil de mcmcclur et wget. Un tutoriel sur wget est [ici](https://letswp.justifiedgrid.com/download-discourse-forum-wget/).
Cependant, pour les utilisateurs de Windows, la meilleure solution semble être HTTrack.
Remarque : Comme je suis un nouvel utilisateur, je suis limité à deux liens dans un message. J’ai donc transformé certains liens en texte préformaté.