当前位置 : 首页 » 文章分类 :  开发  »  XPath

XPath

XPath 是一种在 XML 文档中查找、定位信息的语言。

XPath 于 1999 年 11 月 16 日 成为 W3C 标准。

XPath 在线测试
https://www.toolnb.com/tools/xpath.html


/绝对路径

绝对路径从 HTML 根节点开始算

/div 从根节点上选取div节点
/html/body/div 根节点 html 下的 body 下的 div

//相对路径

相对路径从任意节点开始

// 选取所有的当前节点,不考虑他们的位置

//div 选取所有的div节点


...

.//h1 当前节点下的全部 h1 节点

//span/.. 选取所有 span 节点的父节点
//input[@name="key"]/.. 选取 name等于key 的全部 input 节点的父节点

通过 .. 先找到父节点,再通过父节点找到兄弟节点:
//span[@class="bg"]/../div 选取 class等于bg 的全部span节点的 同级兄弟 div 节点


[谓语]

谓语被嵌在方括号内,用来查找某个特定的节点或包含某个制定的值的节点

/body/div[1] 选取body下的第一个div节点
/body/div[last()] 选取body下最后一个div节点
/body/div[last()-1] 选取body下倒数第二个div节点
/body/div[positon()<3] 选取body下前两个div节点


@attribute='value' 匹配属性及值

[@attr] 选择所有带 attr 属性的节点
/body/div[@class] 选取body下带有class属性的div节点

//*[@*] 选择所有带有属性的节点

[@attr='v'] 选择所有 attr 属性值等于 v 的节点
/body/div[@class='main'] 选取body下class属性为main的div节点
//*[@class='ri'] 选取所有 class 属性的值是 ri 的节点
//span[@role='img'] 选取所有 role 属性值等于 img 的 span 节点
//form[@id="form"]//span 选取id=form的 dorm 节点下的全部 span 节点

/body/div[price>35.00] 选取body下price元素值大于35的div节点


* 通配符

//* 选取所有节点
/div/* 选取div下的所有子节点

/div[@*] 选取所有带属性的div节点


逻辑运算符 and or |

//div|//table 选取所有的div和table节点

//*[@name='wd' and @class='s_ipt'] 查找 name 属性为 wd 并且 class 属性为 s_ipt 的任意元素
//*[@name='wd' or @class='s_ipt'] 查找 name 属性为 wd 或 class 属性为 s_ipt 的任意元素


contains() 包含

//div[contains(@id,"ma")] 选取 id 包含 ma 的所有 div 属性

starts-with 以开头

//div[starts-with(@id,"ma")] 选取id值以ma开头的div节点


text() 文本定位

//div[contains(text(),"ma")] 选取节点文本包含ma的div节点


上一篇 Python-pip

下一篇 Python-爬虫

阅读
评论
632
阅读预计2分钟
创建日期 2025-03-09
修改日期 2025-03-09
类别
标签

页面信息

location:
protocol:
host:
hostname:
origin:
pathname:
href:
document:
referrer:
navigator:
platform:
userAgent:

评论