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

标签 python webkit pyqt4 framebuffer

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

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

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

苏丹

最佳答案

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

因此,您需要的设置是:

  • Selenium Python 绑定(bind)
  • 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()

这将:

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

关于Python Webkit 使用虚拟帧缓冲区制作网站截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6572575/

相关文章:

Python 导入错误 : No module named 'convert.py'

python - 调整窗口大小不会调整 tkinter 中的内容

python - 如何使用 pandas read_csv 加载分类变量?

CSS 幻灯片。只有第二张幻灯片闪烁。并且仅在 Chrome/Safari 中

PyQt4 setParent vs deleteLater

用于读/写的 Python 3.3 Pickle 错误

java - 在 Java 中使用 WebKit 呈现网页

audio - 使用getUSerMedia和webkitSpeechRecognition允许访问x 2

python - 如何将键 (QtCore.Qt.Key_1) 分配给 python 中的按钮。数字键盘

Python: Qt4: 'QListView' 对象没有属性 'addColumn'