你是否曾经遇到过想要保存一个网页以便离线查看,却发现网页上的图片、CSS 文件和 JavaScript 文件都丢失了?或者你想要分享一个网页给朋友,但是担心链接失效?Monolith 正是你所需要的工具!
Monolith 简介
Monolith 是一个用 Rust 编写的命令行工具,它可以将整个网页保存为单个 HTML 文件。它会下载网页上的所有资源,包括图片、CSS 文件、JavaScript 文件,并将它们嵌入到最终的 HTML 文件中。这意味着你可以离线查看网页,或者将网页分享给其他人,而不用担心资源丢失或链接失效。
Monolith 的优势
- 离线浏览: 将网页保存为单个 HTML 文件后,你可以随时随地离线浏览,无需担心网络连接问题。
- 易于分享: 你可以轻松地将保存的 HTML 文件分享给朋友或同事,他们无需访问原始网站即可查看完整内容。
- 网页归档: Monolith 是网页归档的理想工具,可以帮助你保存重要的网页,以备将来参考。
- 简化开发: 对于 Web 开发人员,Monolith 可以帮助你快速打包网页及其所有依赖项,方便测试和部署。
Monolith 的安装
Monolith 使用 Rust 编写,你需要先安装 Rust 环境。如果你还没有安装 Rust,可以访问 https://www.rust-lang.org/ 下载安装程序。
安装完 Rust 后,可以使用 cargo 命令安装 Monolith:
cargo install monolith
Monolith 的使用
安装完成后,你可以使用 monolith
命令来保存网页。使用方法非常简单,只需指定要保存的网页地址即可:
monolith https://www.example.com
默认情况下,Monolith 会将保存的 HTML 文件命名为 index.html
,并保存到当前目录。你也可以使用 -o
或 --output
参数指定输出文件名和路径:
monolith https://www.example.com -o example.html
Monolith 的进阶用法
除了基本用法外,Monolith 还提供了一些高级选项,可以让你自定义保存网页的方式。
指定 User-Agent
有些网站会根据 User-Agent 来判断访问来源,并提供不同的内容。你可以使用 -u
或 --user-agent
参数指定 User-Agent:
monolith https://www.example.com -u "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
忽略资源
默认情况下,Monolith 会下载网页上的所有资源。如果你只想保存网页的主要内容,可以使用 -i
或 --ignore
参数忽略指定的资源类型,例如图片、CSS 文件或 JavaScript 文件:
# 忽略图片
monolith https://www.example.com -i "image/*"
# 忽略 CSS 文件
monolith https://www.example.com -i "text/css"
# 忽略 JavaScript 文件
monolith https://www.example.com -i "application/javascript"
设置超时时间
如果网页加载时间过长,你可以使用 -t
或 --timeout
参数设置超时时间(单位为秒):
monolith https://www.example.com -t 30
Monolith 的工作原理
Monolith 使用以下步骤将网页保存为单个 HTML 文件:
- 下载 HTML: Monolith 首先下载网页的 HTML 源代码。
- 解析 HTML: 然后,Monolith 解析 HTML 代码,并提取所有引用的资源,例如图片、CSS 文件和 JavaScript 文件。
- 下载资源: Monolith 下载所有提取到的资源文件。
- 嵌入资源: Monolith 将下载的资源文件转换为 Base64 编码,并将其嵌入到 HTML 文件中。
- 保存 HTML: 最后,Monolith 将最终的 HTML 文件保存到指定的位置。
总结
Monolith 是一款功能强大且易于使用的网页保存工具,它可以将任意网页打包成单个 HTML 文件,方便离线浏览和分享。无论是网页开发者、数据收集者还是普通用户,Monolith 都能为你提供帮助。