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

Python Selenium 获取class为lien-jv topic-title元素的title无输出如何解决

问题排查及解决方法

核心错误点

  • CSS选择器语法错误
    你写的lien-jv topic-title不符合CSS选择器规则:
    1. 类名选择器必须加前缀.
    2. 匹配同时拥有两个类的同一个元素,类名之间不能加空格,空格代表匹配前者的后代节点中类为后者的元素,正确写法是.lien-jv.topic-title
  • 元素属性获取方式错误
    Selenium的WebElement对象没有直接的.title属性,获取元素标签的title属性需要调用get_attribute('title')方法。

修正后的可运行代码

import os
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

os.system('cls')

# 若使用Selenium 4+,可以直接省略executable_path,会自动匹配本机安装的Chrome对应驱动
browser = webdriver.Chrome(executable_path=r"C:\Users\Desktop\Webdriver\chromedriver.exe")
browser.get('https://www.jeuxvideo.com/forums/0-51-0-1-0-1-0-blabla-18-25-ans.htm')

# 显式等待替代固定sleep,最多等10秒直到目标元素加载完成,稳定性更高
try:
    WebDriverWait(browser, 10).until(
        EC.presence_of_element_located((By.CSS_SELECTOR, '.lien-jv.topic-title'))
    )
except:
    print("页面加载超时,未找到目标元素")
    browser.quit()
    exit()

list_topic_main = browser.find_elements(By.CSS_SELECTOR, '.lien-jv.topic-title')
for x in list_topic_main:
    print(x.get_attribute('title'))

browser.close()
os.system('pause')

额外排查思路

如果修改后还是取不到内容,可以先输出len(list_topic_main)检查是否匹配到了元素:

  • 若长度为0,说明页面可能有反爬机制、需要登录才能查看内容、或者元素选择器还是不对,可以打印browser.page_source查看当前拿到的页面源码确认元素是否存在
  • 若长度大于0,说明属性获取逻辑有问题,可以先打印x.get_attribute('outerHTML')查看匹配到的元素结构确认属性名是否正确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 12:45:04