我想使用 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 上查找了一个页面,看来您要查找的内容不在原始来源中(至少不在您期望的位置)。有些脚本会在浏览器呈现页面时创建内容。根据我的经验,您有几种选择。
使用评论者建议的 API 之一。我对这些不是很熟悉,但可能会花费你一些时间和精力。由于页面格式的变化(脚本可能需要更新),网页抓取可能会出现问题。
如果您坚持进行网页抓取,可以使用自动浏览器。我曾经定期使用 Selenium,它应该可以满足您的目的。这将允许您使用脚本生成的内容。
我查看了页面源代码,您要查找的信息似乎包含在某些标记中,但解析它会很痛苦。
关于python - 使用python从youtube抓取视频信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57649734/