linuxでwebページのスクリーンショットを作成する方法メモ。amazon linuxで試した。
依存ライブラリ等のインストール
amazon linuxへfirefoxをインストール
このページに書いてあるコマンドそのままです。他のOSだとyumだけでインストールできるかもです。しょぼいサーバーだとここだけで数時間かかります。
sudo wget -qO- https://gist.github.com/alingogo/5325484/raw | sudo bash
仮想フレームバッファツールをインストール
yumだけでOKです(参考ページ)。後述しますが、日本語フォントがないので日本語が文字化けします。
sudo yum install -y Xvfb xorg-x11-fonts* ImageMagick
追記 日本語フォントをインストールする
amazon linuxならyumだけでipaフォントがインストールできるみたいです。この手順を実行しておくと、日本語のページでも文字化けしなくなります。
sudo yum install -y ipa-gothic-fonts
firefoxを起動しスクリーンショットを作成する
仮想フレームバッファツールを1024x1024で起動し、firefoxをバックグラウンドで起動しておきます。
export DISPLAY=:1.0 Xvfb :1 -screen 0 1024x1024x24 & firefox &
既にGUI環境を設定しているときは、ディスプレイの番号を変えたりする必要があるかもです。オプションをより詳細に指定する例はこのページにあります。
次に、firefoxの新しいタブでURLを開いて、ImageMagick(importコマンド)でスクリーンショットを作成します。
firefox -remote "openurl(http://www.yahoo.co.jp/)" import -window root -silent sample.png
日本語フォントをインストールしていないので、上記の日本版ヤフーは文字化けします。http://www.yahoo.com/ のような海外英語サイトなら文字化けしません。
まとめ
amazon linuxにおけるwebページのスクリーンショット作成方法を書きました。
まだできていないことメモ。
- 日本語フォントのインストール
- 最初からURLを開く方法
- ウインドウの枠を消す方法
- 右側の黒い部分を消す方法
参考リンク
XvfbとFirefoxとImageMagickでWebページのサムネイルを自動生成する方法
AWSフォーラム。アジアのフォントを入れてくださいみたいな質問。
ウェブページを保存して閲覧できる、魚拓関連ウェブサービス10選
直接の関係はないですが、既に存在するスクリーンショット作成ツールまとめ記事。
Capture a Screenshot of a Full Website With Ruby
一番新しい記事なので本当はこの方法でやりたかったんですが、エラーを解決できませんでした。
次回再チャレンジのとき用メモ。
sudo yum install -y ruby-devel sudo gem install --no-rdoc --no-ri trollop sudo gem install --no-rdoc --no-ri json git clone https://github.com/vapir/vapir.git # エスケープ文字を2種類修正する、closeメソッドをコメントアウト。 /home/ec2-user/ruby/vapir/vapir-common/lib/vapir-common/waiter.rb:91:in `try_for': Could not connect to the jssh socket on the browser after 30 seconds. Either Firefox did not start or jssh is not installed and listening. (Vapir::Exception::NoBrowserException)