You need to enable JavaScript to run this app. Selenium爬取会议会话列表 无法获取下拉展开项内标题问题求助
优惠活动
大模型
产品
解决方案
定价
更多

Selenium爬取会议会话列表 无法获取下拉展开项内标题问题求助

问题核心错误点
  • 类名选择方法使用错误:find_elements_by_class_name仅支持传入单个类名,你传入的item-expand-action expand是两个拼接的类名,无法匹配到元素;且该方法返回的是元素列表,直接调用click()方法会触发异常,你的空except块吞掉了所有报错,所以看不到问题提示。
  • 页面源码未同步更新:你仅在页面加载完成后提取了一次静态源码生成BeautifulSoup对象,后续点击展开的动态内容没有同步到该对象中,无法解析到下拉菜单里的标题。
  • 元素查找范围错误:全局查找下拉按钮无法准确定位到当前遍历行对应的触发按钮,很容易出现匹配错误。
修正后的可运行代码
from selenium import webdriver
from selenium.webdriver.common.by import By
import time

driver = webdriver.Chrome()
driver.get('https://cslide.ctimeetingtech.com/esmo2021/attendee/confcal/session/list')
time.sleep(4)

# 直接通过Selenium遍历元素,避免静态源码不同步的问题
product_list = driver.find_elements(By.CSS_SELECTOR, 'div.card.item-container.session')
for item in product_list:
    # 提取当前行主标题
    session_title = item.find_element(By.CSS_SELECTOR, 'h4.session-title.card-title').text.strip()
    print(session_title)
    try:
        # 查找当前行内的展开按钮,匹配两个类名用CSS选择器
        expand_btn = item.find_element(By.CSS_SELECTOR, '.item-expand-action.expand')
        expand_btn.click()
        time.sleep(2)
        # 提取展开后的子标题
        sub_titles = item.find_elements(By.CSS_SELECTOR, 'h4.card-title')
        for title in sub_titles[1:]: # 跳过已经打印过的主标题
            print(title.text.strip())
    except Exception:
        # 没有展开按钮直接跳过
        pass

driver.quit()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 03:45:03