首页/新闻资讯/正文详情

kage:一行命令把任意网站存进硬盘,还能离线打开——无头浏览器本地快照工具完整上手指南

发布时间:2026/9/26 21:12:42 来源:云帆数科 栏目:资讯中心
kage:一行命令把任意网站存进硬盘,还能离线打开——无头浏览器本地快照工具完整上手指南
kage一行命令把任意网站存进硬盘还能离线打开——无头浏览器本地快照工具完整上手指南【免费下载链接】kageShadow any website for offline viewing, with the JavaScript stripped out项目地址: https://gitcode.com/gh_mirrors/kage6/kagekage是一个开源的本地网站快照工具用一行命令驱动无头浏览器渲染整个网站剥掉全部 JavaScript把页面、CSS、图片、字体全部下载到本地硬盘得到一个可以离线打开、零代码执行的网站镜像。无论是坐飞机、断网、还是给十年后的自己存一份备份这份完整指南带你快速上手。为什么另存为总是失败你肯定遇到过点Save As存下一页六个月后打开是空白或永远转圈。原因很简单——现代网站不是一个文档而是一段程序。服务器发出的 HTML 往往只是个空壳你看到的页面是浏览器里的 JavaScript 现场拼出来的。另存为存到的是空壳而不是页面。kage 走了另一条路渲染用真实的无头 Chrome 打开每个页面等网络安静下来抓取 JavaScript 执行完毕后的最终 DOM——和你打开检查看到的一模一样剥离删掉所有script标签、onclick等事件处理器、javascript:链接让页面彻底失去行动能力本地化下载全部样式表、图片、字体把引用改写成本地路径结果就是落盘的页面看起来和线上完全一样但不运行任何代码、不发任何网络请求、不追踪任何东西。核心流程实现见 introduction.md。一键安装步骤kage 是单个二进制文件安装方式任选其一# Go 用户 go install github.com/tamnd/kage/cmd/kagelatest # macOS brew install --cask tamnd/tap/kage # Windows scoop bucket add tamnd https://github.com/tamnd/scoop-bucket scoop install kage也提供apt/dnf包、.deb/.rpm/.apk安装包以及自带 Chromium 的 Docker 镜像。安装细节见 installation.md。⚠️唯一依赖kage 需要一台装有 Chrome 或 Chromium 的电脑容器镜像除外。它会自动查找系统安装也可以用--chrome指定路径。找不到浏览器时首次运行还会自动下载一份专用 Chromium。快速上手两行命令拿到离线镜像以 Paul Graham 的随笔站为例核心循环只有两步# 1. 克隆网站到 $HOME/data/kage/paulgraham.com/ kage clone paulgraham.com # 2. 用本地服务器离线读回 kage serve $HOME/data/kage/paulgraham.com # 然后打开 http://127.0.0.1:8800就这么简单。每篇文章、每张图片、每个样式表都被冻结在你的硬盘上零网络即可完整浏览。爬取完成后的磁盘结构长这样paulgraham.com/ ├── index.html # 首页脚本已剥离 ├── greatwork.html # 一篇文章 └── _kage/ # 本地化资源与爬取状态 ├── paulgraham.com/site.css # 本地样式表 └── state.json # 断点续爬状态直接双击index.html用浏览器打开也能离线渲染而kage serve启动的是本地静态服务器能保证站点内的相对链接像线上一样正常跳转。控制爬取范围常用参数速查大站点别让它跑飞这几个参数最常用完整列表见 cli.md参数作用--max-pages 50最多渲染 50 页先尝个鲜--max-depth 2只跟进 2 层链接--scope-prefix /doc只爬某个路径及其子页面--subdomains把子域名也纳入范围--exclude /archive跳过某个路径可重复使用--scroll自动滚动页面触发懒加载图片--workers 4并发渲染页面数# 只抓文档区、最多 200 页、3 层深度 kage clone example.com --scope-prefix /docs --max-depth 3 --max-pages 200kage 天生礼貌默认遵守robots.txt、自动从sitemap.xml获取种子 URL并且只留在种子主机内。相关策略见 robots.md。断网了也不怕中断后自动续爬克隆大站经常被打断按了 Ctrl-C、电脑休眠、网络掉线。kage 每次运行都会把进度写进镜像内的state.json下次执行同一条命令时自动跳过已完成的页面从断点继续kage clone example.com # ... 中途 Ctrl-C ... kage clone example.com # 输出resume: 137 pages already done, picking up 412 pages失败的页面超时、主机暂时宕机不会被标记为完成下一轮自动重试。想推倒重来则加--force完整机制见 resuming-a-run.md。把整个网站压成一个文件kage pack文件夹好浏览但不好携带——几千个小文件拷贝慢、发给别人也麻烦。kage pack能把整个镜像压成单个文件三种形态任选ZIM 档案默认——开放标准格式任何 ZIM 阅读器都能打开文本经 zstd 压缩同一镜像两次打包产出字节级一致的文件kage pack paulgraham.com # - paulgraham.com.zim kage open paulgraham.com.zim # 本地 HTTP 服务读回自包含可执行文件——把档案粘在 kage 二进制上对方什么都不用装双击即开kage pack paulgraham.com --format binary -o paulgraham ./paulgraham # 自带服务器离线展示网站双击桌面应用——加--app后macOS 生成.app、Linux 生成 AppImage、Windows 生成无控制台窗口的.exe图标自动取站点 favicon。详细说明见 packing-a-mirror.md。像真应用一样打开原生窗口模式默认方式下打包好的二进制会打开系统浏览器网站出现在又一个标签页里。用webview标签构建 kage 后它会调用操作系统原生的 WebViewmacOS 的 WKWebView、Windows 的 WebView2、Linux 的 WebKitGTK把离线站点装进独立窗口观感上就是一个真正的桌面应用make build-webview # 需要 cgo kage pack paulgraham.com --format binary --base bin/kage -o paulgraham ./paulgraham # 弹出独立窗口没有浏览器该模式实现位于 viewer/webview.go。它是如何工作的一张图看懂种子URL ─▶ 无头Chrome ─▶ 最终DOM ─▶ 剥离JS ─▶ 资源本地化 ─▶ 落盘 (渲染) (快照) (净化) (重写链接)页面由一组 Chrome 标签并发渲染资源由另一组工作进程走普通 HTTP 下载每个 URL 都确定性地映射到一个本地路径所以链接在资源下载完成前就能被正确重写。代码按职责分模块组织模块职责clone/爬取主循环任务队列、渲染工作进程、断点状态browser/无头 Chrome 控制与 DOM 快照sanitize/剥离脚本、事件处理器与javascript:链接asset/下载并本地化 CSS、图片、字体zim/纯 Go 的 ZIM 读写器pack/打包成 ZIM 或自包含二进制总结kage 用最简单的方式解决了保存网页这个二十年老难题✅一行命令克隆整站无头浏览器渲染真实页面✅零 JavaScript保存的页面不执行代码、不追踪、不发网络请求✅断点续爬Ctrl-C 随时中断重跑即恢复✅单文件交付打包成 ZIM 或自包含可执行文件发给谁都能离线打开想从源码开始git clone https://gitcode.com/gh_mirrors/kage6/kage cd kage make build # - bin/kage现在就把你担心有一天会消失的那个网站存进硬盘吧。【免费下载链接】kageShadow any website for offline viewing, with the JavaScript stripped out项目地址: https://gitcode.com/gh_mirrors/kage6/kage创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

