python - 使用python从youtube抓取视频信息

标签 python web youtube web-crawler

我想使用 python 提取某个 Youtube 视频的视频信息(如标题、观看者数量),就像我在其他网站上进行网页抓取一样。但由于某种原因,它要么不返回任何内容,要么只为侧面推荐的视频提供标签,而不是 URL 的“主视频”

我尝试了与在其他网站上进行网页抓取相同的代码,如下所示。显然它在 YouTube 上不起作用。如果我想根据youtube URL获取视频信息该怎么办?

import requests
from bs4 import BeautifulSoup

base_url ='https://www.youtube.com/watch?'
search_string = 'v=I41aLSzLI50'
url = base_url + search_string
supers=requests.get(url).content    
data = BeautifulSoup(supers,'html.parser')
videos =data.find_all('a', class_= 'content-link spf-link yt-uix-sessionlink spf-link')
for video in videos:
    print(video.find('span', class_='title').get_text())

最佳答案

我在 YouTube 上查找了一个页面,看来您要查找的内容不在原始来源中(至少不在您期望的位置)。有些脚本会在浏览器呈现页面时创建内容。根据我的经验,您有几种选择。

  1. 使用评论者建议的 API 之一。我对这些不是很熟悉,但可能会花费你一些时间和精力。由于页面格式的变化(脚本可能需要更新),网页抓取可能会出现问题。

  2. 如果您坚持进行网页抓取,可以使用自动浏览器。我曾经定期使用 Selenium,它应该可以满足您的目的。这将允许您使用脚本生成的内容。

  3. 我查看了页面源代码,您要查找的信息似乎包含在某些标记中,但解析它会很痛苦。

关于python - 使用python从youtube抓取视频信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57649734/

相关文章:

javascript - 如何使用 Youtube JS api 控制多个 Youtube 视频的播放?

python - Scipy 和 Ipython 笔记本 : how to save and load results?

javascript - 事情。 js 检查 body 是否停止移动

python - 如何使用 python 以编程方式从 MusicBrainz 检索编辑历史页面?

xml - Youtube API从XML获取视频时长

php - 通过curl在youtube视频上发表评论

python - 如何检查python panda中特定范围内的日期时间列?

python - 如何处理和提取图像中的文本

python - 我如何检查 Python unicode 字符串以查看它*实际上*是正确的 Unicode?

c - 从c中的tcp套接字读取数据,并卡住数据而不将其复制到用户空间