Xpath表达式的粗介绍
关于在自动化中Xpath表达式的书写,其实我也只是刚刚入门,粗略的跟着网上的教程学了一下,这篇我就来分享总结一下我学习到的知识。
首先呢,我们先认识一下什么是Xpath。Xpath是XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言。因为Xpath基于XML的树状结构,提供了在数据结构树种寻找节点的能力,所以Xpath被开发者们当做一种小型的查询语言。
关于如何在网页中获取元素的Xpath表达式,我在上一篇文章中就已经介绍过了,在这篇中就不重复叙说了。当然,我在上篇文章上也说了,这种通过工具获取的Xpath表达式,是死板的,不精确的,很容易找不到元素。在实际的项目中,Xpath的表达式可能会是很长的一句,或者关键信息会有相同的存在,所以我们不能够快速准确的获取好唯一的节点信息。这就需要用一些其他的表达方法来帮助我们了。这也是我写这篇文章的用意。介绍几种比较实用的Xpath定位方法。
text()方法:这个方法我们用百度首页上的“新闻”按钮来举例。首先看网页源代码如下

我们可以看得出来在和“新闻”同类型的元素很多,他们的className是相同的,如果这时候源码中对方没有标出不同的name属性,那我对于我们获取新闻这个元素就很难了。这时候我们的text()方法就可以派上用场了。表达式:.//*[@id='u1']/a[text()='新闻']。也就是说,当我们要定位的元素是文本类型,且附近同类型元素太多时,我们就可以用text()方法来快速定位到我们需要的文本元素。
这里我在个人推荐一下,面对这样一个唯一标签下面,一排同类型标签的时候,我们还有一种简单的Xpath表达式来定位元素。例如,我们想要定位的“新闻”元素,它排在这群文本的第一位,表达式可以写成:.//*[@id='u1']/a[1]。代表我要定位id为“u1”标签下所有已“a”标签起头的元素中的第一个元素。
在我目前的自动化学习过程中,我用到方法就是以上者三种方法,当然肯定还有更多其他好用的方法,不过对于我来说,目前这三种已经够用了。所以我也就简略的介绍了一下这三种方法。
Xpath表达式的粗介绍的更多相关文章
- 网络爬虫之Selenium模块和Xpath表达式+Lxml解析库的使用
实际生产环境下,我们一般使用lxml的xpath来解析出我们想要的数据,本篇博客将重点整理Selenium和Xpath表达式,关于CSS选择器,将另外再整理一篇! 一.介绍: selenium最初是一 ...
- 【XML】XPath表达式
XPath简介 XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言. XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力.起 ...
- EL表达式的简单介绍
EL表达式的简单介绍 一.JSP EL语言定义 E L(ExpressionLanguage) 目的:为了使JSP写起来更加简单. 表达式语言的灵感来自于ECMAScript 和 XPath 表达式 ...
- 第三百三十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—Scrapy启动文件的配置—xpath表达式
第三百三十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—Scrapy启动文件的配置—xpath表达式 我们自定义一个main.py来作为启动文件 main.py #!/usr/bin/en ...
- 第三百三十六节,web爬虫讲解2—urllib库中使用xpath表达式—BeautifulSoup基础
第三百三十六节,web爬虫讲解2—urllib库中使用xpath表达式—BeautifulSoup基础 在urllib中,我们一样可以使用xpath表达式进行信息提取,此时,你需要首先安装lxml模块 ...
- urllib下使用Xpath表达式示例
urllib下使用Xpath表达式示例 使用xpath表达式需要先将需要匹配的数据转换成tree格式,这就需要先装lxml模块.安装方法可以使用pip安装. 示例代码: import urllib.r ...
- 十八 Python分布式爬虫打造搜索引擎Scrapy精讲—Scrapy启动文件的配置—xpath表达式
我们自定义一个main.py来作为启动文件 main.py #!/usr/bin/env python # -*- coding:utf8 -*- from scrapy.cmdline import ...
- 十五 web爬虫讲解2—urllib库中使用xpath表达式—BeautifulSoup基础
在urllib中,我们一样可以使用xpath表达式进行信息提取,此时,你需要首先安装lxml模块,然后将网页数据通过lxml下的etree转化为treedata的形式 urllib库中使用xpath表 ...
- selenium用css、xpath表达式进行元素定位
绝对路径选择 从根节点开始的,到某个节点,每层都依次写下来,每层之间用 / 分隔的表达式,就是某元素的 绝对路径 Xpath : /html/body/div CSS : html>body&g ...
随机推荐
- [Codeforces 1191D] Tokitsukaze, CSL and Stone Game(博弈论)
[Codeforces 1191D] Tokitsukaze, CSL and Stone Game(博弈论) 题面 有n堆石子,两个人轮流取石子,一次只能从某堆里取一颗.如果某个人取的时候已经没有石 ...
- Lpl and Energy-saving Lamps
During tea-drinking, princess, amongst other things, asked why has such a good-natured and cute Drag ...
- js中基本数据类型与引用数据类型的本质区别
代码 /** * 基本数据类型:string, number, boolean, null, undefined. * * 说明: * 基本数据类型的变量是保存在栈内存中的,基本数据类型的值 * 直接 ...
- 解决Vuex刷新页面数据丢失问题 ---- vuex-persistedstate持久化数据
何为Vuex?用处是什么?为什么刷新丢失? Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化 ...
- Java中的集合详解及代码测试
1:对象数组 (1)数组既可以存储基本数据类型,也可以存储引用类型.它存储引用类型的时候的数组就叫对象数组. 2:集合(Collection) (1)集合的由来 我们学习的是Java -- 面向对象 ...
- There is no Action mapped for namespace [/] and action name [TestAction] ass
1.修改action的name值 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE strut ...
- 树莓派 msmtp和mutt 的安装和配置
1,安装mutt sudo apt-get install mutt 2,安装msmtp sudo apt-get install msmtp 3,设置mutt /etc/Muttrc # 系统全局设 ...
- Oracle 数字转为字符串 to_char()
格式:TO_CHAR(number,'format_model') 9 -->Represents a number 0 --> Forces a zero to be displayed ...
- css定位选择兄弟元素,nth-of-type
<span class="input-group-btn" the-id="num-change"> <button class=" ...
- BZOJ-1907 树的路径覆盖 贪心
题意:给一个n个点的树,求树的最小路径覆盖.(这个最小路径覆盖不能有重点) 解法:往图论方向想很久,想得太复杂了,其实直接贪心.这个大佬题解写得很好: https://blog.csdn.net/bl ...