ArchiveBox is Super Cool

Michael Lynch

ArchiveBox 超酷

原文由 Michael Lynch 发布,订阅该博客

你用过 archive.org 的 网络时光机吗?它是一款从 1996 年起就一直在归档网页的免费工具。所以,如果你想看看 1999 年的 Google 是什么样子,这里就有存档

Internet Archive 上抓取的 1999 年 4 月 22 日的 Google 页面

ArchiveBox 就像是你自己的私人网络时光机。它免费、开源,你可以用它归档大多数网站。

ArchiveBox 仪表盘截图

ArchiveBox 是一款免费的开源工具,可让你在本地归档网站。

为什么要归档?

大约一年前,我还完全没有在本地归档网站的想法。网上已经有不少可以归档网站并保存公开副本的工具,我又何必费劲去自建一套归档服务呢?

不过去年,很多社交媒体公司开始收权。reddit 最为典型,它收紧了第三方 API,导致大量归档 reddit 内容的网站无法使用。这些 reddit 归档站干脆直接关停,存档也随之消失。

我这才意识到,自己对这些免费、由志愿者维护的归档服务寄予了多大的信任,尽管早有不少迹象表明它们在运营上难以为继。

既然无法指望某个云端归档服务永远在线,那我关心的内容,还是得自己留一份副本。

安装 ArchiveBox

安装 ArchiveBox 有几种方式,我选择了官方推荐的 Docker Compose 方式:

mkdir archivebox && \
  cd archivebox && \
  curl -O 'https://raw.githubusercontent.com/ArchiveBox/ArchiveBox/dev/docker-compose.yml' && \
  docker compose run archivebox init --setup

接下来,只需启动 Docker 容器,就能把 ArchiveBox 跑起来:

docker compose up

它会在 8000 端口启动一个本地 Web 服务:

归档 reddit 帖子

我最喜欢的 reddit 故事之一,是 /r/legaladvice 板块上那个邻居把自己搞成“飞地”的连载。

发帖人的邻居拥有一处房产,其中包括一条连接房屋与公共道路的车道,但他把包含这条车道的地块卖掉了。结果,这位邻居在不侵入他人土地的情况下,根本无法进出自己的房子。他想出的解决办法,是要求使用发帖人的私人车道。

一张粗糙的手绘图,却点燃了整个 /r/legaladvice 板块的热情

这个故事分三篇帖子讲述:

于是我把这三个链接粘贴到了 ArchiveBox 里:

几秒钟内,ArchiveBox 就完成了归档,让我可以在本地离线查看这些帖子:

ArchiveBox 已下载这三个 reddit 帖子,可离线查看

ArchiveBox 会以几种格式下载页面:PDF、PNG、WARC,不过其中有一种我之前从未听说过的格式——单文件 HTML:

单文件 HTML 是个很巧妙的点子!它把所有的 HTML、JavaScript 和 CSS 都塞进一个文件里,甚至会把图片用 base64 编码,直接嵌在同一个 HTML 文件中。

<style>:root{--sf-img-2: url("data:image/gif;base64,R0lGODlhFQAQAIABAICAgP///yH5BAEAAAEALAAAAAAVABAAAAIajI...

用这种方式阅读 reddit 帖子真的很爽,因为它非常。我已经习惯了 reddit 以及如今整个网络在加载一个以文字为主的简单页面时有多慢,能在本地浏览一个预先生成好的页面,体验真的很不一样,很有意思。

归档 YouTube 视频

虽然有更专业的工具可以归档 YouTube 视频,但 ArchiveBox 集成了 yt-dlp,所以你只要丢给它一个 YouTube 链接,它就会把页面和视频一起归档。

比如我想确保自己永远留有一份 Lonely Island / SNL 的经典作品《Like a Boss》的备份,就可以像归档其他网页一样,把它交给 ArchiveBox。

ArchiveBox 已下载该 YouTube 视频

ArchiveBox 还无法完美复刻真实的 YouTube 体验,但它会为页面创建一个快照,并将视频单独保存:

ArchiveBox 无法完美归档 YouTube 页面,因此它用一张静态图片代替视频播放器,并将视频另存为单独的文件

为什么感觉似曾相识?

当我查看 ArchiveBox 的贡献者名单时,在最上面看到了一个熟悉的名字——Nick Sweeting。我认识他!2019 年在 PyGotham 大会上见过他。

我快进看了他那次演讲的视频,才发现 Nick 早在五年前就在同一场大会上演示过 ArchiveBox。当时我还写过关于他演讲的笔记,但不知为何,ArchiveBox 并没有给我留下深刻印象。

自那次演讲以来的几年里,ArchiveBox 显然已经成熟了许多,而我也更深刻地意识到了归档的重要性,所以很高兴能重新发现它。

参考资料

本文章由 muse-spark-1.2-contributor 进行翻译

评论