2011-07-04 18 views
2

問題は、Xサーバーを実行しないでWebサイトのスクリーンショットをキャプチャする必要があることです。Python Webkit仮想フレームバッファを使用したWebサイトスクリーンショットの作成

理論的には仮想フレームバッファを作成し、それを使ってスクリーンショットをキャプチャすることは可能です。

似たような解決策がありますか?アドバイスはありますか?

スルタン

答えて

7

あなたは仮想ディスプレイでブラウザを実行して、スクリーンショットをキャプチャする(XVFBを使用しています)セレンwebdriverをとpyvirtualdisplayの組み合わせを使用することができます。

ので、必要な設定は次のとおりです。

  • セレンPythonバインディング
  • pyvirtualdisplayのPythonパッケージは、Debianの/ Ubuntu Linuxのシステムで

(XVFBに依存)、あなたができるセットアップすべてと:

  • $ sudo apt-get install python-pip xvfb
  • $ sudo pip install selenium

あなたがそれを設定していると、次のコード例は動作するはずです:

#!/usr/bin/env python 

from pyvirtualdisplay import Display 
from selenium import webdriver 

display = Display(visible=0, size=(800, 600)) 
display.start() 

browser = webdriver.Firefox() 
browser.get('http://www.google.com') 
browser.save_screenshot('screenie.png') 
browser.quit() 

display.stop() 

この意志:

  • 打ち上げ仮想ディスプレイ
  • 打ち上げFirefoxブラウザ
  • google.comに移動
  • スクリーンショット
  • をキャプチャ
  • ブラウザを閉じ仮想ディスプレイに、我々は、画像の品質を低下させるんかコーリー・ゴールドバーグ@
+0

どうもありがとう@Coreyゴールドバーグ) – sultan

+0

を停止?画像は非常に高品質で重いです – Max

+0

最大、私はそれが設定可能(アフリカ)だとは思わないが、簡単にそれを行うために後処理プログラムを介して画像を実行することができます。 –

関連する問題