本文介绍了Python Webkit使用虚拟帧缓冲区制作网站屏幕截图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问题是我需要在不运行X服务器的情况下捕获网站屏幕截图.

The problem is that I need capture web-site screenshots without running X server.

因此,从理论上讲,可以创建一个虚拟帧缓冲区并将其用于捕获屏幕截图.

So theoretically it's possible to create a virtual frame buffer and to use it to capture screenshot.

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

Is there any similar solutions, any advice would be appreciated?

苏丹

推荐答案

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

you can use a combination of Selenium WebDriver and pyvirtualdisplay (which uses xvfb) to run your browser in a virtual display and capture screenshots.

因此,您需要的设置是:

so, the setup you need is:

  • 硒Python绑定
  • pyvirtualdisplay Python软件包(取决于xvfb)

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

On Debian/Ubuntu Linux systems, you can setup everything with:

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

设置完成后,下面的代码示例应起作用:

once you have it setup, the following code example should work:

#!/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
  • 捕获屏幕截图
  • 关闭浏览器
  • 停止虚拟显示

这篇关于Python Webkit使用虚拟帧缓冲区制作网站屏幕截图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-21 13:09