Monolith 快速上手:把整个网页保存为单个离线 HTML 文件

Monolith 快速上手:把整个网页保存为单个离线 HTML 文件 Monolith 快速上手把整个网页保存为单个离线 HTML 文件【免费下载链接】monolith⬛️ CLI tool and library for saving complete web pages as a single HTML file项目地址: https://gitcode.com/GitHub_Trending/mo/monolithMonolith 是一个用 Rust 编写的命令行工具可以把网页连同它的 CSS、图片和 JavaScript 一次性抓下来全部以 data URL 的形式内嵌进文档最终产出一个自包含的 HTML 文件。保存完成后断开网络浏览器依然能按在线时的样子渲染这个页面适合做资料归档、离线阅读和设计参考备份。Monolith 能解决什么问题浏览器自带的另存为网页通常只会下载主文档加上一堆散落的资源文件换个目录打开就丢样式。Monolith 的做法是把资源直接编码进 HTML一个文件走天下归档把经常打开的网页变成磁盘上一个个独立的.html备份保留页面原始的字体、图片和脚本不依赖原站点持续存在分发单个文件发给别人对方不需要网络或额外文件夹安装 Monolith根据你使用的包管理器任选一条命令cargo install monolith brew install monolith choco install monolithLinux 上也可以走发行版自带的渠道snap install monolith pacman -S monolith apk add monolith如果想从源码构建环境需要先装好 cargo 和 libssl 依赖git clone https://gitcode.com/GitHub_Trending/mo/monolith cd monolith make install最小命令保存第一个网页monolith https://example.com -o example.html命令结构就两段目标地址加-o指定输出文件。目标参数支持三种形式URL、本地 HTML 文件路径、以及用-表示从标准输入读取-o同样可以传-表示输出到 stdout。输出文件名里可以写两个占位符见 README.md 中的用法示例monolith https://example.com -o %title%-%timestamp%.html%title%取页面标题%timestamp%是保存时间戳批量保存时文件不会互相覆盖。处理本地 HTML 文件如果页面文件已经在本地把路径直接作为目标传入即可Monolith 会把同目录下的 CSS、JS、图片等资源一并内嵌monolith ./page.html -o page-offline.html已经拿到 HTML 文本但资源还在原站的情况用管道输入并用-b告知原始地址方便解析相对路径cat page.html | monolith - -b https://some.site/ -o page-full.html常用参数控制嵌入哪些资源完整参数说明见 src/main.rs 中的 CLI 定义日常用到的主要是这几个-I隔离文档保存后的页面不再向网络发起请求彻底离线-i/-j/-c排除图片、JavaScript、CSS-F/-a/-v排除字体、音频、视频-m改用 MHTML 格式输出该格式不允许 JS会自动跳过-M不写入保存时间和来源 URL 等元信息-n把noscript标签替换为其中的内容白名单与黑名单限定资源来源用-d列出允许的域名再加-B这些域名就变成黑名单。比如只从页面自身域名取资源跳过第三方统计和广告脚本monolith -I -d example.com -d www.example.com https://example.com -o example-only.html反过来把.googleanalytics.com之类写进黑名单也很常见命令结构相同只是去掉白名单语义。保存需要登录的页面基础认证直接把账号密码写进 URLmonolith https://username:passwordexample.com -o saved.html需要携带已有登录态时用-C指定 cookie 文件src/cookies.rs 负责解析monolith -C cookies.txt https://example.com -o saved.html配合无头浏览器处理动态页面Monolith 本身不带 JavaScript 引擎首屏之后才渲染出的内容它拿不到。这类页面可以先用无头浏览器导出渲染后的 DOM再交给 Monolith 补全资源chromium --headless --dump-dom https://example.com | monolith - -I -b https://example.com -o example.html排错建议部分资源下载失败加-e忽略网络错误继续保存其余资源不受影响遇到自签证书报 TLS 错误加-k接受无效证书请求太慢或整体超时用-t调整单次网络请求的超时秒数默认 120 秒目标站点拦截了默认请求头用-u换成真实浏览器的 User-Agent保存出来中文乱码用-E强制指定字符集例如-E UTF-8需要走代理设置https_proxy、http_proxy、no_proxy环境变量后照常执行Monolith 把一个页面、一个文件变成了可复制、可脚本化的日常操作先按上面的最小命令跑通一次再根据保存对象补充-I、域名过滤或无头浏览器管道。更多场景可以在 tests/ 目录下的测试用例里找到对应命令的实际写法。【免费下载链接】monolith⬛️ CLI tool and library for saving complete web pages as a single HTML file项目地址: https://gitcode.com/GitHub_Trending/mo/monolith创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考