如何用XPath提取排除指定域名的URL?现有表达式失效求助
解决XPath提取URL时排除特定域名的问题
我懂你遇到的困扰了——想用XPath提取指定区域内的目标URL,但总是混进包含domain.com的无关链接,之前的排除表达式没生效对吧?
问题出在你对属性节点的引用方式上:你用了contains(text(), 'domain.com'),但text()是用来获取元素的文本内容的,而@href是属性节点,它的自身值需要用.来指代。
所以正确的XPath表达式应该是:
//div[contains(@id,'internal_trc_')]/div/a[2]/@href[not(contains(., 'domain.com'))]
简单拆解下逻辑:
.在这里代表当前的属性节点(也就是@href的实际值)not(contains(., 'domain.com'))会过滤掉所有属性值中包含domain.com的href链接
如果还是有问题,你可以先单独运行//div[contains(@id,'internal_trc_')]/div/a[2]/@href查看所有提取到的href值,确认哪些是需要排除的,再检查domain.com的拼写是否完全匹配(比如大小写、是否有多余的符号)。
内容的提问来源于stack exchange,提问作者Creek Barbara
相关产品推荐
相关产品推荐

