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

Python Selenium的find_elements_by_class_name失效及商品价格提取问题

方法弃用问题修复

Selenium 4.0及以上版本已经废弃所有find_element_by_*、find_elements_by_*系列定位方法,正确用法如下:

  1. 先导入By类
from selenium.webdriver.common.by import By
  1. 替换原有定位写法:
  • 原单元素定位:driver.find_element_by_class_name("money-details")
  • 替换后:driver.find_element(By.CLASS_NAME, "money-details")
  • 原多元素定位:driver.find_elements_by_class_name("money-details")
  • 替换后:driver.find_elements(By.CLASS_NAME, "money-details")

如果PyCharm仅推荐旧方法,可执行pip install --upgrade selenium升级到最新正式版,同时升级PyCharm到最新版本即可正常提示新方法。


价格提取方法

你打印得到的是WebElement实例对象,直接调用该对象的text属性即可获取元素展示的文本内容。
注意你当前的代码有两个可能导致拿不到价格的问题:

  • 无头模式下默认窗口尺寸很小,部分站点的元素不会正常渲染加载,需要手动指定窗口大小
  • 未加等待逻辑,可能页面还没加载完成就执行了定位操作,拿到空元素或者直接报错

修改后的完整可运行代码如下:

from bs4 import BeautifulSoup
import requests
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

url = "https://www.staples.ca/products/959340-en-dr-pepper-355-ml-cans-12-pack"

s=Service('C:/Users/teddy/OneDrive/Desktop/chromedriver.exe')
options = webdriver.ChromeOptions()
options.add_argument('--ignore-certificate-errors')
options.add_argument('--incognito')
options.add_argument('--headless=new') # 新版无头模式,兼容性更好
options.add_argument('--window-size=1920,1080') # 指定窗口大小,保证元素正常加载
options.add_argument('user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36') # 模拟正常浏览器UA,避免被反爬拦截
driver = webdriver.Chrome(service=s, options=options)

try:
    driver.get(url)
    # 显式等待最多10秒,直到目标元素加载完成
    price_ele = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.CLASS_NAME, "money-details"))
    )
    # 提取价格文本
    price = price_ele.text
    print(price)
finally:
    driver.quit() # 无论是否出错都关闭浏览器进程

如果返回的文本包含多余的换行、空格,可以使用price.strip()做简单的格式清理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 21:45:05