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

Python+Selenium网页爬取遇AttributeError:WebDriver无find_elements_by_xpath属性

问题解决:Selenium爬取表格的两个错误及代码修正

错误原因及修复方案

1. DeprecationWarning: executable_path已弃用

Selenium 4.x版本起,不再支持直接将驱动路径传入webdriver.Chrome(),必须通过Service对象来配置驱动路径。

修复方法:

  • 导入selenium.webdriver.chrome.service.Service类
  • 创建Service对象并传入驱动路径,再将其作为参数传给webdriver.Chrome()
  • 也可以使用ChromeDriverManager自动下载管理驱动(推荐,避免手动维护驱动版本)

2. AttributeError: 'WebDriver' object has no attribute 'find_elements_by_xpath'

Selenium 4.x移除了find_elements_by_*系列方法,统一使用find_elements()结合By类来指定定位方式。

修复方法:

  • 导入selenium.webdriver.common.by.By类
  • 将driver.find_elements_by_xpath('xxx')替换为driver.find_elements(By.XPATH, 'xxx')

代码中其他问题

  • XPath的索引从1开始,原代码中td[0]无效,需改为td[1]对应第一列(Scheme),td[2]对应第二列(Benchmark)
  • 循环变量riskometer未定义,需改为scheme或benchmark的长度
  • 元素列表不能直接调用.text,需遍历每个元素单独获取文本

修正后的完整代码

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
import pandas as pd

# 方法1:手动指定驱动路径
service = Service('C:\webdrivers\chromedriver.exe')
driver = webdriver.Chrome(service=service)

# 方法2:使用ChromeDriverManager自动管理驱动(需先安装:pip install webdriver-manager)
# from webdriver_manager.chrome import ChromeDriverManager
# driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))

driver.get('https://www.mutualfundssahihai.com/en/schemeperformance')
driver.maximize_window()

# 修正XPath索引,改用By.XPATH定位
scheme_elements = driver.find_elements(By.XPATH, '//tbody/tr/td[1]')
benchmark_elements = driver.find_elements(By.XPATH, '//tbody/tr/td[2]')

result = []
# 遍历元素列表,获取每个元素的文本
for i in range(len(scheme_elements)):
    temporary_data = {
        'Scheme': scheme_elements[i].text,
        'Benchmark': benchmark_elements[i].text
    }
    result.append(temporary_data)

df_data = pd.DataFrame(result)
df_data.to_excel('scrapingresult.xlsx', index=False)

# 记得关闭驱动
driver.quit()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 12:15:30