#web-page #html #command-line #web #command-line-tool #download #single-page

bin+lib monolith

将网页保存为单个 HTML 文件的 CLI 工具

9 个稳定版本

2.8.1 2024年1月14日
2.7.0 2022年11月10日
2.6.1 2021年7月4日
2.4.1 2021年3月9日
0.1.0 2019年10月9日

#2#single-page

Download history 66/week @ 2024-04-22 60/week @ 2024-04-29 34/week @ 2024-05-06 44/week @ 2024-05-13 108/week @ 2024-05-20 119/week @ 2024-05-27 283/week @ 2024-06-03 91/week @ 2024-06-10 82/week @ 2024-06-17 87/week @ 2024-06-24 30/week @ 2024-07-01 57/week @ 2024-07-08 96/week @ 2024-07-15 104/week @ 2024-07-22 92/week @ 2024-07-29 43/week @ 2024-08-05

341 每月下载量

CC0 许可证

120KB
2.5K SLoC

monolith build status on GNU/Linux monolith build status on macOS monolith build status on Windows

 _____     ______________    __________      ___________________    ___
|     \   /              \  |          |    |                   |  |   |
|      \_/       __       \_|    __    |    |    ___     ___    |__|   |
|               |  |            |  |   |    |   |   |   |   |          |
|   |\     /|   |__|    _       |__|   |____|   |   |   |   |    __    |
|   | \___/ |          | \                      |   |   |   |   |  |   |
|___|       |__________|  \_____________________|   |___|   |___|  |___|

数据收藏家的梦想成真:将任何网页打包成一个单独的 HTML 文件。您现在可以用成千上万的 .html 文件替换那无数的打开标签页,这些文件存储在您宝贵的硬盘上。

与传统的“另存为网页”不同,monolith 不仅保存目标文档,还一次性嵌入 CSS、图像和 JavaScript 资产,生成一个令人愉悦的、易于存储和共享的单一 HTML5 文档。

与使用 wget -mpk 保存网站相比,此工具将所有资产嵌入为数据 URL,因此即使没有网络连接,浏览器也能准确地渲染保存的页面。


安装

使用 Cargo(跨平台)

cargo install monolith

通过 Homebrew(macOS 和 GNU/Linux)

brew install monolith

通过 Chocolatey(Windows)

choco install monolith

通过 MacPorts(macOS)

sudo port install monolith

使用 Snapcraft(GNU/Linux)

snap install monolith

使用 Guix(GNU/Linux)

guix install monolith

使用 AUR(Arch Linux)

yay monolith

使用 aports(Alpine Linux)

apk add monolith

使用 FreeBSD 软件包(FreeBSD)

pkg install monolith

使用 FreeBSD 端口(FreeBSD)

cd /usr/ports/www/monolith/
make install clean

使用 pkgsrc(NetBSD、OpenBSD、Haiku 等)

cd /usr/pkgsrc/www/monolith
make install clean

使用 容器

docker build -t Y2Z/monolith .
sudo install -b dist/run-in-container.sh /usr/local/bin/monolith

源代码 中获取

依赖项:libssl

git clone https://github.com/Y2Z/monolith.git
cd monolith
make install

使用 预构建的二进制文件(Windows、基于ARM的设备等)

每个版本都包含 Windows、GNU/Linux 以及非标准 CPU 架构平台上的预构建二进制文件。


使用方法

monolith https://lyrics.github.io/db/P/Portishead/Dummy/Roads/ -o portishead-roads-lyrics.html
cat index.html | monolith -aIiFfcMv -b https://original.site/ - > result.html

选项

  • -a:排除音频源
  • -b:使用自定义 base URL
  • -B:禁止从指定的域名(域)检索资产
  • -c:排除 CSS
  • -C:从 file 读取 cookie
  • -d:仅允许从指定的 domain(s) 检索资产
  • -e:忽略网络错误
  • -E:使用自定义 encoding 保存文档
  • -f:省略框架
  • -F:排除网页字体
  • -h:打印帮助信息
  • -i:删除图像
  • -I:隔离文档
  • -j:排除 JavaScript
  • -k:接受无效的 X.509(TLS)证书
  • -M:不要添加时间戳和 URL 信息
  • -n:提取 NOSCRIPT 元素的内部内容
  • -o:将输出写入 file(使用“-”表示标准输出)
  • -s:静默模式
  • -t:调整 网络请求超时
  • -u:提供自定义 User-Agent
  • -v:排除视频

域名白名单和黑名单

选项 -d-B 提供了控制可以用于检索资产域名的方法,例如:

monolith -I -d example.com -d www.example.com https://example.com -o example-only.html
monolith -I -B -d .googleusercontent.com -d googleanalytics.com -d .google.com https://example.com -o example-no-ads.html

动态内容

Monolith 没有内置 JavaScript 引擎,因此某些在初始加载后检索并显示数据的网站可能需要使用额外的工具。

例如,可以使用 Chromium(Chrome)作为此类页面的预处理器

chromium --headless --incognito --dump-dom https://github.com | monolith - -I -b https://github.com -o github.html

代理

请设置环境变量 https_proxyhttp_proxyno_proxy


贡献

如果发现问题,请提交 issue,这有助于改进本项目。



许可

在法律允许的范围内,作者已将本软件的所有版权相关和邻近权利贡献给全球公共领域。本软件分发时不附带任何保证。


请注意,monolith 并不了解您的浏览器会话。

依赖项

~13–29MB
~555K SLoC