Chrome支持将网页保存为MHTML文件,方法有四:一、启用chrome://flags/#save-page-as-mhtml标志后通过“另存为”导出;二、通过远程调试接口调用Page.captureSnapshot命令导出;三、安装MHTML Save或SingleFile扩展一键保存;四、用PowerShell结合Selenium自动化批量保存。
如果您希望在没有网络连接的情况下查看某个网页,或者需要将网页内容完整归档以备后续查阅,Chrome 浏览器支持将整个网页(含图片、CSS、JS 等资源)打包保存为单个 MHTML 文件。以下是实现该操作的具体方法:
一、使用 Chrome 原生“另存为”功能导出 MHTML
Chrome 自带的“另存为”选项默认不显示 MHTML 格式,但可通过启用实验性标志(flags)激活该功能。启用后,用户可在右键菜单或地址栏右侧的“更多”按钮中调出 MHTML 保存选项。
1、在 Chrome 地址栏输入 chrome://flags/#save-page-as-mhtml 并回车。
2、在搜索框中输入 save-page-as-mhtml,找到对应实验性功能。
立即学习“前端免费学习笔记(深入)”;
3、点击右侧下拉菜单,选择 Enabled。
4、点击页面右下角的 Relaunch 按钮重启浏览器。
5、重新打开目标网页,点击右上角三点菜单 → 另存为 → 在保存类型下拉框中选择 Web 档案(.mhtml) → 指定路径并点击保存。
二、通过开发者工具手动触发 MHTML 导出
当原生“另存为”未显示 MHTML 选项,或需批量保存多个标签页时,可借助 Chrome 的开发者工具协议接口,通过命令行方式强制导出当前页面为 MHTML 文件。此方法无需修改 flags,适用于已启用远程调试端口的环境。
1、关闭所有 Chrome 实例,然后以命令行方式启动 Chrome,并启用远程调试端口:chrome.exe –remote-debugging-port=9222 –no-first-run –no-default-browser-check(Windows)。
2、确保目标网页已加载完成并处于活动标签页。
3、使用 curl 或 Postman 向调试接口发送 POST 请求:http://localhost:9222/json 获取当前页面的 WebSocket 调试 ID。
4、向该页面的 DevTools 协议端点发送 Page.captureSnapshot 命令,获取 Base64 编码的 MHTML 内容。