Xpath学习总结(二)

Python 爬虫学习笔记二: xpath 模块 Python 爬虫学习笔记二: xpath from lxml 首先应该知道的是xpath 只是一个元素选择器, 在python 的另外一个库lxml 中, 想要使用xpath 必须首先下载lxml 库 lxml 库的安装: 很简单, 具体请查看 http://www.jianshu.com/p/2bc5aa0db486 上述链接中有如何安装lxml , 以及如何使用xpath的入门程序, 以及 阅读详情

之前总结了使用常见的Xpath来定位页面的元素,其实Xpath提供了非常丰富的函数,可供我们定义页面上任何一个元素,但是如果仅仅只是为了满足自动化定位元素的需求的话,常见的几种方式就足够,他们既简单又高效,下面一些是最近遇到的Xpath,我们也可以使用它们来定位。

1. parent关键字

作用:获取当前节点的父节点

实例:以下面HTML为例

<div id="menu">
	<ul>
		<li class="first">
			<a id="book"></a>
		</li>
		<li>
			<a id="food"></a>
		</li>
		<li>
			<a id="clothes"></a>
		</li>
		<li>
			<a id="furniture"></a>
		</li>
	</ul>
	<a href="....">Welcome to Our Store</a>
</div>

parent的例子: //a[id='book']/parent::li

     因为我们用了/所以,它将取得id为book的a元素的直接父节点,即第一个li元素,等同于使用//li[@class='first']来查找。

2. child关键字

作用:获取当前节点的子节点

实例:还是以上述HTML为例

//div[@id='menu']/child::a, 将取得id为menu的div下的直接子节点a元素,如果有多个a的话,都会被选中。

3. 方括号加数字

用法:(Xapth)[数字]

还是以上述例子为例,当我们用//div[@id="menu"]//ul//li时所有的li元素都会被选中:

