2016-07-16 7 views
1

Python 3.5.1でFlash Webサイトの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サーバーの要件を満たしていないため、動作しません。

ロングバージョン

は、どのように私はこれを試してみましたが、私はビデオ画像を見ることができない ...フラッシュのウェブサイトのスクリーンショットを撮ることができます。
webshot('https://www.youtube.com/watch?v=YQHsXMglC9A', 'screentest.png')

次のようなYouTubeのビデオプレーヤーのコンテンツをスクリーンショットすることはできません。 Youtubeの仕組みは、ビデオページの準備ができたら、別のPHPファイルにアクセスしてビデオリンクを決定します(たとえば、選択した品質設定の正しいファイルなど)。基本的にはブラウザのように、サーバーにHTTPリクエストを送信する必要があります。彼らのサーバーは、トークンが期限切れになるまでビデオリンクにアクセスするための一時的なトークンを与えます。CORSのような他の問題があります。これらのことは、あなたのツールによって行われていません。

だけYouTubeのは、単純なMP4リンクで通常の<video tag>を使用した場合、あなたのコードが働いてきたでしょう。

あなたが得ることができる最高のは、以下のようなものです(何のコントロールがないかを確認?)を使用して:

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

関連する問題