Webページを単一のHTML (data, BASE64形式) に保存する
web
- TOP
- Old Archives
- Webページを単一のHTML (data, BASE64形式) に保存する
webページを保存するのにwgetは便利なのだけど、最近のウェブページは非常に複雑なので大量のファイルが生成されることがある。
もちろん、単純には
$ wget -p -k -E URL
でいいのだけど、ちょっと使いづらい。 単純にページを保存したい場合には、「そうじゃないんだよなぁ」と思うことがある。
あるいはテキストページなら
$ w3m -dump URL > file
という手もあるけど、これも画像が入っていたりレイアウトされていたりすると「そうじゃない」となる。
mhtmlは扱いづらいし、せっかくdata形式で埋め込めるのだから、画像やCSSを埋め込んだHTMLファイルを作ってほしい。
なんかないものかと探したところ、zTrix氏によるwebpage2htmlというプログラムが見つかった。
これがなかなか秀逸。
python webpage2html URL > file
でいいので話が早い。依存関係もpipで解消できる。 (requirements.txtも用意されている)
自動化が困難な場合にはwgetと組み合わせて二手間ほどかければ大丈夫だろう。
完成度はそこそこ。 今わかっている問題としては、サーバー側でcharsetを返さない場合、HTML内に書かれていたとしても文字エンコーディングを識別できず文字化けする。 指定もできない。
Pythonは内部文字エンコーディングに変換するため、ここでバグってしまうのだろう。 やっぱりwgetで落としてきて自前ウェブサーバーで指定するような手間が必要になる。
すごくいいツールなので、ぜひ育てていってほしいところ