繁体   English   中英

用python脚本拍摄打开的网站的屏幕截图

[英]Take a screenshot of open website in python script

我需要编写一个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系统上,您可以按照以下说明进行截图:

通过python脚本截屏。 [Linux的]

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

在Windows上使用python截屏的最快方法

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

在Mac OS X上以Python截屏

根据这个问题 ,您应该可以使用ImageGrab截屏。 由于ImageGrab使用PIL,因此它应该是跨平台的。 是一些示例代码,助您一臂之力

希望这可以帮助

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM