monolith命令行参数全解析:从入门到进阶

monolith命令行参数全解析:从入门到进阶

【免费下载链接】monolith ⬛️ CLI tool for saving complete web pages as a single HTML file 【免费下载链接】monolith 项目地址: https://gitcode.com/GitHub_Trending/mo/monolith

你还在为网页保存不完整而烦恼?是否遇到过保存的HTML文件缺失图片、CSS样式错乱的问题?本文将系统解析monolith的全部命令行参数,从基础用法到高级技巧,助你轻松掌握单文件网页保存的精髓。读完本文,你将能够:

  • 掌握monolith核心参数的使用场景
  • 灵活配置资源过滤规则
  • 处理特殊编码与网络问题
  • 定制输出格式与文件命名

关于monolith

monolith是一款命令行工具(CLI tool),能够将完整的网页保存为单个HTML文件。其核心功能通过src/main.rs实现,采用Rust语言开发,确保高效稳定的性能。项目结构清晰,主要包含缓存管理src/cache.rs、Cookie处理src/cookies.rs和核心转换逻辑src/core.rs等模块。

monolith图标

基础参数:快速上手

必选参数:目标URL

最基本的使用方式只需提供目标URL:

monolith https://example.com

参数定义在src/main.rs#L124,支持三种输入源:

  • 网络URL(如https://example.com
  • 本地文件路径(如./page.html
  • 标准输入(使用-从管道读取)

输出控制:-o/--output

指定输出文件路径,使用-表示标准输出:

monolith https://example.com -o example.html
monolith https://example.com --output - > example.html

参数实现逻辑见src/main.rs#L103-L105,若未指定输出路径,工具会自动根据网页标题生成文件名。

资源过滤参数:定制网页内容

媒体资源控制

monolith提供细粒度的资源过滤选项,可按需移除各类媒体元素:

参数作用适用场景
-i/--no-images移除图片节省存储空间
-a/--no-audio移除音频纯文本内容保存
-v/--no-video移除视频低带宽环境
-F/--no-fonts移除字体简化页面样式

示例:保存纯文本版本的网页

monolith https://example.com -i -a -v -F -o text-only.html

相关参数定义见src/main.rs#L75-L85src/main.rs#L119-L121

脚本与样式控制

针对网页脚本和样式的控制参数:

  • -j/--no-js:移除JavaScript脚本
    monolith https://example.com -j -o no-script.html
    
  • -c/--no-css:移除CSS样式表
    monolith https://example.com -c -o no-style.html
    

参数实现见src/main.rs#L47-L49src/main.rs#L83-L85,注意使用-m/--mhtml参数时会自动启用-jsrc/main.rs#L196)。

高级参数:域名控制与网络配置

域名黑白名单

通过-d/--domain结合-B/--blacklist-domains实现域名过滤:

# 只允许example.com及其子域名的资源
monolith https://example.com -d example.com -o whitelist.html

# 阻止ads.example.com的资源加载
monolith https://example.com -d ads.example.com -B -o blacklist.html

实现逻辑见src/main.rs#L55-L57src/main.rs#L179,支持同时指定多个域名。

网络安全与超时设置

处理网络连接问题的参数组合:

  • -k/--insecure:允许无效SSL证书
  • -t/--timeout:设置网络超时(秒)
  • -e/--ignore-errors:忽略网络错误继续执行

示例:处理不稳定网络环境

monolith https://unstable-site.com -k -t 30 -e -o unstable.html

相关参数定义见src/main.rs#L87-L90src/main.rs#L111-L113,默认超时时间为120秒(src/main.rs#L201)。

特殊功能:MHTML格式与元数据控制

MHTML格式输出

使用-m/--mhtml参数生成MHTML格式文件:

monolith https://example.com -m -o archive.mht

注意MHTML格式不支持JavaScript,启用此参数会自动设置-jsrc/main.rs#L196)。

元数据控制

  • -M/--no-metadata:移除生成文件中的元数据
    monolith https://example.com -M -o no-meta.html
    

元数据包含原始URL、保存时间等信息,相关实现见src/core.rs中的元数据生成逻辑。

实战案例:复杂场景应用

带Cookie的网页保存

使用-C/--cookie-file参数加载Cookie文件:

monolith https://auth-site.com -C cookies.txt -o authenticated.html

Cookie文件解析逻辑在src/cookies.rs中实现,支持标准的Netscape格式Cookie文件。

本地文件处理与字符编码

指定基础URL和字符编码处理本地HTML文件:

monolith ./local-page.html -b http://localhost/ -E UTF-8 -o fixed-encoding.html

-b/--base-url参数用于解决相对路径问题,-E/--encoding强制指定字符编码,实现见src/main.rs#L39-L41src/main.rs#L63-L65

参数速查表

为便于快速查阅,整理常用参数对照表:

类别参数功能描述
输出控制-o/--output指定输出文件
资源过滤-i/-a/-v/-F移除图片/音频/视频/字体
内容控制-j/-c移除JS/CSS
域名控制-d/-B域名白/黑名单
网络配置-k/-t/-e不安全连接/超时/忽略错误
特殊格式-m生成MHTML格式

完整参数列表可通过monolith --help查看,或参考src/main.rs#L34-L125的参数定义代码。

总结与进阶

通过本文介绍的参数组合,你可以灵活应对各种网页保存需求。monolith的强大之处在于其模块化设计,核心转换逻辑在src/core.rs中实现,通过src/session.rs管理网络会话,结合src/cache.rs实现资源缓存。

进阶学习建议:

  1. 研究测试用例tests/cli/了解参数组合效果
  2. 通过src/core.rs学习HTML处理原理
  3. 尝试修改src/main.rs添加自定义参数

掌握这些参数后,你将能够高效地保存完整网页,轻松应对各种复杂的网页结构和网络环境。收藏本文,下次使用monolith时即可快速查阅参数用法。

【免费下载链接】monolith ⬛️ CLI tool for saving complete web pages as a single HTML file 【免费下载链接】monolith 项目地址: https://gitcode.com/GitHub_Trending/mo/monolith

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值