web-dev-qa-db-ja.com

HTMLページを1つのファイルとして保存する方法は?

HTMLページを1つのファイルとして保存/アーカイブできるようにしたい(厄介な外部フォルダーなしで)。

結果のファイルにすべてのスタイル、画像、リンクを含めたいです(ビデオとFlashもいいでしょうが、それほど重要ではありません)。

結果のファイルを検索および編集できるようにしたいのですが。

MicrosoftのMHTはそのようなツールの1つですが、残念ながらLinuxでは検索できません。 MHTは良いですが、1つのオペレーティングシステムまたは1つの会社にロックされたくありません。良い代替案は何ですか?あるいは、私が考えていなかったいくつかの完全に異なるソリューションがあるでしょうか?

よろしくお願いします!

19

Googleの現在のバージョンでのMHTMLファイルの表示と作成Chromeは、chrome:// flagsページの[MHTMLとしてページを保存]オプションを切り替えることでサポートされます。

uRLボックスにchrome:// flagsと入力します

ただし、この実験的なオプションを有効にすると、ページをHTML専用ファイルまたはHTML完全ファイルとして保存することが無効になります。 chrome:// flagsページから:

12
banb

SingleFile chrome extension は良い解決策です。

私はまた、この問題を解決するための独自のpythonツールを作成しました。これを試してみることをお勧めします: https://github.com/zTrix/webpage2html

11
zTrix

ZTrixの答えを拡張して、Chrome拡張機能(私にはまったく機能しなかった)を避け、代わりに次のオプションのいずれかを使用することをお勧めします。

  • Node.js: レミーのインライナー
    • npmを使用して簡単にインストール
    • 縮小/圧縮の無効化、外部画像の維持、ビデオのスキップなどのフラグを含む、多くのオプション。
    • 警告:(2017年9月22日) Slate builds をコンパイルすると、スタイル設定とJavaScript機能を維持できません。これはほとんどの人に直接影響を与えることはありませんが、インライナーがおそらく他のページで問題を抱えることになるでしょう。参照 この問題
    • 警告:「ものをそのままにする」オプションはありません。CSS/ JSを縮小/醜化するか、美化しますが、元のソースをHTMLに埋め込むだけではありません。
  • Python 2: zTrixのwebpage2html
    • インライナーよりも保守的。ほとんどの場合にうまく機能します。
    • zTrixは スレートビルド をコンパイルするときにJavaScript/CSS機能を保証するバグを修正しました(そのインライナーにもあるようです)。 この問題 を参照してください。 (2017年9月29日更新)
    • Python に変換される)==比較的無痛
    • 警告:CSSを処理できません@import
3
afeique

あなたはこのツールを使うことができます: https://github.com/Y2Z/monolith 、それはあなたが必要としていることを正確に行っているようです。

Chromeのプログラムから直接作成されたブラウザ拡張機能もあり、ここで見つけることができます: https://chrome.google.com/webstore/detail/monolith/koalogomkahjlabefiglodpnhhkokekg

1
Sunshine

通常、彼のすべての共通の子ファイル(css、jpg、js、svgなど)を含む1つのHTMLファイルを作成することが可能です。
src」属性の値、「url()」関数を置き換え、JavaScriptファイルの「_<script></script>_」のようなHTMLタグを挿入して、HTMLファイルを書き直す必要があります、CSSファイルの場合は「_<style></style>_」、SVG画像の場合は「_<svg></svg>_」。

たとえば、 "url()"関数によって呼び出されるCSSのGIF画像ファイル。

  1. 彼のURLから画像をダウンロードしてください。
  2. この画像をBase64にエンコードします。
  3. url('https://en.wikipedia.org/wiki/File:TPB_Magnet_Icon.gif')」を「url('data:image/gif;base64,R0lGODlhDAAMALMPAOXl5ewvErW1tebm5oocDkVFRePj47a2ts0WAOTk5MwVAIkcDesuEs0VAEZGRv///yH5BAEAAA8ALAAAAAAMAAwAAARB8MnnqpuzroZYzQvSNMroUeFIjornbK1mVkRzUgQSyPfbFi/dBRdzCAyJoTFhcBQOiYHyAABUDsiCxAFNWj6UbwQAOw')」で置き換え、Base_64でエンコードされたGIF画像に接頭辞「_data:image/gif;base64,_」を付けたもの

"src"属性の値に対しても同じことができます。このソリューションは、他のバイナリファイルに使用できます。エンコードされたオブジェクトに対応するように、正しい「data」プレフィックスを適合させる必要があります。

0
Cyril CCT