XPath 是一门在 XML 文档中查找信息的语言。XPath 用于在 XML 文档中通过元素和属性进行导航。

在爬山虎采集器中,我们用 XPath 来查找定位网页中的 Html 元素。 可以说 XPath 在采集器中是一个非常基础、非常重要的技术,在一些复杂的网页,可能需要手动 编写 XPath 表达式来解决问题。

具体的 XPath 知识,大家可用通过 来学习。


在爬山虎采集器中,列表模式、手动设置分页、字段中都是通过 XPath 来定位数据的。 都可以通过手动设置 XPath 来修改、完善 XPath 表达式

xpath

XPath 可以填写多条,以作为补充、备用。

建议:如果手动编写 XPath ,尽量使用 class 来定位,比如 //div[@class='xxx']。相对于使用 /div[1] 索引这种方式更加稳定。

绝对路径、相对路径 XPath

列表模式下,字段是在列表中的一个节点中进行匹配,XPath 是以./开头,表示当前节点的意思。而单条模式时,字段是在整个页面中进行匹配的。

列表模式下,字段的 XPath 需要是列表项的相对 XPath ,比如 ./div[1]/div[1]/span[1]

单条模式下,字段的 XPath 是绝对 XPath,比如//div[@class='xxx']


根据文本生成 XPath

在采集一些网站,多个页面之间的数据有差异,会导致我们采集的数据发生错位。 在浏览器右键菜单里,我们提供了2种生成相对 XPath 的方法

xpath

  1. 通过前缀文本生成
    根据当前节点之前的文本来生成一个 XPath,类似://span[contains(text(),'评分:')]/following-sibling::span[1]
  2. 通过当前文本生成
    根据当前节点的文本来生成一个 XPath,类似://span[contains(text(),'来自 164 份评价')],然后我们将其中的来自 164去掉,得出//span[contains(text(),'份评价')],我们就可以获取到评价数量了。