はじめに
Webページを丸ごと1つのHTMLファイルとして保存できるコマンドラインツールであるmonolithを使ってみたのでそのインストール手順と簡単な使い方をまとめます。
monolithについて
monolithは、指定したURLのWebページのテキストだけでなく、CSS、画像、JavaScriptを含む全てを1つのHTMLファイルとしてローカルに保存します。画像もBase64で変換されたものがHTML内に含まれるため、オフラインでも保存したWebページを完全に再現できます。以下が公式リポジトリです。
Save HTML pages with ease
なお、monolithはまだ公開されたばかりのためバグも色々と残っているかもしれませんが、一方で今後の開発が楽しみです。
前提と環境
この記事では、WSL上のUbuntu18.04にインストールしました。
- OS : Ubuntu18.04 (WSL上)
事前準備
monolithは、Rustで開発されているため、CargoというRustのパッケージマネージャおよびビルドツールを用いてインストールします。また、SSL使用するためlibssl-dev
が必要となります。したがって、以下のコマンドで必要なパッケージをインストールしておきます。
$ sudo apt install cargo libssl-dev
以上で事前準備は完了です。なお、その他のディストリビューションにおける上記パッケージの名称は異なりますが、以下のサイトにまとめられています。
Save Web Pages As Single HTML Files For Offline Use With Monolith (Console)
Monolith is a command line tool to save any web page as a single HTML file that contains everything needed to render web page locally, without needing a working Internet connection.
monolithをインストールする
monolithの公式リポジトリをクローンして、先程インストールしたCargoを使ってインストールします。少し時間がかかるので待機します。クローンするディレクトリは任意の場所で大丈夫です。
$ git clone https://github.com/Y2Z/monolith.git
$ cd monolith
$ cargo install --path .
上記が完了すると、最終的に以下のようなメッセージが表示されてインストールが完了します。
(...以上省略...)
Compiling monolith v2.0.8 (/home/username/Downloads/monolith)
Finished release [optimized] target(s) in 4m 47s
Installing /home/username/.cargo/bin/monolith
warning: be sure to add `/home/username/.cargo/bin` to your PATH to be able to run the installed binaries
上記にwarning
と警告が出ているように、このままでは必要なパスが通っていないため以下のコマンドでホームディレクトリにある~/.bashrc
にパスを追記します。
$ echo "export PATH=\"\$PATH:\$HOME/.cargo/bin\"" >> ~/.bashrc
パスを追記したら以下で~/.bashrc
を再読込して反映させます。
$ source ~/.bashrc
ここでパスを追記、~/.bashrc
を再読込して反映しておかないと、monolith
コマンドを使っても以下のように見つかりませんと表示されます。
$ monolith
monolith: コマンドが見つかりません
正常にインストールされている場合は、以下のようにバージョンを確認できます。
$ monolith --version
monolith 2.0.8
以上でインストールは完了です。
monolithを使ってWebページを丸ごと1つのHTMLファイルとして保存する
monolithの使い方は非常に簡単で、以下のコマンドを実行することで指定したURLのWebページをCSS、画像、JavaScriptを含む状態で1つのHTMLファイルとして保存します。
$ monolith https://www.virment.com/ > virment.html
HTMLファイルは現在いるディレクトリに保存されますが、もちろんパスを指定してもOKです。
$ monolith https://www.virment.com/ > ~/Downloads/virment.html
画像が不要な場合
もしBase64で変換された画像データをHTML内に含めたくない場合は、以下のように-i
オプションを使用します。
$ monolith -i https://www.virment.com/ > virment-noimages.html
以下はこのサイトのトップページですが、画像だけない状態で保存されます。
JavaScriptが不要な場合
JavaScriptをHTML内に含めたくない場合は、以下のように-j
オプションを使用します。
$ monolith -j https://www.virment.com/ > virment-nojs.html
まとめ
簡単なスクレイピングツールとして色々と使えそうです。
SPONSORED LINK