Python Webkit making web-site screenshots using virtual framebuffer

后端 未结 1 1624
-上瘾入骨i
-上瘾入骨i 2021-01-15 06:09

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 c

相关标签:
1条回答
  • 2021-01-15 06:33

    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:

    • Selenium Python bindings
    • pyvirtualdisplay Python package (depends on xvfb)

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

    • $ 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()
    

    this will:

    • launch a virtual display
    • launch Firefox browser
    • navigate to google.com
    • capture a screenshot
    • close the browser
    • stop the virtual display
    0 讨论(0)
提交回复
热议问题