Python Webkit使用虚拟帧缓冲区制作网站截图

sul*_*tan 2 python webkit framebuffer pyqt4

问题是我需要捕获网站截图而不运行X服务器.

因此理论上可以创建虚拟帧缓冲区并使用它来捕获屏幕截图.

有没有类似的解决方案,任何建议将不胜感激?

苏丹

Cor*_*erg 7

您可以结合使用Selenium WebDriver和pyvirtualdisplay(使用xvfb)在虚拟显示器中运行浏览器并捕获屏幕截图.

所以,你需要的设置是:

  • Selenium Python绑定
  • pyvirtualdisplay Python包(取决于xvfb)

在Debian/Ubuntu Linux系统上,您可以使用以下命令设置所有内容:

  • $ 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()
Run Code Online (Sandbox Code Playgroud)

这将:

  • 启动虚拟显示
  • 启动Firefox浏览器
  • 导航到google.com
  • 捕获截图
  • 关闭浏览器
  • 停止虚拟显示