Xpath简介

一般来说,使用id、name、class等属性就能对节点进行定位就能解决绝大部分解析需求,但有时候遇到以下情况,使用Xpath就更方便:

没有id、name、class等

标签的属性或者文本特征不显著

标签嵌套层次太复杂

Xpath是XMLPath的简介,基于XML树状结构,可以在整个树中寻找锁定目标节点。由于HTML文档本身就是一个标准的XML页面,因此我们可以使用XPath的语法来定位页面元素。

Xpath定位方法

一、Xpath路径

Python网络爬虫 -- scrapy的选择器Xpath_Xpath

Xpath路径案例

定位节点


Python网络爬虫 -- scrapy的选择器Xpath_Xpath_02

通配符*选择未知的节点


Python网络爬虫 -- scrapy的选择器Xpath_Xpath_03

二、使用索引

如果筛选时元素时出现多个节点,但我们想确定唯一节点。可以使用类似于列表索引的方式精确定位。

案例


Python网络爬虫 -- scrapy的选择器Xpath_python_04

三、使用属性

为了让定位更精准,跟使用索引类似,我们要增加信息量,那么还可以使用属性。@符号是属性符


Python网络爬虫 -- scrapy的选择器Xpath_Xpath_05

四、常用函数

除了索引、属性外,Xpath还可以使用便捷的函数来增强定位的准确性。下面试常用的几个函数:

Python网络爬虫 -- scrapy的选择器Xpath_Xpath_06

<a class="menu_hot" href="/ads/auth/promote.html">应用推广</a>


Python网络爬虫 -- scrapy的选择器Xpath_python_07

五、Xpath轴

这部分类似BeautifulSoup中的sibling、parents、children方法。

Python网络爬虫 -- scrapy的选择器Xpath_python_08