前几天,刚收藏了一篇技术干货文章,想着周末有空再细读,结果等点开的时候,屏幕上只剩下冷冰冰的 “404 Not Found”。
心情颇为复杂,说到底,别人的服务器我们也控制不了,只有存到自己硬盘里的东西,才算真正落袋为安。
于是,我在 GitHub 上找到了ArchiveBox这个开源项目,已狂揽 26000+ GitHub Star。
简单说,它就像是我们私有专属的 “互联网档案馆”,其工作原理简单粗暴。
只要我们把链接丢给它,它就会调用 Chrome、wget、curl 等各种工具,把这个网页 “连皮带骨” 地保存下来。
包括网页的原始 HTML、截图(PNG)、PDF 文档,甚至连页面里的媒体文件和 WARC 归档格式都不放过。
这一下子,哪怕原来的网站倒闭了,域名过期了,我们依然能在本地还原出它当年的样子。
还有我们平时用的浏览器书签、历史记录,甚至是 Pocket、Pinboard 这种稍后阅读服务的导出文件,都可以直接喂给它。
如果我们有订阅 RSS 的习惯,它甚至能定时自动抓取 RSS 源里的新文章,全自动归档。
更重要的是,它存下来的东西,不会搞成那种私有的数据库格式锁死我们。
打开它的数据文件夹,里面都是普通的文件夹和文件,HTML 就是 HTML,PDF 就是 PDF。
就算哪天不跑 ArchiveBox 了,这些文件咱们依然能直接双击打开看,这点真的非常务实。
不过,安装这玩意儿有个坑。
因为它调用了太多的外部工具(Chrome, wget, curl, yt-dlp 等等),如果直接在系统里手动安装,那个依赖关系能让人头皮发麻。
所以,作者在文档里强烈建议我们使用 Docker 来部署,这是目前最省心的方案。
执行如下三条命令就能初始化:
# 1.创建并进入数据目录mkdir -p ~/archivebox/data && cd ~/archivebox/data # 2.初始化数据库和账号docker run -v $PWD:/data -it archivebox/archivebox init --setup # 3.启动网页服务器docker run -v $PWD:/data -p 8000:8000 archivebox/archivebox启动成功之后,访问本地的 8000 端口,就能看到那个简单直接的管理界面了。
不过这里得提个醒。
既然它存得这么全,那对硬盘空间的消耗也是实打实的。
官方文档提到,每存 1000 个网页,根据我们存的内容多少(比如包不包含视频),大概会占用 1GB 到 50GB 不等的空间。
如果是运行在自己的 NAS 或者服务器上,我们最好提前规划好存储空间。
另外,虽然它能存下带 JS 的动态网页,但在浏览这些本地存档的时候,如果网页本身包含恶意的 JS 代码,依然是有潜在风险的。
如果我们对安全特别敏感,记得在配置里关掉 JS 执行或者把相关选项调严格一些。
总的来说,对于我们这种有 “数字囤积症” 或者不想资料丢失的人来说,ArchiveBox 是一个相当稳健的本地化归档方案。
GitHub 项目地址:https://github.com/ArchiveBox/ArchiveBox
今天的分享到此结束,感谢大家抽空阅读,我们下期再见,Respect!