2016-07-16 2 views
1

어떻게 파이썬 3.5.1에서 플래시 웹 사이트의 장면을 찍을 수 있습니까? 나는 이와 같은 것을 시도하지만 비디오 이미지를 볼 수 없다.Python의 플래시 요소 스크린 샷

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

짧은 버전 : 당신이 버튼을 "재생"고 누르지 않은 경우 유튜브 시스템으로 (재생을 시작)은 더 비디오가 제공되지있다. 브라우저를 통해 페이지를로드하는 것도 재생을 시작하는 한 가지 방법입니다. 그러나 webshot을 사용하면 Youtube 서버의 요구 사항을 충족시키지 않아 작동하지 않습니다.

긴 버전 :

어떻게 내가이 시도하지만 비디오 이미지를 볼 수 없습니다 ... 플래시 웹 사이트의 스크린 샷을 걸릴 수 있습니다.
webshot('https://www.youtube.com/watch?v=YQHsXMglC9A', 'screentest.png')

이 같은 유튜브의 동영상 플레이어의 내용을 스크린 샷 수 없습니다. Youtube의 작동 방식은 비디오 페이지가 준비되면 다른 PHP 파일에 액세스하여 비디오 링크를 결정합니다 (예 : 선택한 품질 설정에 맞는 올바른 파일 등). 기본적으로 브라우저에 브라우저과 같은 것으로 나타나야합니다. 그들의 서버는 토큰이 만료 될 때까지 비디오 링크에 액세스하기 위해 임시 토큰을 제공합니다. CORS와 같은 다른 문제가 있습니다. 이러한 작업은 도구로 수행되지 않습니다.

Youtube가 단순한 MP4 링크로 보통 <video tag>을 사용한 경우 코드가 작동했을 것입니다.

당신이 얻을 수있는 최선은 다음과 같다 (어떤 컨트롤이없는 방법을 볼?)를 사용하여 :

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