如何使用python拍摄给定URL的屏幕截图

时间:2019-12-13 11:38:54

标签: javascript python python-3.x selenium selenium-webdriver

我正在尝试从给定的URL截屏。在javascript中尝试了html2canvas库,因为它不支持某些CSS格式,所以将其删除。现在尝试使用python和selenium或任何其他库来捕获给定URL的屏幕截图。

我已经经历了以前的解决方案,而我面临的是

1.pyqt4 -即使安装pyqt4后,也不会遇到名为“ PyQt4.QtWebKit”的模块错误。

2.selenium -该代码未获取整个页面滚动的屏幕截图。

3.phantom.js -提供某些网站的浮点转储错误

硒的示例代码:

htmlwidgets::saveWidget(as_widget(p), file = "x.html")

环境:

操作系统:ubuntu 18.04

python:3.6

预期输出:(任何人)

1。捕获图像的数据URL

2。捕获的图像(滚动显示)

我的代码有什么问题?有其他选择吗?

1 个答案:

答案 0 :(得分:3)

您尝试使用Pyppeteer https://github.com/miyakogi/pyppeteer吗?

使用fullPage参数可以截取整个页面的屏幕截图。

import asyncio
from pyppeteer import launch

async def main():
    browser = await launch(headless=True)
    page = await browser.newPage()

    await page.goto('https://stackoverflow.com/questions/51000899/better-way-to-take-screenshot-of-a-url-in-python')
    await page.screenshot({'path': 'screen.png', 'fullPage': True})
    await browser.close()


asyncio.get_event_loop().run_until_complete(main())