xpath定位

一、路径符号核心区别(表格速查)

符号 名称 作用范围 典型使用场景 性能影响
/ 单斜杠 ./ 相对路径直接子级, /绝对路劲-根路径 精确层级定位 高效
// 双斜杠 //当前元素下开始查找,可以跨嵌套层 模糊层级/跨嵌套定位 较低效

一、XPath基础定位类型(适合小白入门)

绝对路径定位

示例:/html/body/div2/div3/span

特点:从根节点开始逐层查找,像文件路径

缺点:路径长且容易受页面结构调整影响

相对路径定位

示例://div//span 或者 .//div/span

特点:用双斜杠//表示任意层级,更灵活

作用:查找所有div下的任意层级的span标签

示例2:./div 相对当前元素的直接子元素div

标签名+属性定位

示例://input@id="username"

解析:查找所有input标签中id属性等于"username"的元素

常用属性:@id、@class、@name、@type等

模糊匹配定位

示例1://divcontains(@class, "page")

作用:查找class属性包含"page"的div

示例2://astarts-with(@href, "https")

作用:查找href属性以https开头的链接

文本内容定位

示例://buttontext()="提交"

进阶://h2contains(text(), "最新消息")

注意:text()方法对隐藏文本可能无效

二、进阶定位技巧(需要理解DOM结构)

6. 索引定位

示例://ul/li3

作用:选择第三个li元素(注意索引从1开始)

风险:页面结构变化时容易失效

逻辑运算符

示例://input@type="text" and @required

组合条件:and/or 连接多个条件

通配符使用

示例1://@class="item" 匹配任何标签

示例2://div@ 匹配有任意属性的div

三、高级轴定位(处理复杂文档结构)

9. 父子关系

parent轴://span/parent::div

child轴://ul/child::li

后代: //ul/descendant:😗

descendant-or-self

兄弟关系

当前节点之前的所有同级节点:following-sibling://h3/following-sibling::p

当前节点后的同级节点:preceding-sibling://span/preceding-sibling::a

祖先关系

所有先辈: ancestor轴://em/ancestor::div@class="container"

后代关系

所有后代:descendant轴://div@id="main"/descendant::img

//divcontains(@class, 'chapter-name')/parent::div/following-sibling::divposition() \<= 20

相关推荐
二十雨辰5 小时前
[爬虫]-request
爬虫
狗都不学爬虫_12 小时前
AI逆向 - 99aq中心滑块验证+登录(wasm纯算)
爬虫·python·网络爬虫
hans汉斯12 小时前
计算机科学与应用|改进MeanShift算法在智能监控视频中的应用研究
图像处理·人工智能·功能测试·深度学习·算法·音视频
llilian_1614 小时前
便携式相位测量模块应用方案的核心优势
网络·功能测试·单片机
hyf3266331 天前
泛程序:从零开始搭建稳定程序项目框架
运维·服务器·爬虫·百度·seo
东舟技术2 天前
AI全链路测试智能体上线啦!
人工智能·功能测试·测试工具·自动化
进击的雷神2 天前
攻克俄语编码适配与无ID字段去重:基于纯URL拼接的国际化爬虫设计
爬虫·spiderflow
JackSparrow4142 天前
前端安全之JS混淆+请求加密+请求签名以提升爬虫难度
前端·javascript·后端·爬虫·python·安全
kisloy2 天前
【爬虫入门第5讲】Python爬虫文本解析详解
开发语言·爬虫·python
上海云盾-小余2 天前
CC 高频请求 + DDoS 流量攻击实战防御:全链路 WAF 流量清洗部署完整流程
网络·爬虫·安全·小程序·ddos