技术求助:如何用XPath定位商品详情文本并获取后续span内容
XPath定位修正方案
你的原XPath存在3处语法错误,导致无法正确定位目标元素:
- 路径语法无效:
//*[@id="product-detail"]/[text()="..."]中,斜杠后直接跟方括号不符合XPath语法,需要指定节点类型(如*匹配任意节点) - 多余的右括号:
text()="Kredi Kartı/Banka Kartı İle Öde")]里多了一个闭合括号 - 层级匹配问题:直接用
/只能匹配子节点,用//才能匹配所有后代节点,更适配页面结构
修正后的基础XPath
"fiyat": '//*[@id="product-detail"]//*[text()="Kredi Kartı/Banka Kartı İle Öde"]/following-sibling::span/span/text()'
优化建议
- 指定具体节点类型:如果知道目标文本所在的标签(比如
label、div),把*换成对应标签,定位更精准:
"fiyat": '//*[@id="product-detail"]//label[text()="Kredi Kartı/Banka Kartı İle Öde"]/following-sibling::span/span/text()'
- 处理文本空格/换行:如果页面中文本包含空格或换行,用
normalize-space()标准化文本后匹配,避免匹配失败:
"fiyat": '//*[@id="product-detail"]//*[normalize-space(text())="Kredi Kartı/Banka Kartı İle Öde"]/following-sibling::span/span/text()'
内容的提问来源于stack exchange,提问作者White_shadoW
相关产品推荐
相关产品推荐

