Python,获取嵌入视频时遇到问题 url

Python, trouble getting embedded video url

好吧,我已经在这个问题上挠头太久了。我正在尝试使用 Python 2.7.6 中的 Beautiful Soup 和请求模块检索网页上嵌入视频的 url。我检查了 chrome 中的 html,我可以看到视频中的 url,但是当我使用请求获取页面并使用 Beautiful Soup 时,我找不到 "video"节点。从源代码来看,视频 window 似乎是一个嵌套的 html 文档。我找遍了,找不到为什么我不能找回这个。如果有人能指出我正确的方向,我将不胜感激。谢谢

这是其中一个视频的 url:

http://www.growingagreenerworld.com/episode125/

问题是有一个iframe,里面有video标签,在浏览器中异步加载。

好消息是,您可以通过向 iframe URL 发出额外请求来模拟该行为,将当前页面 URL 作为 Referer 传递。

实施:

import re

from bs4 import BeautifulSoup
import requests

url = 'http://www.growingagreenerworld.com/episode125/'
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36'}

with requests.Session() as session:
    session.headers = headers

    response = session.get(url)

    soup = BeautifulSoup(response.content)

    # follow the iframe url
    response = session.get('http:' + soup.iframe['src'], headers={'Referer': url})
    soup = BeautifulSoup(response.content)

    # extract the video URL from the script tag
    print re.search(r'"url":"(.*?)"', soup.script.text).group(1)

打印:

http://pdl.vimeocdn.com/43109/378/290982236.mp4?token2=1424891659_69f846779e96814be83194ac3fc8fbae&aksessionid=678424d1f375137f