文章摘要
Kage是一个可将网站克隆为离线浏览版本的工具,它会自动去除网页中的JavaScript代码,生成纯静态内容供本地查看。该项目提供持续集成、发布版本、Go语言支持等功能,并采用开源许可证。
文章总结
项目名称:kage(影)——离线浏览网站克隆工具
核心功能: - 通过无头Chrome浏览器完整克隆目标网站 - 自动移除所有JavaScript代码 - 保留静态内容(HTML/CSS/图片/字体) - 生成可离线浏览的本地副本
技术特点: 1. 工作原理: - 使用真实浏览器渲染页面 - 等待页面完全加载 - 截取最终DOM状态 - 清除所有脚本 - 本地化所有资源引用
主要命令:
- clone:克隆网站到本地目录
- serve:启动本地服务器预览
- pack:打包为单文件(ZIM格式或可执行文件)
- open:打开打包文件
高级功能:
- 支持深度/范围控制爬取
- 可生成原生窗口应用(需编译时启用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/
(注:已移除重复的安装说明、次要参数细节等非核心内容,保留主要功能描述和技术架构要点)
评论总结
以下是评论内容的总结:
- 替代工具推荐
推荐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"
- 使用场景
- 离线阅读(飞行/网络差时) "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"
- 技术建议
安全建议:不应禁用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?"
- 功能改进建议
与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?"
- 负面评价
对README的AI生成风格表示不满 "The readme is AI slop, and incredibly grating to read"
杀毒软件误报问题 "the Windows 11 default Windows Security doesn't like it"
- 其他替代方案
使用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"
- 技术细节讨论
对演示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"