一个基本的Discourse存档工具

由于我使用的 Discourse 论坛将在几周后下线,因此我开始归档该网站。我进行了大量研究、试错,并找到了一个使用 HTTrack 的简单解决方案。以下是我学到的一切。

使用 HTTrack 归档 Discourse 站点
对于 Windows 用户来说,最好的解决方案似乎是 HTTrack。这个工具效果很好,它将网站归档为 HTML 文件。所有类别、主题和帖子都已归档,包括所有带有相对导航链接的页面。

HTTrack 的基本教程在这里:https://fossbytes.com/download-website-offline-access-using-httrack-use-website-without-internet/。我保留了默认设置,并进行了以下自定义设置:

  • 网站地址:
    • https://forums.gearboxsoftware.com/c/homeworld/
    • https://forums.gearboxsoftware.com/c/homeworld-dok/
  • 扫描规则:
    • -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/*
  • 浏览器 ID(又名用户代理):
    • Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

注意:存在一个 CSS 问题,导致类别链接无法正常工作,但这可以按下面所述轻松修复。

CSS 问题
当以 googlebot 的身份查看类别页面时,主题链接不起作用。例如:https://web.archive.org/web/20220731051419/https://forums.gearboxsoftware.com/c/homeworld/57

这使得在 HTTrack、archive.org 和 google catch 中无法导航类别页面。这似乎是 Discourse 在 CSS 文件中的一个问题。要修复链接,只需阻止/删除以下 CSS 文件:

  • stylesheets/desktop_theme_10_1965d1d398092f2d9f956b36e08b127e00f53b70.css?__ws=forums.gearboxsoftware.com

@codinghorror - 你们能解决这个问题吗?

挑战
我遇到了以下挑战,并在大量试错后最终克服了它们。

  • Discourse 页面是使用 JavaScript 动态生成的。这使得大多数存档/爬虫工具的效果不佳。
  • 大多数主题只加载前约 20 个帖子,其余帖子在滚动时才会出现。按 Ctrl+P 会加载一个显示所有帖子的“打印”页面。用户每小时只能打印 5 页,但 Discourse 网站管理员可以增加此限制。
  • Adrelanos 指出,HTTrack 未能正确归档多页主题,但我怀疑这个问题是由于他的 HTTrack 设置造成的,因为我没有遇到这个问题。
  • 将页面保存为 PDF 不会包含任何折叠的详细信息部分。
  • 通过在 URL 末尾添加 ?_escaped_fragment_ 可以以基本 HTML 加载页面,但这仅适用于主题,不适用于类别。

一旦您了解到所有 Discourse 页面/内容都可以正确渲染为 HTML 以供爬虫使用,上述挑战就不再是问题。要做到这一点,您必须将爬虫/浏览器的用户代理更改为 googlebot,以获取页面的 HTML 版本。

Archive.org
如果您使用 web.archive.org 上的“立即保存页面”功能,它将归档 Discourse 的 JavaScript 版本,效果不佳。Archive.org 使用请求存档的人的用户代理。因此,您必须将用户代理更改为 googlebot。您可以获取一个名为“User-Agent Switcher for Chrome”的 Chrome 扩展程序。在选项中添加:

  • 名称:Googlebot
  • 字符串:Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
  • 组:Chrome
  • 指示符标志:1

替代存档工具
此处列出了许多工具:Archive an old forum "in place" to start a new Discourse forum
我还简要测试了 Cyotek WebCopy、A1 Website Download 和 WAIL 等 GUI 工具。
命令行工具包括 mcmcclur 的工具和 wget。wget 的教程在这里:https://letswp.justifiedgrid.com/download-discourse-forum-wget/
但是,对于 Windows 用户来说,最好的解决方案似乎是 HTTrack。

注意:由于我是新用户,我最多只能在帖子中添加两个链接。因此,我将一些链接变成了预格式化文本。

9 个赞