文档章节

XPath编写规则学习总结

孟飞阳
 孟飞阳
发布于 2016/06/26 10:21
字数 749
阅读 48
收藏 0
点赞 0
评论 0

XPath编写规则学习

辅助工具:firefox安装findbugs,view Xpath

firefox :Xpath验证方式:$x("xpath"); 粘贴xpath语句回车即可

定位:

1、依靠自己属性,文本定位:

   //td[text()='test']

   //div[contains(@class ,'test')]

   //input[@type='radio' and @value='1']

   //span[@name='bruce' and text()='bruce2'] 或 //span[@name='bruce'][ text()='bruce2'] --and关键字

   //span[@name='bruce' or text()='bruce2'] --or关键字

2、依靠父节点定位:

  //div[@class='test mytest']/div

  //div[@id='test']/div

3、依靠子节点定位

  //div[div[@id='test']] --寻找含有id=test的div的div

  //div[div[@name='test']]

  //div[p[@id='test']]

4、混合型定位

  //div[div[@name='test']]/img

  //td[a//font[contains(text(),'test')]]//input[@type='checkbox']

5、高级方法 

  (1)following-sibling ---寻找紧跟定位到的元素的下一个元素

   例子://input[@id='1234']/following-sibling=input --定位紧跟id=1234的下一个的input元素,同级有效

             //input[@id='1234']/following-sibling::input ,input后可再跟条件

   (2)preceding-sibling ---寻找紧跟定位到的元素的上一个元素

   例子://input[@id='123']/preceding-sibling=span --定位紧跟id=123的上一个span元素

             //input[@id='1234']/preceding-sibling::input ,input后可再跟条件

     (3)starts-with --判断是否以某关键字开头

      例子://input[starts-with(@id,'test')]

     (4)contains -- 是否包含某关键字

       例子: //td[a//font[contains(text(),'test')]]//input[@type='checkbox']

     (5)not ---不包含某关键字

        例子://input[not(@id='1234')]

                  //span[not(contaions(text(),'xpath'))]

6、索引关键字,position,last

    (1)position()=2

             position()>3

             position()<5    

      例子://div[@id='test']/span[2]或

                //div[@id='test']/span[position()=2] --正数第2个span

      (2)last()-1

       例子://div[@id='test']/span[last()-2] --倒数第2个span元素

7、根据属性定位

  //div[@class] --查找含有class属性的div

  //div[@class='test'] --查找含有class属性且class属性值为test的的div元素

8、不常用关键字

     (1)substring,语法:substring(str,start_postion,length) ,从1开始计算

           例子://div[@id='test']/span[substring(@name,3,5)='bruce'] --找name的第三位开始总共5位字母为bruce的span

     (2)substring-before ,语法:substring-before(str,substr)

           例子://div[@id='test']/span[substring-before(@class,'-')='spanclass'] --查找分割关键字前面的字符为spanclass的span

     (3)substring-after,语法:substring-after(str,substr)

            例子://div[@id='substring']/span[substring-after(@class,'-')='spanclass'] --查找分割关键字后面的字符为spanclass的span

9、通配符:*

      //span[@*='bruce']

      //*[@*='bruce']

      //*[@name='bruce']

10、axes 轴

   (1)parent 父节点

          例子://div[span[text()='+++test']]/parent::div[contaions(text(),'test')] --查找含有span的text为+++test的的div的父节点

                    //div[span[text()='+++test']]/parent::div/span[contaions(text(),'test')]

   (2)ancestor 祖先节点

          例子://div[span[text()='+++test']]/ancestor::div    

   (3)descendant 孙子节点

           例子://div[span[text()='+++test']]/descendant::div --会将该节点下的所有div打印出来

                      //div[span[text()='+++test']]/descendant::div/span[contaions(text(),'test')]

   (4)following 将当前节点下后面所有的指定节点取出

            例子://div[text()='current NodeA']/following::div --会将current NodeA后面的所有的div取出来,后续的div可再加条件判断       

   (5)preceding 将当前节点下前面所有的指定节点取出

            例子://div[text()='current NodeA']/preceding::div --会将current NodeA前面的所有的div取出来,后续的div可再加条件判断

© 著作权归作者所有

共有 人打赏支持
孟飞阳
粉丝 202
博文 921
码字总数 537449
作品 5
朝阳
个人站长
Python实现电影排行榜自动网盘下载(1)Scrapy爬虫框架

本人学习参考的是博主崔庆才的系列教程 cuiqingcai.com/912.html cuiqingcai.com/3472.html 当然是比我写的详细的多啦,下面是我自己总结的学习过程 简介 我们来看看要获取的电影信息的网址 ...

Seeker_zz
2017/08/02
0
0
元素定位XPath 简单操作分享

XPath 简单实用 学习Selenium2 为了学习元素定位开始学习xpath,现在把学习心得记录下,给大家参考下。 什么是 XPath? XPath 使用路径表达式在 XML 文档中进行导航 XPath 包含一个标准函数库...

余二五
2017/11/15
0
0
使用Scrapy构建一个网络爬虫

记得n年前项目需要一个灵活的爬虫工具,就组织了一个小团队用Java实现了一个爬虫框架,可以根据目标网站的结构、地址和需要的内容,做简单的配置开发,即可实现特定网站的爬虫功能。因为要考...

铁扇公主1
2017/05/04
48
0
Java 语言的 XPath 学习 API

