我想从以下页面下载视频:
https://www.indiegogo.com/projects/protest-the-hero-new-album--3#/
使用Firebug,我可以看到视频的网址
<video src="https://09-lvl3-pdl.vimeocdn.com/01/1449/2/57246728/138634997.mp4?expires=1457996449&token=089e435c20e7781d36fce" preload="metadata">
</video>
然而,我试图使用Python来浏览页面,这句话丢失了,我无法获得网址。我也尝试过Selenium,但同样的问题仍然存在。如何使用我的刮刀访问视频网址?
此外,似乎视频网址无效。我怎样才能获得可以下载视频的网址?
答案 0 :(得分:1)
您可以使用selenium
解决此问题。
诀窍是所需的video
标记位于iframe
内 - 您需要切换到其上下文,然后搜索video
元素。然后,使用get_attribute()
获取src
属性值。完整的工作代码:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
browser = webdriver.Chrome() # or webdriver.Firefox(), or webdriver.PhantomJS() or etc.
wait = WebDriverWait(browser, 10)
browser.get('https://www.indiegogo.com/projects/protest-the-hero-new-album--3#/')
# waiting for the frame to become present
frame = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "#vimeoPlayer")))
browser.switch_to.frame(frame)
# get video url
url = browser.find_element_by_tag_name("video").get_attribute("src")
print(url)
browser.close()
打印:
https://09-lvl3-pdl.vimeocdn.com/01/1449/2/57246728/138634997.mp4?expires=1457998452&token=0c54810bc365a94ea8486