每次加载时,Python 屏幕截图特定选项卡



问题:我想编写一个 Python 脚本,每次加载时都会截取我在浏览器中打开的网站的屏幕截图。

问题是我有一个网站,里面有大约 300 个考试问题,我可以通过,尝试每一个,当我提交答案时我会得到更正。在某个日期之后,我将无法访问此问卷,但我想保留这些问题(我可以写下来,但我的懒惰很强,并且想学习 Python(。

"尝试":我想用imgkit做一个简单的Python脚本来截取屏幕截图。我对其他建议持开放态度,因为 imgkit 是我在寻找这个时看到的第一件事,而且代码对我来说看起来简单明了:

import imgkit
imgkit.from_url('http://webpage.com', 'out.jpg')

但是我必须为每个网页提供网址,这将比使用操作系统功能截取屏幕截图更乏味,因此我想将其自动化。

问题:

  • 有一种方法可以让 Python监控浏览器选项卡并在每次重新加载时截取屏幕截图(这将是出现新问题时(?
  • 或者,也许获取选项卡的URL以将其传递给imgkit并截取屏幕截图。
  • 我看到的另一件事是imgkit可以从HTML文件生成"屏幕截图"。Python 可以从我在浏览器中打开的选项卡中下载 HTML 代码吗?

硒是你的朋友。它是一个专为测试而设计的框架,但它会使您想要的东西变得非常容易。

Selenium允许您启动Web浏览器并对其进行控制。因此,您可以指示它转到所需的网址,然后执行操作。通常你会指示它点击这里,写在表格中,等等。

在您的情况下,您只希望它打开某个地址,截取屏幕截图,转到下一个地址并重复。

在这里,您有一个关于如何完全按照自己的意愿进行操作的教程。

具体代码为:

from selenium import webdriver
#1. Get the driver to manage the web-browser you choose
driver = webdriver.Chrome()
#2. Go the the webadress you want
driver.get('https://python.org')
#3. Take a screenshot
driver.save_screenshot("screenshot.png")
driver.close()

PS:为了使本教程运行,您需要安装Selenium的网络驱动程序才能启动和运行Chrome。以下是相关说明。

最新更新