You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用BeautifulSoup4爬取YouTube首页视频作者无返回结果如何解决

解决方案

问题原因

  • class属性匹配规则错误:HTML中class属性的空格是多个独立类名的分隔符,直接传入带空格的字符串作为class_参数时,BeautifulSoup会将其识别为单个完整类名,无法匹配到对应元素。
  • 静态请求无法获取动态渲染内容:YouTube首页的视频、作者等核心内容都是页面加载完成后通过JavaScript异步请求渲染的,直接用urllib发起请求拿到的初始源码中不存在目标标签,就算class规则写对也匹配不到结果。

修复步骤

修正class匹配规则

将class_参数的字符串改为包含所有待匹配类名的列表:

# 错误写法
# soup.find_all('a', class_='yt-simple-endpoint style-scope yt-formatted-string')
# 正确写法
soup.find_all('a', class_=['yt-simple-endpoint', 'style-scope', 'yt-formatted-string'])

使用支持JS渲染的工具获取页面源码

使用Selenium模拟浏览器访问,拿到完全渲染后的页面源码再解析,完整可运行代码如下:

from selenium import webdriver
from bs4 import BeautifulSoup as bs
import time

# 需提前安装对应浏览器驱动,例如Chrome对应chromedriver
driver = webdriver.Chrome()
driver.get('https://www.youtube.com/')
# 等待页面渲染完成,可根据网络情况调整等待时长
time.sleep(3)
source = driver.page_source
driver.quit()

soup = bs(source, 'lxml')
for author_tag in soup.find_all('a', class_=['yt-simple-endpoint', 'style-scope', 'yt-formatted-string']):
    # 提取标签内的文本即为作者名称
    print(author_tag.text.strip())

如果需要获取更多作者信息,可以添加模拟页面滚动的逻辑,触发YouTube加载更多内容。

内容的提问来源于stack exchange,提问作者Ian Kilty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 01:54:04