python - 在python脚本中截取打开网站的屏幕截图

标签 python browser screenshot screensaver wxwidgets

我需要编写一个 python 脚本来打开一个网站,当网站完全打开时,它会截取打开的网站的屏幕截图。

我是这样写的:

import webbrowser
import wx

wx.App()
link = "http://stackoverflow.com/questions"
webbrowser.get('firefox %s').open_new_tab(link)
screen = wx.ScreenDC()
size = screen.GetSize()
bmp = wx.EmptyBitmap(size[0], size[1])
mem = wx.MemoryDC(bmp)
mem.Blit(0, 0, size[0], size[1], screen, 0, 0)
del mem
bmp.SaveFile('screenshot.png', wx.BITMAP_TYPE_PNG)

它只会在 firefox 中打开一个新选项卡,但不会对其进行屏幕截图:(

我希望解决方案是跨平台的。感谢您的帮助:)

编辑:

这里的主要问题是脚本不能在我的网页完全打开之前拍照。如何解决该问题?

最佳答案

我相信您需要针对不同操作系统的不同解决方案。使用 sys.platform找出你在哪个平台上。其余的你必须自己弄清楚,但快速的互联网搜索显示:

  • 在 Linux 系统上,您可以按照此处所述获取屏幕截图:

Take a screenshot via a python script. [Linux]

  • 在 Windows 系统上,您可以将您的解决方案基于以下答案:

Fastest way to take a screenshot with python on windows

  • 在 Mac 系统上,这将有助于:

Take screenshot in Python on Mac OS X

关于python - 在python脚本中截取打开网站的屏幕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12563350/

相关文章:

python - 否则缩进错误: unexpected unindent in PyCharm

python - Numpy Matrix 不断给我一个错误,

ios - 如何获取默认的 iOS 浏览器名称?

android - 自动截取正在运行的 Android 应用程序的应用程序商店 promise 的屏幕截图

linux - 从命令行将图像复制到剪贴板

python - 内存游戏,检测两个图像相同的问题

python - 如何使用pandas使用zstandard压缩parquet文件

javascript - 为什么 scrollWidth 只包括左填充?

internet-explorer - 如何最好地说服人们升级 IE?

wpf - 不能在两个线程中同时使用 Window 控件