用python脚本截图打开网站

用python脚本截图打开网站,python,browser,screenshot,screensaver,wxwidgets,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(

我需要编写一个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中打开了一个新标签,但没有截图:(

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

编辑:

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

根据,您应该能够使用截图。因为ImageGrab使用PIL,所以这应该是跨平台的。这是一些示例代码,可以帮助您上路

希望这有助于

根据,您应该能够使用拍摄屏幕截图。因为ImageGrab使用PIL,所以这应该是跨平台的。这是一些示例代码,可以帮助您上路


希望这对您有所帮助

我相信您需要针对不同操作系统的不同解决方案。用于查找您所在的平台。剩下的你得自己弄清楚,但一个快速的互联网搜索显示:

  • 在Linux系统上,您可以按如下所述拍摄屏幕截图:

  • 在Windows系统上,您可以根据以下答案创建解决方案:

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

我相信,对于不同的操作系统,您需要不同的解决方案。用于查找您所在的平台。剩下的你得自己弄清楚,但一个快速的互联网搜索显示:

  • 在Linux系统上,您可以按如下所述拍摄屏幕截图:

  • 在Windows系统上,您可以根据以下答案创建解决方案:

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

此解决方案相当跨平台,但如果您试图在带有菜单/工具栏等的桌面上显示打开的某个网页。。。这不是你想要的


您可以使用来自动选择浏览器,让该浏览器呈现页面,然后获取呈现页面的完整图像-即,而不仅仅是屏幕上显示的页面部分的屏幕截图。然后您可以相应地裁剪它。

此解决方案相当跨平台,但如果您试图在带有菜单/工具栏等的桌面上显示一个打开的网页。。。这不是你想要的


您可以使用来自动选择浏览器,让该浏览器呈现页面,然后获取呈现页面的完整图像-即,而不仅仅是屏幕上显示的页面部分的屏幕截图。然后你可以相应地裁剪它。

好的,我会尝试一下,但仍然存在一个问题,我的脚本在我的网页完全打开之前截图:(看[这个问题]),这意味着等待网页完全加载。你可能需要使用seleniumok,我会尝试一下,但仍然存在一个问题,我的脚本在我的网页完全打开之前截图:(看[这个问题]),这意味着等待网页完全加载。您可能需要使用seleniumI,因为您不知道
webbrowser
模块的功能。如果没有任何类型的从浏览器到控制Python脚本的回调指示页面加载已完成,那么您只剩下一个选项:等待一个固定的时间并使其足够长:例如
time.sleep(5)
。我不知道您的
webbrowser
模块能做什么。如果没有任何类型的从浏览器到控制Python脚本的回调指示页面加载已完成,那么您只剩下一个选项:等待一个固定的时间并使其足够长:例如
time.sleep(5)