抓页时无法找到视频网址

时间:2016-03-14 21:54:22

标签: python html selenium video web-scraping

我想从以下页面下载视频:

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&amp;token=089e435c20e7781d36fce" preload="metadata">
</video>

然而,我试图使用Python来浏览页面,这句话丢失了,我无法获得网址。我也尝试过Selenium,但同样的问题仍然存在。如何使用我的刮刀访问视频网址?

此外,似乎视频网址无效。我怎样才能获得可以下载视频的网址?

1 个答案:

答案 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