108个Python实战项目:从语法到独立开发的突破路径
108个Python实战项目:从语法到独立开发的突破路径

1. 为什么“108个实战项目”是突破Python瓶颈的关键路径1.1 从“看懂”到“写出来”之间隔着什么很多人学Python的经历都差不多:语法看了一遍,教程跟着敲了一遍,for循环、列表推导、字典操作都能说出个大概,但一旦面对一个空白编辑… · 2026/9/26 21:12:42

LangGraph+PostgreSQL 可恢复 Agent Runtime 实践
LangGraph+PostgreSQL 可恢复 Agent Runtime 实践

去年我做内部一个自动化客服原型时,最让我头疼的不是模型回答质量,而是一个看起来很“基础”的问题:任务跑到一半被打断了,怎么让它恢复之后还记得自己刚才在干什么。前期原型用的是最朴素的手写 Loop,模型调用、工具结… · 2026/9/26 21:12:36

自研CRM系统实战:从架构设计到部署落地的完整指南
自研CRM系统实战:从架构设计到部署落地的完整指南

DeskcommCRM这个项目,我前前后后从需求梳理到正式上线跑了将近半年。它不是一个挂着CRM名头的客户通讯录,而是一套把客户资料、销售跟进、售后服务、工单流转全部串起来的完整业务系统。当时团队就七八个人,销售、实施、客服混在一堆Excel和微… · 2026/9/26 21:12:36

