2016-07-16 65 views
1

如何在Python 3.5.1中使用Flash網站的scrennshot。我嘗試這樣的事情,但我看不到視頻圖像。Python中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') 
+0

您已經嘗試了不同的webdriver瀏覽器?例如。鉻? –

+0

這不起作用。只有PhantomJS正在工作。 :/ – Joozty

回答

1

短版:與YouTube的系統,如果你沒有按那個「播放」按鈕(開始播放)沒有視頻服務。通過瀏覽器加載頁面也是一種啓動播放的形式。然而,使用webshot不符合Youtube服務器的要求,所以它不會工作。

長版

我如何可以採取一個Flash網站的截圖......我試過,但我 不能看到視頻圖像。
webshot('https://www.youtube.com/watch?v=YQHsXMglC9A', 'screentest.png')

不能截圖YouTube視頻播放器的內容是這樣的。 YouTube的工作方式是當視頻頁面準備就緒時,訪問另一個PHP文件以確定視頻鏈接(例如:所選質量設置的正確文件等)。基本上你必須看起來像一個瀏覽器向他們的服務器發出HTTP請求。他們的服務器提供臨時令牌來訪問視頻鏈接,直到令牌過期等等。還有其他問題,如CORS處理。這些東西不是由你的工具完成的。

如果只有Youtube使用正常的<video tag>與簡單的MP4鏈接,那麼你的代碼將工作。

你能得到的最好的是像下面(看看有沒有控制?),使用:

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