我需要编写一个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中打开了一个新的标签页,但没有截图
我希望解决方案是跨平台的。谢谢你的帮助:)
编辑:
这里的主要问题是脚本不能在我的网页完全打开之前拍照。如何解决这个问题?
这个解决方案是相当跨平台的,但是如果你想在桌面上显示一个打开的带有菜单/工具栏等的网页。。。这不是你想要的。
您可以使用SeleniumHQ自动选择一个浏览器,让该浏览器呈现页面,然后获取呈现页面的完整图像-即,而不仅仅是屏幕上显示的页面部分的屏幕截图。然后你可以相应地修剪。
我相信对于不同的操作系统,您需要不同的解决方案。用^{} 找出你在哪个平台上。剩下的你得自己弄清楚,但一个快速的互联网搜索显示:
Take a screenshot via a python script. [Linux]
Fastest way to take a screenshot with python on windows
Take screenshot in Python on Mac OS X
根据this question,您应该能够使用ImageGrab拍摄屏幕快照。因为ImageGrab使用PIL,所以这应该是跨平台的。Here是一些让您上路的示例代码
希望这有帮助
相关问题 更多 >
编程相关推荐