Python 中 flash 元素的屏幕截图

Screenshot of flash element in Python

如何在Python 3.5.1中对flash网站进行截图。我正在尝试这样的操作,但看不到视频图像。

from selenium import webdriver

def webshot(url, filename):
    browser = webdriver.PhantomJS()
    browser.get(url)
    browser.save_screenshot(filename)
    browser.quit()

webshot('https://www.youtube.com/watch?v=YQHsXMglC9A', 'screentest.png')

简短版:使用 Youtube 系统,如果您没有按下 "play" 按钮(开始播放),则不会提供视频。通过浏览器加载页面也是一种启动播放的形式。但是,使用 webshot 不满足 Youtube 服务器的要求,因此无法正常工作。

长版 :

How can I take a screenshot of a Flash website... I tried this but I can't see video image.
webshot('https://www.youtube.com/watch?v=YQHsXMglC9A', 'screentest.png')

您不能像这样截取 Youtube 的视频播放器内容。 Youtube 的工作方式是当视频页面准备就绪时,访问另一个 PHP 文件以确定视频 link(例如:所选质量设置的正确文件等)。基本上你必须看起来像一个 浏览器 向他们的服务器发出 HTTP 请求。他们的服务器提供临时令牌以访问视频 link 直到令牌过期等。还有其他问题需要处理,例如 CORS。这些事情不是由您的工具完成的。

如果 Youtube 使用普通的 <video tag> 和简单的 MP4 link 那么你的代码就可以工作了。

你能得到的最好结果如下(看看没有控件是怎么回事?)使用:

webshot('https://www.youtube.com/embed/YQHsXMglC9A', 'screentest.png')