スクリプトでWebページを保存するにはwgetを使えば簡単に実現できますが、これはあくまでもhtmlファイルや画像ファイルをそのまま保存するだけです。
Webページの表示そのものを画像として保存するには、ブラウザで表示して画面キャプチャすればよいのですが、これはスクリプトではできません。そういうときはwkhtmltopdf というツールが便利。Webページの表示をPDFや画像として保存できます。
PDFで保存するときは、 wkhtmltopdfコマンド を、画像で保存する場合はwkhtmltoimageコマンドを使用します。
使い方は簡単で画像の場合は、
# wkhtmltoimage.exe http://www.google.co.jp/ google.jpg
で画像化できます。オプション–crop-h –crop-wを使えば一部を切り出すこともできます。
# wkhtmltoimage.exe --crop-h 500 --crop-w 700 http://www.google.co.jp/ google.jpg
上記の例では左上を基準に高さ300ピクセル、幅700ピクセルで保存されます。
切り出しの始点は、–crop-x や–crop-y で変更可能です。
# wkhtmltoimage.exe --crop-h 300 --crop-w 700 --crop-x 100 --crop-y 100 http://www.google.co.jp/ google.jpg
JavaScriptも処理できますので、Google Mapなども切り出し可能です。しかし画像のロードが遅延すると完全なマップがとりだせません。そういうこときは、–javascript-delay や –load-error-handling オプションを使ってあげます。また、–widthで前提とするブラウザの画面の横幅を変更することも可能です。
# wkhtmltoimage.exe --width 1280 --javascript-delay 10000 --load-error-handling ignore ・・・・以下省略