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

Selenium Python:定位商品价格元素及动态价格属性获取问题

正确获取动态商品价格的方法

问题分析

你提供的HTML里,商品价格直接存储在目标div的data-price属性中,不需要去查找兄弟节点。原代码存在两个核心问题:

  • 错误尝试通过following-sibling::td获取价格,实际价格就在你定位的div元素本身
  • get_attribute()方法缺少必填的属性名称参数

修正后的代码

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

driver = webdriver.Chrome()  # 根据你的浏览器替换对应的驱动
driver.get("https://www.neopets.com/objects.phtml?type=shop&obj_type=37")

try:
    # 用显式等待替代固定sleep,等待商品元素加载完成(适配动态页面)
    item = WebDriverWait(driver, 15).until(
        EC.presence_of_element_located((By.XPATH, "//div[@data-name='Blueberry Chia Pop']"))
    )
    print("Item In Stock")
    # 直接读取元素的data-price属性,动态更新时属性值会同步变化
    item_price = item.get_attribute("data-price")
    print(f"商品价格:{item_price}")
except Exception as e:
    print("商品缺货或加载失败")
    print(e)
finally:
    driver.quit()

关键说明

  • 显式等待:相比time.sleep(),显式等待会在元素出现后立即执行,既避免不必要的等待,又能适配页面动态加载的场景
  • 直接读取属性:价格已绑定在元素的data-price属性上,页面动态更新时该属性值会同步刷新,直接读取即可获取最新价格
  • 异常处理:添加捕获异常的逻辑,可处理商品缺货、页面加载失败等情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 21:22:26