遇到一个新需求,需要获取下图的div内部的两个标签内容:
需要获取的是h3+p标签的html内容,ul标签的内容不要。
第一个想到的是使用"or",将两个标签的html全部抓取。
我们常用的是针对xpath过滤器里相同标签不同属性使用"or"条件来抓取,但是现在遇到的是针对不同标签使用"or",用了以下几种方式都不能这样操作:
//div[@id='PartDetails__Overview_Section']//p or h3
//div[@id='PartDetails__Overview_Section']//[p or h3]
//div[@id='PartDetails__Overview_Section']//*[p or h3]
查了一下别人的方法,原来下面的办法可以:
//div[@id='PartDetails__Overview_Section']//*[self::p or self::h3]
“or”的重点就是://*[self:p or self:h3]
使用的效果是这样的:
选择器将这h3和p两个分别抓取,而不是作为整体一起抓取。
不过目前此方法不适用于我,需要的可以拿走。
我自己只能使用:
//div[@id='PartDetails__Overview_Section']
这样整体抓取了,后期再去掉ul的内容。