Webページを丸ごと保存してオフラインでも表示できるコマンドラインツールmonolith
はじめに
Webページを丸ごと1つのHTMLファイルとして保存できるコマンドラインツールであるmonolithを使ってみたのでそのインストール手順と簡単な使い方をまとめます。
monolithについて
monolithは、指定したURLのWebページのテキストだけでなく、CSS、画像、JavaScriptを含む全てを1つのHTMLファイルとしてローカルに保存します。画像もBase64で変換されたものがHTML内に含まれるため、オフラインでも保存したWebページを完全に再現できます。以下が公式リポジトリです。
なお、monolithはまだ公開されたばかりのためバグも色々と残っているかもしれませんが、一方で今後の開発が楽しみです。
前提と環境
この記事では、WSL上のUbuntu18.04にインストールしました。
- OS : Ubuntu18.04 (WSL上)
事前準備
monolithは、Rustで開発されているため、CargoというRustのパッケージマネージャおよびビルドツールを用いてインストールします。また、SSL使用するためlibssl-dev
が必要となります。したがって、以下のコマンドで必要なパッケージをインストールしておきます。
$ sudo apt install cargo libssl-dev
以上で事前準備は完了です。なお、その他のディストリビューションにおける上記パッケージの名称は異なりますが、以下のサイトにまとめられています。
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
まとめ
簡単なスクレイピングツールとして色々と使えそうです。
関連記事
- 公開日:2020/02/16 更新日:2020/02/16
圧縮、暗号化、リモート対応の差分バックアップを作成できる「Borg Backup」の使い方
圧縮、暗号化に対応し差分バックアップを作成できるソフトウェアである「Borg Backup」をUbuntuにインストールして使ってみたのでその手順をまとめます。「Borg Backup」はLinux、macOSに対応しています。
- 公開日:2020/02/14 更新日:2020/02/14
自分専用の後で読むサービスを構築できる「Wallabag」をUbuntu + Nginxで構築する手順
後で読むサービスのPocketにかなり近く、機能豊富なオープンソースのWallabagをUbuntuにインストールしたのでその手順をまとめます。
- 公開日:2020/02/12 更新日:2020/02/12
ファイル単位で暗号化して保存できるCryptomatorをインストールして使う手順
Cryptomatorは、ファイル単位での暗号化が可能なソフトウェアです。この記事では、UbuntuにCryptomatorをインストールする手順と使い方をまとめます。
- 公開日:2020/01/22 更新日:2020/01/22
WireGuardでVPNサーバーを構築してスマホやPCから接続する手順
WireGuardはOpenVPNよりもシンプルで高速、より安全なVPNとして開発が進められており、OpenVPNに代わるVPNとして期待されています。この記事ではWireGuardを使ってVPNサーバーを構築し、そのVPNサーバーにUbuntuやiPhoneから実際に接続してみるまでの手順をまとめます。
- 公開日:2020/01/17 更新日:2020/01/17
ディレクトリ表示や移動をインタラクティブに実行できるコマンドツール「Broot」
Linuxで端末を使っている時にディレクトリ構造をざっくり確認したり各ディレクトリにどのようなファイルが入っているかを確認したりしたい場合があると思います。Brootはディレクトリ構造を表示しつつさらにそこから各ディレクトリに移動したりファイルを検索したりできるコマンドラインツールです。