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

网站爬取:获取13位EAN码的XPath方案咨询

提取HTML中EAN码的两种XPath实现方法

方法一:定位“EAN:”对应的
标签后的
内容

这种方法完全可行,核心逻辑是先匹配文本为EAN: 的

标签,再选取其紧邻的
兄弟节点的文本。

基础XPath表达式

//dt[text()='EAN: ']/following-sibling::dd[1]/text()
  • //dt[text()='EAN: ']:全局查找文本完全匹配EAN: (注意末尾空格)的
    标签
  • /following-sibling::dd[1]:选取该
    的第一个
    兄弟节点
  • /text():提取
    节点的文本内容,最终得到目标EAN码8720153872126

鲁棒性优化版本

如果

标签内的文本存在多余空格或换行,可使用normalize-space()处理空白字符,避免匹配失败:

//dt[normalize-space(text())='EAN:']/following-sibling::dd[1]/text()

normalize-space()会去除文本前后空白,并将中间连续空白替换为单个空格,适配格式不规范的场景。

方法二:匹配所有13位数字字符串

这种方法同样可行,适合页面中13位数字即为EAN码的场景,通过正则匹配提取符合格式的内容。

基础XPath表达式

//text()[matches(., '^\d{13}$')]
  • //text():全局查找所有文本节点
  • matches(., '^\d{13}$'):用正则匹配恰好13位纯数字的文本(^和$限定首尾,\d{13}表示13个数字)
  • 在你的示例中,该表达式会直接返回目标EAN码8720153872126

范围限定优化

若页面存在其他无关的13位数字,可限定搜索范围在

标签内,避免误匹配:

//dl//text()[matches(., '^\d{13}$')]

总结

两种方法均可行,适用场景不同:

  • 方法一精准度更高,直接关联“EAN:”标签,不受其他13位数字干扰
  • 方法二更灵活,适合无法通过标签文本定位的场景,但需确保无无关的13位数字存在

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 23:15:39