0

我实际上不确定它是否会尝试流式传输视频,解析 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)

我的问题是我是否可以设置某种参数来确保视频不会在页面请求时立即开始加载。

4

2 回答 2

1

在加载页面(以及页面引用的 Flash 播放器)之后,您的浏览器将在单独的请求中流式传输视频。视频不是页面数据本身的一部分。样式、脚本和图像也不是。它们都只是编码在 HTML 页面中供浏览器解释的引用。

仅请求页面本身并不会启动正在流式传输的视频,不。

换句话说,所有requests.get()将加载的是您的浏览器也加载的基本 HTML 标记。除非您随后解释该 HTML 标记并开始加载页面中引用的资源,否则您不会自动开始加载其他任何内容。

于 2013-02-21T21:27:16.747 回答
1

如何使用网络分析仪并查看视频的来源?到目前为止,我了解所有视频都来自一个主机名:例如:

s.ytimg.com/yt/swfbin/watch_as3.swf?video_id=YOUR_VIDEO_ID&autoplay=1

并且autoplay将是 1 - 开始播放或 0。

如果video_id不再存在,您将Invalid parameters在屏幕上看到类似的内容。

于 2013-02-21T22:28:14.770 回答