web_capture というコマンドラインツールを作りました。
これを使うとコマンドラインから Web サイトのスクリーンショットを作成することができます。
ダウンロード
GitHub に置いてあります。
jugyo’s web_capture at master — GitHub
以下のコマンドで取ってこれます。
git clone git://github.com/jugyo/web_capture.git
使い方
以下のようにしてコマンドを実行します。
xulrunner web_capture/application.ini -url <Web サイトの URL> -file <保存先のファイル名>
例えば、「http://jugyo.org/」のスクリーンショットを作成してカレントディレクトリに「screenshot.png」として保存したい場合は以下のようなコマンドを実行します。
xulrunner web_capture/application.ini -url http://jugyo.org/ -file screenshot.png
感想など
プログラムとしてはかなり小さくてシンプルなものなんですけど、作るのに意外と苦労しました。
ていうか、XUL ってなかなか難しいですね。
難しいんだけど、かなり簡単に Gecko の機能が使えて面白い。
canvas すごいっすね。
描画された Web ページの内容を簡単に取り込めたりとか。
処理の流れは以下のような感じです。
- XUL の browser という要素を使って Web ページを描画
- browser に表示された内容を、drawWindow という canvas 関連のメソッドを使って canvas 要素に描画
- canvas 要素に描画された内容を画像データに変換してファイルに保存
ファイルに保存したりするのもなにげに面倒くさい。
参考にしたページ
Latest topics > ウィンドウ全体を覆い隠してゴニョゴニョするためのライブラリを作った - outsider reflex
Latest topics > フォルダの指定で相対パスと絶対パスの両方の指定に対応する - outsider reflex
SCRAPBLOG : canvas要素によるWebページのスクリーンショット保存機能




