xpath定位

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

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

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

绝对路径定位

示例:/html/body/div[2]/div[3]/span

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

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

相对路径定位

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

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

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

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

标签名+属性定位

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

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

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

模糊匹配定位

示例1://div[contains(@class, "page")]

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

示例2://a[starts-with(@href, "https")]

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

文本内容定位

示例://button[text()="提交"]

进阶://h2[contains(text(), "最新消息")]

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

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

6. 索引定位

示例://ul/li[3]

作用:选择第三个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

//div[contains(@class, 'chapter-name')]/parent::div/following-sibling::div[position() <= 20]

相关推荐
一晌小贪欢1 天前
Python爬虫第6课:Selenium自动化浏览器与动态内容抓取
爬虫·python·selenium·网络爬虫·python基础·python3·pathon爬虫
B站_计算机毕业设计之家2 天前
计算机毕业设计:Python农业数据可视化分析系统 气象数据 农业生产 粮食数据 播种数据 爬虫 Django框架 天气数据 降水量(源码+文档)✅
大数据·爬虫·python·机器学习·信息可视化·课程设计·农业
爬虫程序猿3 天前
把 1688 商品详情搬进 MySQL:PHP 爬虫全链路实战(2025 版)
爬虫·python·音视频
一晌小贪欢3 天前
Python爬虫第7课:多线程与异步爬虫技术
开发语言·爬虫·python·网络爬虫·python爬虫·python3
一百天成为python专家4 天前
python爬虫入门(小白五分钟从入门到精通)
开发语言·爬虫·python·opencv·yolo·计算机视觉·正则表达式
wanfeng_094 天前
python爬虫学习
爬虫·python·学习
濑户川4 天前
基于DDGS实现图片搜索,文本搜索,新闻搜索
人工智能·爬虫·python
卓码软件测评4 天前
第三方课题验收测试机构:【API测试工具Apifox使用指南】
功能测试·测试工具·单元测试·压力测试·可用性测试
Moniane4 天前
Web爬虫指南
爬虫·算法
深蓝电商API4 天前
快速上手 Scrapy:5 分钟创建一个可扩展的爬虫项目
爬虫·python·scrapy