Web ページをキャプチャーする
Google マップで超デカくて超細かい地図を印刷するという記事 で、Google Maps をキャプチャーするツールが紹介されていました。この記事をきっかけに、以前、Web ページをキャプチャーする(スクリーンショットを撮る)ツールを作っていたことを思い出しました。本来は BIG-IP 等、Web ブラウザからのアクセスを中心に設定する機器の設定画面(Web ページ)を証跡として残しておきたい、という動機から自作したのですが、知人が「Google Maps で、好きな大きさの地図をキャプチャー出来たら面白くない?」というアイデアがあり、当初の目的からは方向性が逸れていってしまいました...ついでに(?)、Google Maps 用に少し改造したのでアップロードしておきます。
- WebCap-0.0.0.3
.NET Framework 3.5 でビルドしてあり、内部的には IE コンポーネントを利用して Web ページをキャプチャーしているので、レンダリング結果も IE と同じになっているはずです。以下のような特徴があります。
- コマンドラインから利用出来るので、バッチファイルに組み込んで自動化しやすい
- 縦長のページも問題無く、最上部から最下部までキャプチャー出来る
- UserAgent を指定出来るので、「iPhone では、どう見えるのか?」といったテストが出来る
- 様々な画像フォーマットで出力出来る
- Google Maps をキャプチャーした場合は、上部の検索窓や左側のナビゲーションメニューを非表示にしてくれる
使い方¶
コマンドラインから利用します。「WebCap 対象URL」に続けて、以下のようなオプションを指定することが出来ます。全てのオプションは任意です。
- -a ユーザエージェント
- ユーザーエージェントを指定します (デフォルトでは「Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0)」)
- -f 出力フォーマット
- キャプチャーした画像を保存するフォーマットを BMP、GIF、JPG、PNG、TIF の中から指定します (デフォルトでは PNG フォーマット)
- -u
- URL をキャプチャー画像下部に書き込みます
- -o 出力ファイル名
- キャプチャーした画像を保存する際のファイル名を指定します
- -t 待ち時間
- Web ページが表示されてからキャプチャーするまでの待ち時間をミリ秒で指定します
- -w 画像の幅
- キャプチャーする画像の幅を指定します (デフォルトでは 800 ピクセル)
- -h 画像の高さ
- キャプチャーする画像の高さを指定します (デフォルトでは 600 ピクセル)
キャプチャーしてみる¶
試しに Yahoo! をキャプチャーしてみます。コマンドプロンプトから以下のように指定するだけです。キャプチャーが完了した後は、URL を HTTP エンコードしたものになります。http や https を省略すると、自動的に http 扱いとなります。
1 |
|
ユーザエージェントを指定する¶
今度は Yahoo! へ、ユーザエージェントを iPhone にしてキャプチャーしてみます。iPhone の画面幅に合わせる為、-w オプションで幅を 320 ピクセルにしています。
1 |
|
キャプチャー結果の画像は以下のようになりました。
Google Maps をキャプチャーしてみる¶
Google Maps のキャプチャー例として東京ドームをキャプチャーしてみます。-w で幅を 500 ピクセルに、-h オプションで高さも 500 ピクセルに指定しています。また、出力ファイル名を「TokyoDome」と指定していますが、拡張子は画像ファイルのフォーマットに応じて、自動的に補完されます。念のため、-t オプションで地図が全部表示されてからキャプチャーされるように待ち時間を 1,000 ミリ秒(つまり、1 秒)、指定しています。
1 |
|
キャプチャー結果の画像は以下のようになりました。
上の画像のように、キャプチャー対象が Google Maps の場合に限り、上部の検索窓と左側のナビゲーションメニューを除外した上で、指定したサイズの画像をキャプチャーします。例えば、5,000 ピクセル x 5,000 ピクセルのような、一般的なブラウザでは表示し辛いサイズの画像もキャプチャーすることが可能です。
画像に URL も記載する¶
-u オプションを指定すると、キャプチャーした画像の下部に対象 URL を記載しておく(画像の中に埋め込んでおく)ことが出来ます。-u オプションを指定してキャプチャーした結果は以下のようになります。
画像下部に http://www.apple.com.jp という文字列が記載されているのが分かります。