找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

3903

积分

0

好友

511

主题
发表于 1 小时前 | 查看: 4| 回复: 0

做技术的人,多少都有点“收藏癖”。看到一篇好文章,第一反应就是收藏、加书签、丢进 Notion。可等到哪天真想回头细看时,才发现链接已经 404,站点早就改版,或者打开后只剩一个永无止境的加载动画。

不是你没存,而是现代网页本身早已离不开 JS、后端接口和网络请求。一旦断网、改版或关站,那些“存下来的页面”其实什么都没留下。

最近有个用 Go 编写的爆火项目 kage,走了条完全不同的路。

项目简介

kage 是一个命令行工具,专做一件事:把任意网站克隆成可离线浏览的本地镜像,同时彻底剔除所有 JavaScript

终端窗口显示kage克隆paulgraham.com并打包为zim文件的命令行操作过程

普通网页保存工具只抓取 HTML 源码,但如今大部分网页不过是个空壳,内容全靠 JS 动态生成。kage 则不同,它会启动真正的无头 Chrome 浏览器,等页面完整渲染完毕后,再把浏览器“看到”的最终 DOM 快照下来。随后,脚本、事件处理器、追踪代码会被统统删除,只留下干净的样式、图片、字体和文字内容。最终得到的,就是一份干净、完全可离线、零网络请求的本地副本。

来直观感受下它与同类工具 wget -rHTTrackSingleFile 的差异:

对比表格展示kage、wget -r、HTTrack和SingleFile在渲染方式、JS处理、批量爬取等维度的功能差异

这个项目在 GitHub 上已经收获了 2.4k Star,热度相当不错。

GitHub仓库页面显示kage项目拥有2.4k Star及项目描述信息

功能特色

  • 真实渲染后快照,不是存源码:即使是 SPA 内容型页面(博客、文档、Wiki),经由 JS 拼装出的正文也能被正确捕获,从此告别白屏空壳。
  • JS/追踪全清除,零网络调用:保存下来的 HTML 里找不到任何 <script>onclick。纯静态打开不会有任何网络请求,对隐私非常友好。
  • 资源本地化 + 链接重写:样式表、图片、字体全部下载到本地,url() 和站内超链接则被改写为相对路径。把文件夹拷到任何地方,双击 index.html 就能流畅翻阅。
  • 打包为开放 ZIM 归档或自含二进制:一条命令就能打成 Kiwix 生态兼容的 .zim 文件(可用 Kiwix 手机或桌面端阅读),亦或打包成一个内嵌 Web 服务的独立可执行文件(约 13MB + 站点内容体积),接收方无需安装任何环境,双击即看。
  • 爬取范围精确可控:面对大型网站,kage 不会盲目进行全站扫描。你可以通过以下参数精准控制:
    • --scope-prefix /docs:只爬取指定路径下的内容。
    • --max-pages 50:最多抓取 50 页就停。
    • --max-depth 3:最多跟踪 3 层链接深度。
    • --exclude:排除指定路径前缀。
    • --subdomains:需要时,也可以将子域名纳入抓取范围。

快速安装与使用

安装

若本机已有 Go 环境(推荐 Go 1.21+):

go install github.com/tamnd/kage/cmd/kage@latest

没有 Go 环境也没关系,直接从项目的 Release 页面下载对应平台的预编译二进制文件,解压即用。或者使用 Docker(镜像自带 Chromium,本机无需安装 Chrome):

docker run --rm -v "$PWD/out:/out" ghcr.io/tamnd/kage clone paulgraham.com

kage 需要本机有 Chrome 或 Chromium,它会自动搜寻。若想手动指定路径,可以使用 --chrome 参数或设置 KAGE_CHROME 环境变量。

基本使用

克隆一个网站:

kage clone paulgraham.com

等它跑完,镜像默认会落在 $HOME/data/kage/paulgraham.com/ 目录下。

Windows文件资源管理器显示paulgraham.com网站被克隆后的本地文件目录结构

本地预览:

kage serve $HOME/data/kage/paulgraham.com
# 浏览器打开 http://127.0.0.1:8800

paulgraham.com网站在本地浏览器中离线打开后的页面效果截图

打包成单个 ZIM 文件:

kage pack paulgraham.com          # 生成 paulgraham.com.zim
kage open paulgraham.com.zim      # 用 kage 打开

打包成自包含可执行文件:

kage pack paulgraham.com --format binary -o paulgraham
./paulgraham                     # 直接运行,无需安装任何东西

Windows命令行终端显示将网站打包为23.3MB的可执行文件的完整过程

限制爬取范围,快速试用:

kage clone paulgraham.com --max-pages 20 --max-depth 2

写在最后

说真的,谁还没被“网页已过期”坑过?kage 这个工具,就是把那些过度设计的现代网页,打回纯粹的原形保存起来,不用联网,不怕跑路,双击就能看。那种感觉,就像是给自己的整个收藏夹上了一份额外的“离线保险”,相当踏实。

如果你有长期保存某些网站内容的需求——技术文档、博客文章、知识库——不妨试试它。更多细节功能,可移步项目地址查看:


https://github.com/tamnd/kage



上一篇:5.2k Stars!像素级原生搜索RAG来了,知识库检索从此看懂图表
下一篇:软考高级·系统规划与管理师:信息安全核心考点解析与应试指南
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-6-26 23:54 , Processed in 0.657084 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表