2013-12-12 1 views
0

나는 다 보았고 파이썬을 사용하여 vimeo 비디오를 다운로드하는 방법을 봅니다. 지금까지이 코드가 있습니다. 부모 페이지로 이동할 수는 있지만 iframe을 치기 위해 아무 것도 할 수 없습니다. 나는 이것을 할 수있는 가장 좋은 방법은 로그인과 iframe을 때리고 거기에서 비디오를 다운로드 생각했지만 뭔가가 누락되었습니다. 당신 중 누구도 아이디어가 있습니까? 더 많은 정보가 필요하면 언제든지 알려 주시고 언제든지 알려 주시기 바랍니다.파이썬을 사용하여 vimeo에서 삽입 된 Iframe 비디오를 다운로드

import spynner 
import os, sys, urllib 

os.system("dir") 

browser = spynner.Browser() 
#browser.show() 
url = 'https://somelink.php' 
browser.load("https://somelink2.php") 
browser.wk_fill("input[name=log]", "loginname") 
browser.wk_fill("input[name=pwd]", "password") 
browser.click("#wp-submit") 
print browser.url, len(browser.html) 
browser.load("http://somelink3-00000333/") 
browser.click("//player.vimeo.com/video/747474749") 
print browser.html 

다음은 다운로드하려는 임베디드 비디오입니다.

<iframe src="//player.vimeo.com/video/747474749" width="500" height="281" 
frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=""></iframe> 

답변

0

사이트는 클라이언트 측에서 Javascript를 실행할 수 있습니다. 간단히 말해서 링크를 액세스하는 자바 스크립트 만 있으면 충분합니다. javascript : window.location.href = "% s"; '% uls는 이것이 일어나는 데 필요한 모든 것입니다. 나는 그것이 다른 사람들을 미래에 돕기를 희망하며, 아마도 이것을 할 수있는 더 좋은 방법이 있음을 알려주세요.

def getvideourl(htmldoc): 
     downloadurls = re.findall("//player.+video.\d+", htmldoc) 
     for uls in downloadurls: 
      uls.encode('ascii','ignore') 
      javasinject = 'javascript:window.location.href="%s"; '%uls 
      return javasinject 

    def jsinject(link): 
     str(link) 
     browser.runjs(link) 


    jsinject(str(getvideourl(browser.html))) 
    browser._wait_load() 
관련 문제