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

如何使用Selenium定位网页元素并准确提取目标文本内容

Selenium提取电商页面材质信息异常修复

问题复现

  • 目标页面地址:https://modernhousevn.com/collections/new-arrival/products/giuong-ngu-mh-21
  • 初始实现代码:
driver = webdriver.Chrome()
URL= 'https://modernhousevn.com/collections/new-arrival/products/giuong-ngu-mh-21'
driver.get(URL)
sleep(1)
des = wait.until(EC.visibility_of_element_located((By.XPATH, "//strong[text()='Chất liệu :']/.."))).get_attribute('innerText')
print(des)
  • 预期输出结果:['Khung : Khung Gỗ thông - Vạt giường gỗ thông', 'Da PU hoặc vải bố cao cấp nhập khẩu', 'Mousse : D40/35 theo tiêu chuẩn xuất khẩu']
  • 对应页面元素位置参考:
    页面元素示例

故障原因

原有XPath仅定位到「Chất liệu :」文本的直接父节点,该节点仅包含标题文本,未覆盖后续3条材质说明的列表项;直接取innerText未做内容拆分、空白字符清洗,无法得到结构化的目标列表。

修复方案

调整定位逻辑:先通过材质标题向上查找承载全部说明内容的外层容器,再单独提取容器下所有列表项的文本,过滤空值、清除多余空白即可得到目标结果,可直接运行的修复代码如下:

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

driver = webdriver.Chrome()
URL = 'https://modernhousevn.com/collections/new-arrival/products/giuong-ngu-mh-21'
driver.get(URL)
wait = WebDriverWait(driver, 10)

# 定位材质板块外层公共容器
material_container = wait.until(EC.visibility_of_element_located(
    (By.XPATH, "//strong[normalize-space(text())='Chất liệu :']/ancestor::div[contains(@class, 'product-description')]")
))
# 提取所有材质条目并做格式清洗
material_list = [
    item.text.strip() 
    for item in material_container.find_elements(By.TAG_NAME, 'li')
    if item.text.strip()
]

print(material_list)

运行代码后将直接输出符合预期的结构化材质列表。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 16:09:09