实际上,我不确定它是否尝试流式传输视频,解析YouTube页面所需的时间仅比正常情况下长几秒钟。
我想解析一个随机的Youtube视频页面,以查看是否已删除它,并且我希望确保加载除视频本身以外的所有内容。我有下面的代码可以正常工作,只是花了一段时间才完成(我假设视频开始加载会减慢速度,虽然尚未测试确认)
import requests, bs4
url = 'https://www.youtube.com/watch?v=XYZ'
parameters = {'magic_var' : 'no_load'}
r = requests.get(url, params=parameters)
soup = bs4.BeautifulSoup(r.content)
我的问题是,是否可以设置某种参数来确保视频不会在页面请求上立即开始加载。
最佳答案
浏览器加载页面(和页面引用的Flash Player)后,将在单独的请求中流式传输视频。视频不是页面数据本身的一部分。样式,脚本和图像都没有。它们都是HTML页面中编码的引用,供浏览器解释。
仅仅请求页面本身并不会启动视频流,否。
换句话说,所有requests.get()
将加载的是浏览器也加载的基本HTML标记。除非您随后解释该HTML标记并开始加载页面中引用的资源,否则您将不会自动开始加载其他内容。
关于python - 如何在不开始流式传输视频的情况下检索YouTube页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15012461/