【工作记录】xpath语法笔记

XPath概述

XPath(XML Path Language)是一门解析XML文档的语言,可在XML文档中对元素和属性进行遍历,被广泛用于解析HTML文档数据。

在HTML文档中XPath通过元素(即HTML标签)和属性(即HTML标签的属性)对元素进行定位和查找。

XPath语法总结

格式 功能描述 示例
/ 后面直接跟子节点,表示绝对路径 /html
// 全局查找,可以是任意位置,表示相对路径 //div//input
parent 选取当前节点的父节点
child 选取当前节点的所有子节点
preceding 选取当前节点的开始标签之前的所有节点
following 选取当前节点的结束标签之后的所有节点
ancestor 选取当前节点的所有先辈节点 (父、祖父等)
descendant 选取当前节点的所有后代节点 (子、孙等)
descendant-or-self 选取当前节点的所有后代节点及当前节点本身
. 当前节点
上级节点,即父节点
@name 取带有name属性的标签 //input[@name]
@class=‘’ 取class为指定值的标签 //input[@class=‘xxx’]
text() 文本定位,常和contains()函数一起使用 //div/a[text()]
last() 返回被处理节点的最后一个元素 //div[@class=‘top’]/a[last()]
position() 匹配返回节点的索引位置 //div[@class=‘top’]/a[position()=1]
contains() 匹配一个属性值中包含的字符串,用于模糊定位, //div[contains(@id,“top”)]/a[last()]
starts-with() 匹配一个属性值开始位置的关键字,用于模糊定位 //div[starts-with(@id,“top”)]/a[last()]
运算符 = != < > >= <= and or
* 通配符,匹配任意字符 //div/* 选取div下的所有标签
| 显示存在的内容 //input|//title
[] 属性包围框,固定语法

简单示例

//span[@class='pl'][3]/following::text()[1]   表示   获取class='pl'的第三个span标签后的第1个文本内容
//a[@class="toindex"][text()]                 表示   获取class='toIndex'的a标签的文本
//div[@id='s-top-left']/child::a[1]           表示   获取id='s-top-left'的div标签下子标签的第1个a标签
//div[@id='s-top-left']/descendant::a[1]      表示   获取id='s-top-left'的div标签后代中的第1个a标签
//div[@id='s_top_wrap']/following::a[1]       表示   获取id='s_top_wrap'的div标签后的第1个a标签
//div[@class='mnav s-top-more-btn']/preceding::a[7]   表示 获取class='mnav s-top-more-btn'的div标签之前的第7个a标签
//a[contains(text(),'h')]/parent::*/a[position()=1]   表示 获取包含h的文本的a标签的父标签下索引值为1的a标签
//a[contains(text(),'h')]/ancestor::*/a[position()<2] 表示 获取包含h的文本的a标签的先辈标签下索引值小于2的a标签

你可能感兴趣的:(工作记录,爬虫,笔记,python,xpath)