用python scrip截图打开网站

2024-04-29 22:18:27 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

编辑:

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


Tags: import脚本comapphttpsize网站link
3条回答

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

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

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

  • 在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

根据this question,您应该能够使用ImageGrab拍摄屏幕快照。因为ImageGrab使用PIL,所以这应该是跨平台的。Here是一些让您上路的示例代码

希望这有帮助

相关问题 更多 >