如何使用Selenium Python通过类名和text属性正确获取Youtube视频标题
问题原因
你使用的style-scope ytd-video-primary-info-renderer是视频主信息区块的通用类,对应DOM节点包含了标题、播放量、发布时间、点赞栏等全部内容,提取text自然会返回多余信息。
修复方案
直接定位到标题专属的DOM节点即可,有两种常用稳定定位方式:
最简修复版(适配你现有写法)
直接把定位代码替换成css选择器定位标题专属节点即可:
# 替换原有test_atr赋值的那一行就行 test_atr = driver.find_element_by_css_selector('h1.ytd-video-primary-info-renderer').text
优化版(适配Selenium 4+标准写法,稳定性更高)
替换硬等待为显式等待,避免网络波动导致找不到元素,同时用官方推荐的By类写法,兼容性更强:
from selenium import webdriver as wd from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC driver = wd.Firefox(executable_path=r'./geckodriver.exe') driver.get('https://www.youtube.com/watch?v=wma0szfIafk') # 显式等待最多10秒,直到标题元素加载完成再取值 test_atr = WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.CSS_SELECTOR, 'h1.ytd-video-primary-info-renderer')) ).text print(test_atr) driver.quit()
内容的提问来源于stack exchange,提问作者inblqck
相关产品推荐
相关产品推荐

