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