Creo 2.0分解装配与动画实战指南:爆炸视图、运动链与AVI导出
Creo 2.0分解装配与动画实战指南:爆炸视图、运动链与AVI导出

简介:本资源是一份面向Creo 2.0初学者与机械设计工程师的实操型技术教程,聚焦产品装配体的可视化表达核心技能——分解装配创建与动画演示。内容系统覆盖分解状态的建立与管理、四种运动类型(平移/旋转/复制位置/切换分解位置)的应… · 2026/9/26 21:51:25

38.201-h00:5G NR物理层协议宪法与R17勘误精读指南
38.201-h00:5G NR物理层协议宪法与R17勘误精读指南

简介:本资源为3GPP Release 17标准核心规范TS 38.201 V17.0.0正式版文档(2021年12月发布),面向5G通信系统工程师、协议栈开发人员及高校无线通信方向研究者,用于深入理解NR物理层通用架构与设计原则。文档完整涵盖Laye… · 2026/9/26 21:51:25

Atlas 300V 24G推理卡YOLO部署实战:昇腾NPU环境搭建与调优
Atlas 300V 24G推理卡YOLO部署实战:昇腾NPU环境搭建与调优

我手里这块卡,就是很多人问是不是“运算加速卡”的 Atlas 300V 24G。直接说结论:它是一张纯正的 AI 推理加速卡,干的是把训练好的模型“跑起来”的活,跟 GPU 那种既能训练又能渲染的通用加速卡不是一个路数。最近不少搞视觉检测的… · 2026/9/26 21:51:11

华为Atlas 300V Pro部署YOLO实战:环境配置、模型转换与推理调优全指南
华为Atlas 300V Pro部署YOLO实战:环境配置、模型转换与推理调优全指南

华为 Atlas 的硬件版本和驱动版本非常敏感,网上很多部署教程讲得含含糊糊,一堆人卡在第一步。我这次用的是Atlas 300V Pro 24G 推理卡,严格来说它确实是“运算加速卡”,但它不是用来做训练的那种,它的定位是推理&#… · 2026/9/26 21:51:11

Windows原生OpenSSH服务启动失败排错全指南
Windows原生OpenSSH服务启动失败排错全指南

1. 为什么 Windows 原生 SSH 不是“装个软件就完事”——从服务启动失败报错切入真实场景你是不是也遇到过这样的时刻:在 PowerShell 里敲下Start-Service sshd,回车后弹出一行红色错误:Start-Service : 无法启动服务“OpenSSH SSH Server (s… · 2026/9/26 21:51:11

MariaDB 10.5.11二进制包部署实战:从解压到systemd自启
MariaDB 10.5.11二进制包部署实战:从解压到systemd自启

简介:本资源为 MariaDB 10.5.11 在 Linux x86_64 平台上的官方二进制安装包,面向需要在生产或测试环境中部署开源关系型数据库的运维工程师、后端开发与数据库学习者。MariaDB 由 MySQL 创始人主导开发,兼容 MySQL 语法,便于迁移&… · 2026/9/26 21:51:11

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21

OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40

向下兼容与向上兼容:接口设计中的兼容性策略与工程实践
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践

一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码