xpath和lxml类库
1. xpath和lxml
2. 什么是xpath
3. 认识xml
3.1 html和xml的区别
.png)
3.2 xml的树结构
.png)
4. xpath的节点关系
4.1 xpath中的节点是什么
每个XML的标签我们都称之为节点,其中最顶层的节点称为根节点。
4.2 xpath中节点的关系
.png)
5. xpath中节点选择的工具
- Chrome插件 XPath Helper
- 下载地址:https://pan.baidu.com/s/1UM94dcwgus4SgECuoJ-Jcg 密码:337b
- Firefox插件 XPath Checker
6. xpath语法
6.1 选取节点
下面列出了最有用的表达式:
|
表达式
|
描述
|
|
nodename
|
选中该元素。
|
|
/
|
从根节点选取、或者是元素和元素间的过渡。
|
|
//
|
从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。
|
|
.
|
选取当前节点。
|
|
..
|
选取当前节点的父节点。
|
|
@
|
选取属性。
|
|
text()
|
选取文本。
|
实例
|
路径表达式
|
结果
|
|
bookstore
|
选择bookstore元素。
|
|
/bookstore
|
选取根元素 bookstore。注释:假如路径起始于正斜杠( / ),则此路径始终代表到某元素的绝对路径!
|
|
bookstore/book
|
选取属于 bookstore 的子元素的所有 book 元素。
|
|
//book
|
选取所有 book 子元素,而不管它们在文档中的位置。
|
|
bookstore//book
|
选择属于 bookstore 元素的后代的所有 book 元素,而不管它们位于 bookstore 之下的什么位置。
|
|
//book/title/@lang
|
选择所有的book下面的title中的lang属性的值。
|
|
//book/title/text()
|
选择所有的book下面的title的文本。
|
6.2 查找特定的节点
|
路径表达式
|
结果
|
|
//title[@lang="eng"]
|
选择lang属性值为eng的所有title元素
|
|
/bookstore/book[1]
|
选取属于 bookstore 子元素的第一个 book 元素。
|
|
/bookstore/book[last()]
|
选取属于 bookstore 子元素的最后一个 book 元素。
|
|
/bookstore/book[last()-1]
|
选取属于 bookstore 子元素的倒数第二个 book 元素。
|
|
/bookstore/book[position()>1]
|
选择bookstore下面的book元素,从第二个开始选择
|
|
//book/title[text()='Harry Potter']
|
选择所有book下的title元素,仅仅选择文本为Harry Potter的title元素
|
|
/bookstore/book[price>35.00]/title
|
选取 bookstore 元素中的 book 元素的所有 title 元素,且其中的 price 元素的值须大于 35.00。
|
6.3 选取未知节点
|
通配符
|
描述
|
|
*
|
匹配任何元素节点。
|
|
@*
|
匹配任何属性节点。
|
|
node()
|
匹配任何类型的节点。
|
实例
|
路径表达式
|
结果
|
|
/bookstore/*
|
选取 bookstore 元素的所有子元素。
|
|
//*
|
选取文档中的所有元素。
|
|
//title[@*]
|
选取所有带有属性的 title 元素。
|
6.3 选取若干路径
实例
|
路径表达式
|
结果
|
|
//book/title | //book/price
|
选取 book 元素的所有 title 和 price 元素。
|
|
//title | //price
|
选取文档中的所有 title 和 price 元素。
|
|
/bookstore/book/title | //price
|
选取属于 bookstore 元素的 book 元素的所有 title 元素,以及文档中所有的 price 元素。
|
xpath和lxml类库的更多相关文章
- XPath与lxml类库
有同学说,我正则用的不好,处理HTML文档很累,有没有其他的方法? 有!那就是XPath,我们可以先将 HTML文件 转换成 XML文档,然后用 XPath 查找 HTML 节点或元素. 什么是XML ...
- PYTHON XPath与lxml类库
XPath,我们可以用先将HTML文档转换成XML文档,然后用XPath查找HTML节点或元素. XML文档实例 HTML DOM模型示例 HTML DOM定义了访问和操作HTML文档的标准方法,以树 ...
- Python开发【第*篇】【Xpath与lxml类库】
什么是XML XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似 HTML XML 的设计宗旨是传输数据,而非显示数据 XML 的标签需要 ...
- 五、Xpath与lxml类库
什么是XML XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似 HTML XML 的设计宗旨是传输数据,而非显示数据 XML 的标签需要 ...
- 【转】 HTML解析:基于XPath的C#类库HtmlAgiliytyPack
[转] HTML解析:基于XPath的C#类库HtmlAgiliytyPack 最近处于毕业设计开始阶段,前期工作需要去国外的一些专业数据库网站比对一些所需TF家族信息,为了快捷方便,想到用程序去帮助 ...
- Python爬虫(十二)_XPath与lxml类库
Python学习指南 有同学说,我正则用的不好,处理HTML文档很累,有没有其他的方法? 有!那就是XPath,我们可以用先将HTML文档转换成XML文档,然后用XPath查找HTML节点或元素. 什 ...
- [XPath] XPath 与 lxml (二)XPath 语法
XPath 选取节点时使用的表达式是一种路径表达式.节点是通过路径(path)或者步(steps)来选取的. 本章使用以下 XML 文档作为示例. <?xml version="1.0 ...
- [XPath] XPath 与 lxml (一)XPath 术语
前言 这是一篇主要介绍 XPath 的文章,由于 JQuery 已经不支持 XPath,所以本文主要通过 Python 的 lxml.etree 来介绍 XPath. 什么是 XPath ? XPat ...
- Python爬虫爬取豆瓣电影之数据提取值xpath和lxml模块
工具:Python 3.6.5.PyCharm开发工具.Windows 10 操作系统.谷歌浏览器 目的:爬取豆瓣电影排行榜中电影的title.链接地址.图片.评价人数.评分等 网址:https:// ...
随机推荐
- Web项目中得到访问者的真实ip
Web项目中得到访问者的真实ip 描述:最近要实现个功能是要记录管理员登录的真实ip,但在项目中如果直接使用request.getRemoteAddr()获得ip的话,获得的可能不是真实ip,是因为使 ...
- 团队第二次 # scrum meeting
github 本此会议项目由PM召开,召开时间为4-3日晚上9点 召开时长15分钟 任务表格 袁勤 学习SpringBoot https://github.com/buaa-2016/phyweb/i ...
- day31网络编程
网络编程1. 目标:编写一个C/S架构的软件 C/S: Client(用户端)--------基于网络----------Server(服务端) B/S: Browser-------基于 ...
- linux 获取帮助的命令
Linux命令详解:[7]获得命令帮助 听语音 | 浏览:4601 | 更新:2015-01-30 20:21 | 标签:linux 1 2 3 4 5 分步阅读 在维护和使用Linux系统时,常常会 ...
- PyQt5系列教程(六)如何让界面和逻辑分离
软硬件环境 OS X EI Capitan Python 3.5.1 PyQt 5.5.1 PyCharm 5.0.3 前言 前面的内容我们介绍了利用QtDesigner来设计界面,再通过命令行工具p ...
- delete content on the right of cursor, Mac
delete content on the right of cursor, Mac It's not convenient to press Fn+delete to delete content ...
- 【FZSZ2017暑假提高组Day1】确定小组
[问题描述] 有n个人坐成一排,这n个人都在某一个小组中,同一个小组的所有人所坐的位置一定是连续的. 有一个记者在现场进行采访,他每次采访都会询问一个人其所在的小组有多少人,被询问的每个人都给出了正确 ...
- ELK收集Nginx|Tomcat日志
1.Nginx 日志收集,先安装Nginx cd /usr/local/logstash/config/etc/,创建如下配置文件,代码如下 Nginx.conf input { file { typ ...
- JAVA四则运算(读写文件)
完成时间:17:10 package 四则运算试题; import java.io.BufferedReader; import java.io.PrintStream; import java.ut ...
- 将python、pip 加入环境变量
加python: CMD里输: path=%path%;C:\Python27 其中 C:\Python27 为python的exe所在的文件夹 加pip: CMD里输: path= ...