XPATH问题:基于指定文本提取联系人信息失败求助
解决XPath提取联系人详情的问题
我来帮你搞定这个XPath的问题~你之前用的路径没生效,主要是因为目标<strong>元素被嵌套在多层<span>里,它的直接同级元素里根本没有<p>,自然找不到后续的联系人内容。
给你几个针对性的XPath方案,根据实际HTML结构调整:
1. 定位联系人所在的父元素
如果联系人详情就在包含"For further..."的那个<p>的下一个<p>里,用这个路径先找到目标区块:
//strong[contains(text(), 'For further information, please contact:')]/ancestor::p/following-sibling::p[1]
2. 直接提取联系人姓名(假设姓名在<a>标签内)
//strong[contains(text(), 'For further information, please contact:')]/ancestor::p/following-sibling::p[1]/a/text()
执行后会直接返回Hock Keng。
3. 提取对应的联系人链接
//strong[contains(text(), 'For further information, please contact:')]/ancestor::p/following-sibling::p[1]/a/@href
这个路径会返回目标链接地址。
额外适配提示
如果遇到文本省略的情况(比如你提供的片段里是"For further info..."),可以把contains(text(), 'For further information, please contact:')改成contains(., 'For further'),这样能更灵活匹配部分文本;如果联系人不在紧邻的下一个<p>,可以把[1]改成对应的索引(比如[2]),或者去掉索引直接匹配所有后续<p>元素。
内容的提问来源于stack exchange,提问作者Rich Stevens
相关产品推荐
相关产品推荐

