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

Python Selenium抓取网页表格报AttributeError的解决方法

问题原因
  • 触发AttributeError: 'list' object has no attribute 'text'的直接原因:调用的find_elements()方法返回值是匹配到的所有元素组成的列表,列表类型没有.text属性,只有单个网页元素对象才能通过.text获取文本内容。
  • 代码存在的其他问题:
    • 填写的目标站点地址错误,和要爬取的站点不一致
    • 手动配置的chromedriver路径存在系统适配问题:MacOS下的Chrome驱动是Unix可执行文件,不存在.exe后缀;且Selenium 4.6及以上版本内置了驱动自动匹配能力,不需要手动指定驱动路径
    • 全局检索所有tr标签会混入页面其他无关表格的行、表头行,且仅尝试提取第一列内容,无法拿到完整的多字段结构化数据
    • 没有加页面加载等待逻辑,页面渲染未完成时执行元素检索会拿到空结果或者报错
修正代码
from selenium.webdriver.common.by import By
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 初始化浏览器驱动,新版Selenium自动匹配对应版本chromedriver,无需手动指定路径
driver = webdriver.Chrome()
# 填入正确的目标站点地址
target_url = "https://sqlserverbuilds.blogspot.com/"
driver.get(target_url)

# 显式等待目标表格加载完成,最长等待10秒
wait = WebDriverWait(driver, 10)
data_table = wait.until(EC.presence_of_element_located((By.TAG_NAME, 'table')))

# 仅提取目标表格内的行,避免混入页面其他位置的无关元素
table_rows = data_table.find_elements(By.TAG_NAME, 'tr')
structured_result = []

# 提取表头作为结构化数据的字段名
table_headers = [header.text.strip() for header in table_rows[0].find_elements(By.TAG_NAME, 'th')]

# 遍历数据行(跳过第一行表头)
for row in table_rows[1:]:
    cells = row.find_elements(By.TAG_NAME, 'td')
    # 跳过无有效单元格的空行
    if len(cells) == 0:
        continue
    # 将单元格内容和表头字段一一对应,生成字典格式的行数据
    row_content = {}
    for idx, cell in enumerate(cells):
        if idx < len(table_headers):
            row_content[table_headers[idx]] = cell.text.strip()
    structured_result.append(row_content)

# 打印前5条数据验证结果
for record in structured_result[:5]:
    print(record)

# 抓取完成后关闭浏览器
driver.quit()
使用说明
  • 运行前请确保Selenium版本为4.6及以上,版本过低可执行pip install --upgrade selenium升级,升级后无需单独下载chromedriver
  • 得到的structured_result是标准的字典列表,可以直接传入pandas生成DataFrame,调用to_csv()或to_excel()方法即可导出为本地表格文件
  • 如果只需要提取指定列(比如版本号、发布日期、KB编号),直接从生成的行字典里按key取值即可,不需要单独写复杂的XPath定位

内容的提问来源于stack exchange,提问作者Arun C O

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 11:51:22