phantomjsで大きいページをレンダリングする時はトリミングしたほうが良い
phantomjsでキャプチャをとる時に、ページがあまりにも大きいとCPUを長時間食いまくるので、単純なサムネイル的にキャプチャ取りたいだけならサイズを制限してレンダリングした方がよいです。
Backbone.jsのサイトとかキャプチャしようとすると、死にます。
WIDTH = 1024 HEIGHT = 768 OUTPUT_PATH = '/tmp/cap.png' page.viewportSize = { width: WIDTH, height: HEIGHT } page.open address, (status) -> if status isnt 'success' console.log 'Unable to load the address!' phantom.exit 1 else window.setTimeout (-> page.clipRect = {left: 0, top:0, width: WIDTH, height: HEIGHT} page.render(OUTPUT_PATH) phantom.exit() ), 200
ほぼサンプルどおりなのですが、page.render()
の前にpage.clipRect
でrender()の範囲を制限しているのがポイントです。