简介: XPath 表达式比繁琐的文档对象模型(DOM)导航代码要容易编写得多。如果需要从 XML 文档中提取信息,最快捷、最简单的办法就是在 Java™ 程序中嵌入 XPath 表达式。Java 5 推出了 ja...

挨踢人生
2012/03/30
0
0
Scrapy爬取猫眼电影并存入MongoDB数据库

之前入门了Scrapy,用Scrapy框架爬取了豆瓣电影TOP250,最近打算学习下scrapy-redis分布式爬虫,学习之前再重新温故下Scrapy,这个总结我缩写了很多内容,很多介绍可以看下我之前写的豆瓣mov...

Treehl
2017/12/21
0
0
如何用好Xpath以精确定位节点位置

最近使用MetaSeeker抓取新浪微博,可最近新浪微博的格式结构发生了些变化。 对于一条含有转发内容的微博,该微博的发布时间和转发内容的发布时间都位于class名为lf的节点中,我在MetaStudio中...

司徒春运
2011/08/10
1K
0
C# WinForm开发系列 - XML/XSLT/XPATH

XML在WinForm, Asp.Net, Java, AJAX开发等方面应用, 以及对XML文档基本操作,如XPath检索节点. 当前XML被广泛应用与配置保存, 简单数据存储, 跨平台数据传输, 其身影活跃于Web Services, AJA...

长征2号
2017/07/09
0
0
想要在webmagic中自定义一门爬虫语言

早在开始开发webmagic之前,就一直在思考,如何让爬虫的描述变得简单? 单条表达式描述一个抽取规则的诱惑是相当大的,这样子注解、配置、动态生成,都非常容易展开了。有个朋友做过一个管理...

黄亿华
2013/09/04
0
0
Scrapy学习实例(三)采集批量网页

原文可以听歌 Scrapy学习实例(三)采集批量网页 --- 先来首火影压压惊 (。・`ω´・) 最开始接触 是在Scrapy的文档上看到的,但是并看读懂这是什么意思。接下来看别人的案例,有使用到Rules...

崔斯特
2017/12/12
0
0
Scrapy自动爬取商品数据爬虫

创建爬虫项目 首先确保在Python环境下安装好Scrapy。具体过程可以参考我之前的文章 Python环境下Scrapy爬虫框架安装 进入windows的cmd或mac终端在某文件目录(这里为craw文件夹)下创建爬虫项目...

巧不巧克力
2017/11/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Android 复制和粘贴功能

做了一回搬运工,原文地址:https://blog.csdn.net/kennethyo/article/details/76602765 Android 复制和粘贴功能,需要调用系统服务ClipboardManager来实现。 ClipboardManager mClipboardM...

她叫我小渝
今天
0
0
拦截SQLSERVER的SSL加密通道替换传输过程中的用户名密码实现运维审计(一)

工作准备 •一台SQLSERVER 2005/SQLSERVER 2008服务 •SQLSERVER jdbc驱动程序 •Java开发环境eclipse + jdk1.8 •java反编译工具JD-Core 反编译JDBC分析SQLSERVER客户端与服务器通信原理 SQ...

紅顏為君笑
今天
6
0
jQuery零基础入门——(六)修改DOM结构

《jQuery零基础入门》系列博文是在廖雪峰老师的博文基础上,可能补充了个人的理解和日常遇到的点,用我的理解表述出来,主干出处来自廖雪峰老师的技术分享。 在《零基础入门JavaScript》的时...

JandenMa
今天
0
0
linux mint 1.9 qq 安装

转: https://www.jianshu.com/p/cdc3d03c144d 1. 下载 qq 轻聊版,可在百度搜索后下载 QQ7.9Light.exe 2. 去wine的官网(https://wiki.winehq.org/Ubuntu) 安装 wine . 提醒网页可以切换成中...

Canaan_
今天
0
0
PHP后台运行命令并管理运行程序

php后台运行命令并管理后台运行程序 class ProcessModel{ private $pid; private $command; private $resultToFile = ''; public function __construct($cl=false){......

colin_86
今天
1
0
数据结构与算法4

在此程序中,HighArray类中的find()方法用数据项的值作为参数传递,它的返回值决定是否找到此数据项。 insert()方法向数组下一个空位置放置一个新的数据项。一个名为nElems的字段跟踪记录着...

沉迷于编程的小菜菜
今天
1
1
fiddler安装和基本使用以及代理设置

项目需求 由于开发过程中客户端和服务器数据交互非常频繁,有时候服务端需要知道客户端调用接口传了哪些参数过来,这个时候就需要一个工具可以监听这些接口请求参数,已经接口的响应的数据,这种...

银装素裹
今天
0
0
Python分析《我不是药神》豆瓣评论

读取 Mongo 中的短评数据,进行中文分词 对分词结果取 Top50 生成词云 生成词云效果 看来网上关于 我不是药神 vs 达拉斯 的争论很热啊。关于词频统计就这些,代码中也会完成一些其它的分析任...

猫咪编程
今天
0
0
虚拟机怎么安装vmware tools

https://blog.csdn.net/tjcwt2011/article/details/72638977

AndyZhouX
昨天
1
0
There is no session with id[xxx]

参考网页 https://blog.csdn.net/caimengyuan/article/details/52526765 报错 2018-07-19 23:04:35,330 [http-nio-1008-exec-8] DEBUG [org.apache.shiro.web.servlet.SimpleCookie] - Found......

karma123
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部