Webサイトの改ざん監視を行い、改ざんされていた場合にWebサイトの画面のスクリーンショットを撮る事が出来たら、目視確認も出来て便利な気がする。
そもそもは、SERVER×SERVERという無料監視サービスで実施しているサービスだ。
ちょっと面白そうなので調べてみたところ、以下の手順でスクリーンショットを撮る事が出来る事がわかった。
1.仮想フレームバッファ(Xvfb)を使ってブラウザ(FireFox)を起動する
2.ImageMagick を使って上記ブラウザ(FireFox)の画面をキャプチャしスクリーンショットを撮る
3.ついでにスクリーンショットを縮小し、サムネイルを作る
参考にしたのは以下のサイトである。
●SimpleAPI の仕組みについて考察してみる
●Webサイトのスクリーンショットを撮るサービスの作り方
●XvfbとFirefoxとImageMagickでWebページのサムネイルを自動生成する方法
サーバOSは、CentOS 5.3 である。
システム要求
1.Xvfb
2.FireFox
3.ImageMagick
今回は、1、2はインストール済みなので、3のImageMagickのインストールを行う。
# yum install ImageMagick* |
仮想フレームバッファ(Xvfb)とブラウザ(FireFox)の起動
Xvfb を起動する init ファイルを作成する。
ここでのポイントは、XVFB=/usr/bin/Xvfb のところで、実際に自分の環境にインストールされているXvfbのパスを指定するという点だろう。
# vi /etc/init.d/xvfb
|
続いて、ブラウザ(FireFox)を起動する。
ここでのポイントは、プロファイルを作ることと、ディスプレイのサイズを指定することだろう。
以下の例では、webshotとしてプロファイルを作成しているが、名前は自由に変更してもかまわない。
ディスプレイサイズは、1024×1024にしているが、これも自由に設定してかまわない。
小さすぎるとサイトが1画面に収まらなくなり、途切れてしまうので注意が必要だ。
# export DISPLAY=:1.0 |
ブラウザ(FireFox)の画面をキャプチャする
ここでは、PerlでImage::Magick を使ってブラウザ(FireFox)の画面をキャプチャし、スクリーンショットとサムネイルを作成する方法を紹介する。
簡単な仕様は以下の通りだ。
・入力:引数にサイトのURL(http://を含む)を指定する。 ・出力:以下のファイルを出力する。 sample.png 画面全体のキャプチャ画像 sample_thumb1.png ブラウザで表示された部分を抜き出した画像 sample_thumb2.png ブラウザで表示された部分のサムネイル
# vi snapshot.pl
|
では実際にPerlスクリプトを起動してみよう。
# ./snapshot.pl http://www.goo.ne.jp/ |
ちゃんとファイルが出力されている事がわかる。
出力されたファイルは、以下の通りだ。
図1:sample.png(画面全体のキャプチャ画像)
図2:sample_thumb1.png(ブラウザで表示された部分を抜き出した画像)
図3:sample_thumb2.png(ブラウザで表示された部分のサムネイル)
Categories: その他