Selenium+PhantomJSで縦長のスクリーンショットを撮る

ウェブブラウザのスクリーンショットは画面の大きさしか撮れないのだが(当たり前)、ポスター発表の際に縦長のそれを作成して説明に使いたい時がある。それを実現するのに良いツールに思わぬ所で出くわしたので、それをφ(..)メモメモ。諸般の事情によりpythonで。

まずは、Selenium WebDriverに対するpythonのbindingパッケージを入れます。

[shell] pip install selenium [/shell]

などとして。

次にPhantomJSを。こちらはhomebrewで。

[shell] brew install -v phantomjs [/shell]

そして、スクリーンショットを撮るコード。ウェブブラウザを起動することなく撮ることができます。 [python] from selenium import webdriver import time driver = webdriver.PhantomJS() driver.get("http://sra.dbcls.jp/") driver.save_screenshot("DBCLSSRA_top.png") driver.quit() [/python] ここではhttp://sra.dbcls.jp/の縦長なトップページのスクリーンショットを撮り、DBCLSSRA_top.pngというファイル名で保存しています。具体的には、上のコードをscreenshot.pyというファイル名で保存し、 [shell] python screenshot.py [/shell] とすることで同じディレクトリにpngファイルが生成されます。

@fmkz___さんのShizuoka.py#3の発表「エンジョイ☆スクレイピング」のスライドにあるコードほとんどそのままで利用させてもらいました。ありがとうございましたm(__)m


Written by bonohu in misc on 土 19 7月 2014.