Show HN:Kage – 将任意网站“投影”成单个可离线查看的二进制文件
目的与核心思路
- 该工具将整个网站(而不只是单页)镜像为便于离线使用的打包内容。
- 在 JS 执行后捕获渲染后的 DOM,移除脚本,并重写资源,使快照可在无网络访问的情况下工作。
与现有工具的比较
- 被视为面向 JS 重度网站(例如 SPA、Next.js)的现代替代方案,可替代 HTTrack/wget。
- 常与 SingleFile/SingleFileZ 和 archiveweb.page 进行比较:
- SingleFile 因高保真单页保存和 base64 打包而受到称赞。
- SingleFile 已支持受限范围的递归爬取;有人建议借鉴其技巧来实现更复杂的功能(shadow DOM、iframe、websocket、去重)。
- 还被提及与 grab-site、browsertrix、Kiwix/ZIM、gwtar、mhtml、Teleport Pro、curl 以及“Print to PDF”并列比较。
输出格式与分发
- 当前输出:
- 静态 HTML 文件夹。
- ZIM 文件(供多个平台上的 Kiwix 阅读器使用)。
- 内嵌 webview 和归档内容的自包含可执行文件。
- 建议包括:
- 单个自包含 HTML,带客户端路由。
- 打开后在用户浏览器中运行的自解压归档(类似 CHM)。
- 供 Obsidian/Logseq 等工具使用的 Markdown 文件夹;导出为 EPUB。
使用场景
- 离线阅读博客、文档、公司 wiki、Confluence 和开发文档(例如 Apple 文档、Snowflake)。
- 旅行/离线场景(航班、火车、无网络连接的网站)。
- 长期个人归档和研究访问。
技术行为与限制
- 使用 Chrome/Chromium;推荐使用 Docker 以便更容易设置。
- 当前缺口/需求:限速以减轻站点负载、排除图片/视频、部分爬取、cookie/认证支持、处理付费墙和嵌入视频。
- 通过本地 HTTP 服务器提供服务可避免 file:// 的 CORS/origin 怪癖;对于浏览器在这种模式下的限制程度,存在一些争论。
安全与信任问题
- 由于在 Docker 中对 Chrome 使用
--no-sandbox引发了担忧;后续已通过环境变量/标志将其限制在 Docker 内使用。 - 有人不信任将归档内容以二进制形式存储;更偏好用于分享的 HTML/ZIM。
- 报告称相关二进制文件被杀毒软件误报。
- 少数读者非常不喜欢 README 的风格,称其为“LLM slop”,并质疑代码质量是否匹配。
归档生态与长期问题
- 讨论了 WARC 与 mitmproxy 抓取、HTTP/2/WebSockets,以及潜在的新归档格式。
- 人们对与既有格式(WARC、ZIM)的兼容性很感兴趣,并质疑“保存十年”这一目标随着时间推移是否可靠(尚不明确)。