告别多文件烦恼!monolith让网页保存一步到位
你是否遇到过这样的情况:想保存一篇重要的网页,却发现下载下来的是一堆零散的文件和文件夹?图片、CSS样式、JavaScript脚本分散在不同目录,不仅占用空间,还难以管理和分享。现在,有了monolith这款命令行工具,这些问题都将成为过去。
读完本文,你将能够:
- 了解monolith如何将完整网页保存为单个HTML文件
- 掌握monolith的安装方法
- 学会使用monolith的基本和高级功能
- 解决网页保存中的常见问题
monolith简介
monolith是一款开源的命令行工具,它能够将完整的网页(包括HTML、CSS、JavaScript和图片等资源)保存为单个HTML文件。与传统的"另存为"功能不同,monolith会将所有资源嵌入到一个文件中,使得保存的网页可以在没有网络连接的情况下完美展示。
monolith的核心优势在于:
- 单文件存储,便于管理和分享
- 无需依赖外部资源,离线可用
- 保留网页原始样式和功能
- 轻量级命令行工具,高效快捷
项目的核心代码位于src/main.rs,定义了命令行参数解析和主要执行流程。
安装monolith
monolith支持多种安装方式,适用于不同的操作系统。
使用Cargo安装(跨平台)
如果你已经安装了Rust开发环境,可以直接使用cargo命令安装:
cargo install monolith
使用包管理器安装
根据你的操作系统,可以选择相应的包管理器:
macOS和Linux(Homebrew):
brew install monolith
Windows(Chocolatey):
choco install monolith
Linux(Snapcraft):
snap install monolith
从源代码编译安装
你也可以从源代码编译安装monolith:
git clone https://gitcode.com/GitHub_Trending/mo/monolith
cd monolith
make install
详细的安装说明可以参考项目的README.md文件。
基本使用方法
monolith的使用非常简单,基本语法如下:
monolith [选项] <URL或文件路径> -o <输出文件>
保存网页到文件
最简单的用法是将指定URL的网页保存为HTML文件:
monolith https://example.com -o example.html
这个命令会将https://example.com的完整网页保存到当前目录下的example.html文件中。
从标准输入读取内容
你也可以通过管道将HTML内容传递给monolith处理:
cat some-page.html | monolith - -b https://example.com -o output.html
这里的-表示从标准输入读取内容,-b选项指定了基础URL。
高级选项
monolith提供了丰富的选项,可以根据需要定制保存的网页内容。主要选项定义在src/main.rs的Cli结构体中。
内容过滤
-a: 排除音频资源-c: 排除CSS样式-i: 排除图片-j: 排除JavaScript脚本-F: 排除网页字体-f: 排除框架(frames)和iframe
例如,如果你只想保存纯文本内容,可以使用:
monolith -ciFj https://example.com -o example-text-only.html
域名控制
-d: 指定允许的域名(白名单)-B: 将指定域名视为黑名单
例如,只允许从example.com及其子域名加载资源:
monolith -d example.com -d www.example.com https://example.com -o example-restricted.html
自定义用户代理
使用-u选项可以设置自定义的User-Agent字符串:
monolith -u "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" https://example.com -o example-chrome.html
处理动态内容
由于monolith本身不包含JavaScript引擎,对于动态加载内容的网页,可以结合Chromium等浏览器使用:
chromium --headless --dump-dom https://example.com | monolith - -b https://example.com -o example-dynamic.html
这个命令会先用Chromium渲染网页,再将结果传递给monolith处理。
实际应用场景
保存在线文档
研究人员和学生可以使用monolith保存在线学术论文和文档:
monolith https://arxiv.org/abs/2101.00190 -o paper-2101.00190.html
网页存档
对于经常变动的网页,可以使用monolith创建快照存档:
monolith https://news.ycombinator.com -o hn-$(date +%Y%m%d).html
分享网页内容
保存网页后,可以方便地通过邮件或其他方式分享:
monolith https://example.com/article -o article.html && email article.html to friend@example.com
常见问题解决
处理需要登录的网页
对于需要登录的网页,可以使用-C选项加载cookies文件:
monolith -C cookies.txt https://example.com/protected-page -o protected.html
解决网络连接问题
如果遇到网络问题,可以使用-e选项忽略网络错误,继续保存可以访问的内容:
monolith -e https://example.com -o example-with-errors.html
处理大型网页
对于包含大量资源的大型网页,可以使用-I选项进行隔离,只保留主要内容:
monolith -I https://example.com/large-page -o simplified-page.html
总结
monolith是一款功能强大的网页保存工具,能够将完整网页保存为单个HTML文件,解决了传统网页保存方法的诸多问题。通过本文介绍的安装和使用方法,你可以开始体验monolith带来的便利。
无论是学术研究、网页存档还是内容分享,monolith都能成为你的得力助手。尝试使用monolith保存你常用的网页,体验单文件管理的便捷吧!
如果你觉得monolith有用,请点赞收藏本文,并关注项目的更新。如果你有任何问题或建议,可以查阅项目的README.md或提交issue反馈。
下一篇文章,我们将深入探讨monolith的高级功能和自定义配置,敬请期待!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



