28

我希望能够将 HTML 页面保存/存档为一个文件(没有那些讨厌的外部文件夹)。

我希望生成的文件包含所有样式、图像和链接(视频和 Flash 也不错,但不是那么重要)。

我希望生成的文件是可搜索和可编辑的。

微软的 MHT 就是这样的工具之一,但不幸的是,它在 Linux 下是不可搜索的。MHT很好,但我不想被锁定在一个操作系统或一个公司下。什么是一个好的选择——或者也许有一些我没有考虑过的完全不同的解决方案?

4

4 回答 4

20

SingleFile chrome 扩展是一个很好的解决方案。

我还编写了自己的 python 工具来解决这个问题,我建议尝试一下: https ://github.com/zTrix/webpage2html

于 2015-12-15T14:52:27.387 回答
13

通过切换 chrome://flags 页面上的“将页面另存为 MHTML”选项,支持在当前版本的 Google Chrome 中查看和创建 MHTML 文件。

在你的 url 框中输入 chrome://flags

但是,启用此实验性选项会禁用将页面保存为纯 HTML 或 HTML 完整文件。从 chrome://flags 页面:

于 2014-10-10T22:18:20.617 回答
11

扩展 zTrix 的答案,我建议避免使用 Chrome 扩展(这对我根本不起作用),而是使用以下选项之一:

  • Node.js:remy 的内联
    • 易于安装使用npm
    • 许多选项,包括用于禁用缩小/压缩、维护外部图像、跳过视频等的标志。
    • 警告:(2017 年 9 月 22 日)在编译Slate 构建时未能保持样式和 JavaScript 功能。这不会直接影响大多数人,但这意味着内联可能会与其他页面有问题。看到这个问题
    • 警告:没有“不理会”的选项:将缩小/丑化 CSS/JS 或美化,但不会简单地将原始源代码嵌入 HTML。
  • Python 2:zTrix 的webpage2html
    • 比内联更保守;适用于大多数情况。
    • zTrix 修复了一个错误(内联器似乎也有),它在编译Slate 构建时确保 JavaScript/CSS 功能。看到这个问题(2017 年 9 月 29 日更新)
    • 可以相对轻松地转换为 Python 3
    • 警告:无法处理 CSS@import
于 2017-09-22T14:34:52.180 回答
7

通常,可以创建一个包含他所有常见子文件(css、jpg、js、svg...)
的 HTML 文件,您必须通过替换“ src”属性值、“ url()”函数和插入 HTML 标记来重写 HTML 文件比如 " <script></script>" 用于 JavaScript 文件," <style></style>" 用于 CSS 文件, " <svg></svg>" 用于 SVG 图像。

例如,由“ url()”函数调用的 CSS 中的 GIF 图像文件。

  1. 从他的 URL 下载图像。
  2. 将此图像编码为 Base64。
  3. 用 Base64 编码的 GIF 图像替换 " url('https://en.wikipedia.org/wiki/File:TPB_Magnet_Icon.gif')" 为 " url('data:image/gif;base64,R0lGODlhDAAMALMPAOXl5ewvErW1tebm5oocDkVFRePj47a2ts0WAOTk5MwVAIkcDesuEs0VAEZGRv///yH5BAEAAA8ALAAAAAAMAAwAAARB8MnnqpuzroZYzQvSNMroUeFIjornbK1mVkRzUgQSyPfbFi/dBRdzCAyJoTFhcBQOiYHyAABUDsiCxAFNWj6UbwQAOw')",前缀为 " data:image/gif;base64,"

你可以对“ src”属性的值做同样的事情。此解决方案可用于其他二进制文件。您必须调整正确的“ data”前缀以对应于编码对象。

于 2019-05-02T10:07:12.663 回答