2013-12-12 153 views
0

我一直在尋找所有,我看到如何使用python下載vimeo視頻。我到目前爲止有這個code.I可以到達父頁面,但我無法做任何事情來擊中該iframe。我想這樣做的最好方法是登錄並打開iframe並從那裏下載視頻,但我錯過了一些東西。你們有沒有任何想法? 讓我知道你是否需要更多的信息,並一如既往地感謝你的時間。使用python從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訪問鏈接就足夠了。 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()