Hacker News 中文摘要

RSS订阅

展示 HN:Kage - 将任何网站影印成单一二进制文件供离线浏览 -- Show HN: Kage – Shadow any website to a single binary for offline viewing

文章摘要

Kage是一个可将网站克隆为离线浏览版本的工具,它会自动去除网页中的JavaScript代码,生成纯静态内容供本地查看。该项目提供持续集成、发布版本、Go语言支持等功能,并采用开源许可证。

文章总结

项目名称:kage(影)——离线浏览网站克隆工具

核心功能: - 通过无头Chrome浏览器完整克隆目标网站 - 自动移除所有JavaScript代码 - 保留静态内容(HTML/CSS/图片/字体) - 生成可离线浏览的本地副本

技术特点: 1. 工作原理: - 使用真实浏览器渲染页面 - 等待页面完全加载 - 截取最终DOM状态 - 清除所有脚本 - 本地化所有资源引用

  1. 主要命令:

    • clone:克隆网站到本地目录
    • serve:启动本地服务器预览
    • pack:打包为单文件(ZIM格式或可执行文件)
    • open:打开打包文件
  2. 高级功能:

    • 支持深度/范围控制爬取
    • 可生成原生窗口应用(需编译时启用webview标签)
    • 兼容Kiwix生态系统
    • 支持断点续传

安装方式: 1. Go安装: bash go install github.com/tamnd/kage/cmd/kage@latest 2. 预编译二进制: - 提供.deb/.rpm/.apk等格式 3. Docker容器: bash docker run --rm -v "$PWD/out:/out" ghcr.io/tamnd/kage clone 目标网站

典型使用场景: ```bash

克隆Paul Graham的文集

kage clone paulgraham.com

本地浏览

kage serve ~/data/kage/paulgraham.com

打包为单文件

kage pack paulgraham.com kage open paulgraham.com.zim ```

项目优势: - 完全去脚本化,杜绝跟踪和网络请求 - 生成标准ZIM格式,长期兼容 - 支持生成跨平台独立可执行文件 - 尊重robots.txt,友好爬取

技术架构: - 采用模块化设计(clone/browser/sanitize等模块) - 支持原生窗口渲染(通过各平台WebView实现) - 纯Go实现(除webview功能需cgo)

许可证:MIT

完整文档:https://kage.tamnd.com/

(注:已移除重复的安装说明、次要参数细节等非核心内容,保留主要功能描述和技术架构要点)

评论总结

以下是评论内容的总结:

  1. 替代工具推荐
  • 推荐SingleFile工具,认为其更强大,能将所有内容打包成单个HTML文件 "I find SingleFile to be a much more robust version of this" "It strips out all the JavaScript too, but also packs everything into a single HTML file"

  • 提到httrack和wget等现有工具 "I've been using httrack to download wikis" "So this is like using wget --mirror except that it works on pages that require javascript"

  1. 使用场景
  • 离线阅读(飞行/网络差时) "for viewing on a flight or long distance train ride with spotty internet" "company wikis that you want to give folks easy offline access to"
  1. 技术建议
  • 安全建议:不应禁用Chrome沙箱 "you launch Chrome with --no-sandbox...Security wise it's probably not a good idea"

  • 希望生成纯静态文件而非需要服务端 "If the result is static why does it need a server?"

  1. 功能改进建议
  • 与mitmproxy结合提高存档保真度 "I would like to see this combined with mitmproxy for archive grade fidelity"

  • 增加下载速度控制和内容筛选 "are there settings to set how fast it clones or avoid images/videos?"

  1. 负面评价
  • 对README的AI生成风格表示不满 "The readme is AI slop, and incredibly grating to read"

  • 杀毒软件误报问题 "the Windows 11 default Windows Security doesn't like it"

  1. 其他替代方案
  • 使用pandoc转换为EPUB格式 "using pandoc to download and convert a webpage to EPUB"

  • 提到mdview.io的类似功能 "you can export a document as a html file for offline usage"

  1. 技术细节讨论
  • 对演示GIF生成方式感兴趣 "I was intrigued to see how the demo GIF in the README was generated"

  • 建议使用Cosmopolitan Libc提高兼容性 "it would be cool to see something like this which uses Cosmopolitan Libc"