常用的xpath表达式

简介: 常用的xpath表达式

Xpath表达式

    /
    代表从顶端开始寻找标签一层层寻找
    例子:/html/head/title
    text()
    提取文本信息
    例子:/html/head/titile/text()
    @[]
    提取属性
    例子://li[@class=””]/a/@href       标签[@属性=值]
    //
    寻找所有标签
    例子://li
    / /*
    例子/div/* 选取属于div元素的所有子节点
    //*
    例子//* 选取所有元素
    //div[@*]
    选取所有带属性的title元素
    /div/a|//div/p
    选取所有div元素的a和p元素
    //span|//ul
    选取文档中的span和ul元素
    Article/div/p|//span
    选取所有属于article元素的div元素的p元素以及文档中所有的span元素
    Contains()
    当有多个class属性时使用contains函数获取
    例子//span[contains(@class,’vote-post-up’)]
    
    
    Re
    re.compile(".*?(\d{4}[年/-]\d{1,2}([月/-]$|[月/-]\d{1,2}|[月/-]\d{1,2}日|$))").findall(str(data))
    日期
    [\u4E00-\u9FA5]+ 
    中文
    starts-with
     匹配一个属性开始位置的关键字
    Contains
    driver.findElement(By.xpath(“//a[contains(text(), ’退出’)]));
     匹配一个属性值中包含的字符串
    text()
     匹配的是显示文本信息,此处也可以用来做定位用
     获取当前标签下的所有文字包括子标签
    test= comment.xpath(".//span[@class='ctt']")
    result = test[0].xpath('string(.)').strip()
    following-sibling::td[1]  选择兄弟节点
    //选择不包含class属性的节点
    var result = node.SelectNodes(".//span[not(@class)]");
    //选择不包含class和id属性的节点
    var result = node.SelectNodes(".//span[not(@class) and not(@id)]");
    //选择不包含class="expire"的span
    var result = node.SelectNodes(".//span[not(contains(@class,'expire'))]");
    //选择包含class="expire"的span
    var result = node.SelectNodes(".//span[contains(@class,'expire')]");
    //解析出带标签的当前元素
    etree.tostring()

    <div>
        <a id="1" href="www.baidu.com">我是第1个a标签</a>
        <p>我是p标签</p>
        <a id="2" href="www.baidu.com">我是第2个a标签</a>
        <a id="3" href="www.baidu.com">我是第3个a标签</a>
        <a id="4" href="www.baidu.com">我是第4个a标签</a>
        <p>我是p标签</p>
        <a id="5" href="www.baidu.com">我是第5个a标签</a>
    </div>
    获取第三个a标签的下一个a标签:"//a[@id='3']/following-sibling::a[1]"
    获取第三个a标签后面的第N个标签:"//a[@id='3']/following-sibling::*[N]"
    获取第三个a标签的上一个a标签:"//a[@id='3']/preceding-sibling::a[1]"
    获取第三个a标签的前面的第N个标签:"//a[@id='3']/preceding-sibling::*[N]"
    获取第三个a标签的父标签:"//a[@id=='3']/.."
    判断是否包含文字 root.xpath("//div[@id='sublist_div']/span[contains(text(),'简') and contains(text(),'日')]/text()")
目录
相关文章
|
人工智能 MySQL 关系型数据库
Docker中查看mysql各环境参数
欢迎关注大数据和人工智能技术文章发布的微信公众号:清研学堂,在这里你可以学到夜白(作者笔名)精心整理的笔记,让我们每天进步一点点,让优秀成为一种习惯! 通过官方的文档可以看到运行MySQL容器的命令是: docker run --name some-mysql -e MYSQL_ROOT_PASS...
2230 0
Docker中查看mysql各环境参数
|
虚拟化 网络虚拟化 Windows
导入虚拟机到Hyper-V环境时,理解并配置网络适配器设置是确保网络通信的关键
在Hyper-V环境中,正确配置虚拟机的网络适配器是确保其网络通信的关键。需先启用Hyper-V功能并创建虚拟交换机。接着,在Hyper-V管理器中选择目标虚拟机,添加或配置网络适配器,选择合适的虚拟交换机(外部、内部或私有),并根据需求配置VLAN、MAC地址等选项。最后,启动虚拟机并验证网络连接,确保其能正常访问外部网络、与主机及其他虚拟机通信。常见问题包括无法访问外部网络或获取IP地址,需检查虚拟交换机和适配器设置。
|
人工智能 搜索推荐 机器人
ai教育
【8月更文挑战第4天】ai教育
837 0
|
人工智能 开发者
AI 助理能为我做什么?
阿里云AI助理融合了大模型能力,聚焦于开发者在阿里云平台上的关键需求,提供包括云产品咨询、权益活动推荐、下单购买引导、云资源查询与诊断等服务,助力开发者快速解决问题,提高业务效率,让云上开发之旅更加顺畅。
1091 0
|
物联网 调度 异构计算
使用GaLore在本地GPU进行高效的LLM调优
GaLore是一种新的优化策略,它通过梯度低秩投影减少VRAM需求,使得大型语言模型(如70亿参数的模型)能在消费级GPU上进行微调,而不减少参数数量。与LoRA相比,GaLore内存效率更高,且性能相当或更优。它在反向传播期间逐层更新参数,降低了计算负荷。虽然GaLore训练时间较长,但它为个人爱好者提供了在有限资源下训练大模型的可能性。相关代码示例和性能对比显示了其优势。
606 0
|
消息中间件 SQL Java
Flink报错问题之调用udf时报错如何解决
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。本合集提供有关Apache Flink相关技术、使用技巧和最佳实践的资源。
|
Java Android开发 Shell
Android 上层应用读写设备节点
Android 上层应用读写设备节点 Android L [TOC] 1. Android 设备节点 Android基于Linux内核。设备节点文件是设备驱动的逻辑文件,可以通过设备节点来访问设备驱动。
3366 0
|
SQL 分布式计算 Java
Apache Hudi与Hive集成手册
Apache Hudi与Hive集成手册
1022 0
|
JavaScript Windows 内存技术
使用nvm管理node.js版本以及错误处理
本文分享了如何使用nvm管理node版本及报错处理
4398 1
使用nvm管理node.js版本以及错误处理
|
存储 Cloud Native Linux
CMake学习之windows下cmake生成nmake
CMake学习之windows下cmake生成nmake

热门文章

最新文章