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

如何用Python Selenium对比产品价格并点击最高价格产品链接

功能实现修正方案

原有代码的核心问题

  • 元素定位作用域错误:原有代码在<a>节点下找名称、价格元素时,xpath使用了全路径写法,没有加相对路径前缀,会直接从整个页面文档树查找同class元素,完全没有和当前遍历的<a>标签做绑定,最终提取的数据和实际产品条目不匹配
  • 缺少价格数值化处理逻辑:原始价格文本带非数字字符,无法直接做大小对比
  • 没有设计最高值筛选、点击触发的完整逻辑流程

可直接落地的实现代码

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

# 等待产品列表区块完全加载,避免DOM渲染不全漏抓元素
product_grid = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.XPATH, '//div[@class="slug__Grid-vcgsbx-0 hPFNJV pb-24 my-4 md:pb-4"]'))
)

# 初始化最高价格、对应元素的缓存变量
max_price = -1
max_price_link = None
max_price_name = ""

# 遍历列表下所有产品<a>标签
product_links = product_grid.find_elements(By.TAG_NAME, "a")
for link in product_links:
    try:
        # 加.//前缀,保证在当前<a>节点的子树内找元素,避免跨节点抓错内容
        name_elem = link.find_element(By.XPATH, './/p[@class="Card___StyledP4-sc-1629dl9-4 fWEsJX text-sm text-gray-800"]')
        product_name = name_elem.text.strip()

        price_elem = link.find_element(By.XPATH, './/p[@class="Card___StyledP2-sc-1629dl9-1 cFzjHk"]')
        price_text = price_elem.text.strip()

        # 清洗价格文本:剔除所有非数字字符,转为可对比的数值
        cleaned_price = int(''.join(filter(str.isdigit, price_text)))
        print(f"提取到产品:{product_name},价格:{cleaned_price}")

        # 实时对比更新最高价格对应的元素缓存
        if cleaned_price > max_price:
            max_price = cleaned_price
            max_price_link = link
            max_price_name = product_name
    except Exception:
        # 跳过定位失败的非产品类<a>元素
        continue

# 遍历完成后直接触发最高价格产品的点击动作
if max_price_link:
    print(f"找到最高价格产品:{max_price_name},价格:{max_price},准备触发跳转")
    max_price_link.click()
else:
    print("未提取到有效产品价格信息")

操作注意事项

  • 循环遍历过程中,对每个产品的名称、价格元素查找,必须以当前遍历到的<a>节点为根,使用带.开头的相对xpath定位,避免跨节点取错元素
  • 价格清洗阶段要剔除文本中的货币符号、千分位分隔符,仅保留数字部分再转成数值类型做对比
  • 正式抓取前要等待产品列表区块完全加载,不要在DOM未渲染完成时就执行元素查找,避免出现漏抓、元素不存在的报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.23 13:36:03