我们使用方括号和数字即可选中某一个特定的li元素,例如:(//div[@id="menu"]//ul//li)[3],只选择第三个li元素:

注意:这种方法需要谨慎使用,除非没有更好的选择,否则不要采用这种定位方法,因为元素的顺序可能会发生变化,一旦顺序改变,原有的Xpath将失效,需要重新定义,这将使自动化很不易于维护。

下面是使用Xpath定位时的一些建议:

1. 如果有id, name尽量使用它们,因为它们通常情况下唯一且不会经常改变

2. text()很好用,特别是跟contains关键字搭配,但是,如果被测系统支持多语言,自动化需要在不同的语言上运行,就不要使用这个定位方式了,否则自动化根本无法跑起来,当然有解决的办法,我们在后面可以一起学习

3. 确保Xpath可以唯一定位到要查找的元素,可以使用多层(一般情况下两到3层就够了),但是不要太多,否则会影响自动化的性能

4. 不要在text()里使用=,用contains或者starts-with等关键字

5. 不要依赖元素顺序来定位,除非已经确定顺序不会轻易改变

6. 使用高效的工具来定位元素吧,将会减少很多时间噢

一周爬虫集训任务二:学习beautifulsoup+xpath 一周爬虫集训任务二:学习beautifulsoup+xpath1 任务2 beautifulsoup2.1 简介2.2 安装参考 1 任务 Task2(2天) 2.1 学习beautifulsoup 1. 学习beautifulsoup,并使用beautifulsoup提取内容。 2. 使用beautifulsoup提取丁香园论坛的回复内容。 3. 丁香园直通点:http://www.dxy.cn... 阅读详情

相关推荐

笔记三Python xpath

笔记三Python xpath学习记录提示:以下是本篇文章正文内容,下面案例可供参考。

丿红叶丶 261

python 快速上手xapth使用

xpath即为XML路径语言,它可以根据输入的限定的范围来获取相应的数据信息。而且它同样可以提取html文件中的数据。本文着重介绍如何提取html的信息。

m0_73246306的博客 581

Solidworks在Windows 11上安装失败?这里有解决方案

通过上述步骤,你应该能够解决在Windows 11上安装Solidworks时遇到的问题。这个方法通过调整注册表的设置,提高了安装程序的权限,从而有效避免了安装过程中的权限障碍。当然,每个系统的具体情况可能有所不同,如果在尝试上述方法后仍然无法解决问题,建议联系Solidworks的技术支持团队,获取更专业的帮助。希望本文能够对你有所帮助,祝你工作顺利,设计无忧!

nntxthml的博客 4912

Web自动化测试——XAPTH高级定位

XPath 是一门在 XML 文档中查找信息的语言 XPath 使用路径表达式在 XML 文档中进行导航 XPath 的应用非常广泛 XPath 可以应用在UI自动化测试web自动化测试 app自动化测试可维护性更强 语法更加简洁 相比于css可以支持更多的方式浏览器-console 浏览器-elements 获取当前节点的父节点: 获取当前节点的爷爷节点:组合通过父亲找儿子关系(先找到上一级,再定位本级): 组合通过祖先找儿子关系(只要是本级的上级就可以):通过兄弟姐妹找(比较麻烦): xpath通过索

python全栈 1547

避坑指南:英飞凌TC3XX的MCMCAN初始化常见错误及解决方法

本文针对英飞凌TC3XX系列MCU的MCMCAN模块初始化难题,深入剖析了寄存器配置时序、总线监控模式误用、中断映射错误及Message RAM地址冲突四大常见陷阱。通过实战代码示例和诊断流程,提供了清晰的避坑指南和解决方案,帮助嵌入式开发者高效解决CAN FD通信故障,确保汽车电子与工业控制项目的稳定运行。

weixin_29193259的博客 245

态路小课堂丨三款800G光模块方案介绍—SR8/DR8/2FR4

800G QSFP-DD 2FR4光模块使用CWDM4波长(1271/1291/1311/1331nm),单通道速率为100G,通过MUX减小光纤的数目,其光学接口采用CS接口或双芯LC接口。

poposu的博客 2386

【Selenium】通过Xapth进行元素定位

xpath定位

qq_43400416的博客 491

使用OpenCV从低对比度图像中提取圆形轮廓

希望本文能帮助您从低对比度图像中提取圆形轮在本文中,我们将探讨如何使用OpenCV库从低对比度图像中提取圆形轮廓。低对比度图像通常指的是图像中的亮度差异很小,导致物体边缘不够清晰的情况。在本文中,我们将探讨如何使用OpenCV库从低对比度图像中提取圆形轮廓。低对比度图像通常指的是图像中的亮度差异很小,导致物体边缘不够清晰的情况。通过预处理图像并应用Hough变换,我们能够在低对比度图像中准确地提取圆形轮廓。通过预处理图像并应用Hough变换,我们能够在低对比度图像中准确地提取圆形轮廓。

ByteWhiz的博客 350

xpath

XPath (XML Path Language) 是一门在 XML 文档中查找信息的语言,可用来在 XML 文档中对元素和属性进行遍历。W3School官方文档 开发工具 开源的XPath表达式编辑工具:XMLQuire(XML格式文件可用) Chrome插件 XPath Helper Firefox插件 XPath Checker X...

不止于Python 173

SpringBoot一次请求中缓存数据,请求结束就清除的4种方法,你会几种?

通过以上四种方法,你可以在 SpringBoot 的一次请求中缓存数据,并在请求结束后自动清除这些缓存数据。使用 ThreadLocal:适用于需要跨多个方法调用的缓存数据,灵活性高,但需要注意内存泄漏问题。使用 AOP:适用于全局性的缓存管理,代码更加优雅,但需要对 AOP 有一定的了解。使用 ServletRequestListener:适用于简单的请求生命周期管理,配置简单,但功能相对有限。使用 HttpServletRequest 的 setAttribute 和 getAttribute。

java专栏 1295

ROS2入门到精通—— 2-9 ROS2实战:Nav2常见的工程问题(参考3D视觉工坊)

本文介绍了Nav2常见的工程问题,还有调试DWB的一些经验,以及DWB的一些缺点

BigDavid123的博客 1068

Xpath定位同级、父级元、子级元素、最后一个元素

【代码】Xpath定位同级元素。

weixin_42636075的博客 6938

人像抠图 + OpenGL ES 还能这样玩?没想到吧(附带源码)

OpenGL ES 利用抠图算法实现人像留色。

字节流动 3万+

xpath学习二

[size=large] xpath学习二,主要是更深格式的学习。 child::book 查找当前节点下的所有的book孩子节点 attribute::lang 查找当前节点的lang属性 child::* 查找当前节点的所有节点 attribute::* 查找当前节点的所有属性 child::text() 查找当前节点下的所有孩子节点的text child::node...

iteye_12144的博客 202

【PostgreSQL教程】PostgreSQL 高级篇之子查询

子查询也可称为内部查询、嵌套查询,指的是在 PostgreSQL 查询中的 WHERE 子句中嵌入查询语句。一个 SELECT 语句的查询结果能够作为另一个语句的输入值。子查询可以与 SELECT、INSERT、UPDATE 和 DELETE 语句一起使用,并可使用运算符如 =、、>=、

No8g攻城狮的博客 1206

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

XPath 学习二: 语法

XPath 使用路径表达式来选取 XML 文档中的节点或节点集。节点是通过沿着路径 (path) 或者步 (steps) 来选取的。 下面列出了最有用的路径表达式: 表达式描述 nodename 选取此节点的所有子节点。 / 从根节点选取。 // 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。 . 选取当前节点。 ...

aiduohao2755的博客 87

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

爬虫学习二: bs4 xpath re

欢迎关注datawhale:http://www.datawhale.club/ 2.1 Beautiful Soup库入门 目标: 2.1.1 Beautiful Soup库的基本元素 2.1.2 基于bs4库的HTML内容遍历方法 2.1.3 基于bs4库的HTML内容的查找方法 2.1.4 实战:中国大学排名定向爬取 2.2 学习xpath 目标: 2.2.1 Xpath常用的路径表达式 2.2.2 使用lxml解析 2.2.3 实战:爬取丁香园-用户名和回复内容 2.3 学习正则表达式re

weixin_44023658的博客 978

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

XPath学习笔记(二)

XPath语法: XPath使用路径表达式来选择XML中的结点或结点组。 1、用例: <?xml version="1.0" encoding="UTF-8"?> <bookstore> <book> <title lang="en">Harry Potter</title> <price...

afkj4618的博客 137

Python爬虫学习(二):xpath解析html

获取所有li节点下的a节点(从当前节点直接选取子孙节点li,然后选取li的子节点a,如果存在返回值,不存在返回空)descendant:选择当前节点的所有后代节点(子节点,子节点的子节点,等等)。ancestor:选择当前节点的所有先辈节点(父节点,父节点的父节点,等等)。print('result5输出结果为:', result5)print('result6输出结果为:', result6)

qq_31957463的博客 940

selenium2学习(二) -- xpath定位

**前言 在上一篇简单的介绍了用工具查看目标元素的xpath地址,工具查看比较死板,不够灵活,有时候直接复制粘贴会定位不到。这个时候就需要自己手动的去写xpath了,这一篇详细讲解xpath的一些语法。** 一、xpath:属性定位 1、xpath也可以通过元素的id、name、class这些属性定位,如下: ①. 用xpath通过id属性定位 driver.find_element(By.XPA...

weixin_42464833的博客 517

XPath学习:基本语法(二)

XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。 XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 同时被构建于 XPath 表达之上。 推荐一个挺不错的网站:http://www.zvon.org/xxl/XPathTutorial/General_chi/e...

weixin_30666753的博客 97

Python3之Scrapy学习(二)scrapy之xpath语法简介

一、xpath简介 1.xpath使用路径表达式在xml和html中进行导航 2.xpath包含标准函数库 3.xpath是w3c标准 二、xpath节点关系 1.父节点 2.子节点 3.同胞节点 4.先辈节点 5.后代节点 三、xpath语法 ...

Chengf_的博客 1062

爬虫二----使用xpath爬取网站的学习

lxml 是一个用于处理XML和HTML文档的Python库。dev_list = ret.xpath('/html/body/div[3]/div[2]/div') # html下的body标签下的第三个div标签下的第二个div标签下的第一个div。文本内容选择:使用 text() 函数选择节点的文本内容,例如 //p/text() 会选择文档中所有 <p> 元素的文本内容。选择子节点:使用斜杠 / 表示选择子节点,例如 //div/p 会选择文档中所有 <div> 元素下的所有 <p> 元素。

weixin_60472488的博客 557

Scrapy学习(二):Xpath使用与并行化操作

一、xpath介绍 XPath 是一门在 XML 文档中查找信息的语言。XPath 用于在 XML 文档中通过元素和属性进行导航。 XPath 使用路径表达式在 XML 文档中进行导航 XPath 包含一个标准函数库 XPath 是 XSLT 中的主要元素 XPath 是一个 W3C 标准,支持HTML 节点 在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、...

lizhaozhaozhaoxuan的博客 516

Java Selenium学习笔记(二):WebDriver元素定位之XPath定位

上一篇博客总结了WebDriver元素定位的前6种方式,本篇来总结如何使用XPath定位页面元素? 1.什么是XPath? XPath是XML Path的简称,它是一种用来确定XML文档中某部分位置的语言。由于HTML文档本身就是一个标准的XML页面,所以可以使用xpath在web应用中定位元素。 使用xpath定位页面元素时, WebDriver会将整个页面的所有元素进行扫描以定位我们所需...

我们仨 754

爬虫学习(二)利用Xpath与多线程的百度贴吧爬虫

知识点笔记 1.  Xpath介绍与配置          XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言。XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。Xpath支持HTML,可以在XML文档中检索信息,是一种高效的检索语言,优于正则表达式简单强大。                 安装:XPath属于lxm

weixin_38612922的博客 574
上一篇: 关于Web自动化的一些思考
下一篇: 一些好用的查询页面元素的小工具
鲨鲨脆
博客等级 码龄11年 2粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值