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:// ...
随机推荐
- Android 开发 框架系列 百度语音合成
官方文档:http://ai.baidu.com/docs#/TTS-Android-SDK/6d5d6899 官方百度语音合成控制台:https://cloud.baidu.com/product/ ...
- Redis-Sentinel 数据源配置
1.redis配置文件 : redis.properties # Redis settings #sentinel_node_1 redis.sentinel1.host=192.168.0.1 re ...
- CentOS6.8 下RPM方式安装MySQL5.6
1. 检查MySQL及相关RPM包,是否安装,如果有安装,则移除(rpm –e 名称) yum remove mysql mysql-server mysql-libs(我用的上面的)或者 [root ...
- spring boot 错误处理之深度历险
今天终于把 boot 的异常处理完全研究透了: boot提供了很多错误的处理工作.默认情况下,我们会看到一个whiteLabel(白标)的页面. 这个可能不是我们所需.因此我们需要定制.我于是做了个深 ...
- SpringData中使用@Modifying注解实现修改操作
通过@Modifying可以实现修改和删除操作 @Modifying @Query("update Person set email = :email where lastName =:la ...
- python 字符串和字节数互转
在 python 中字符 是 str 类型, 字节是 bytes 类型 b = b'hello' # bytes 字节 s= 'hello' # str 字符串 可通过 type() 检查是什么类型 ...
- cxGrid类似pagecontrol的效果
1.对TcxGrid创建多个Level 2.对TcxGrid的TcxGridLevelOptions的TabsForEmptyDetail设置为True 3.再设置DetailTabsPosition ...
- 剑指offer例题——链表中倒数第K个结点
题目描述 输入一个链表,输出该链表中倒数第k个结点. 编程过程 此处采用两个指针依次后移的方法来求解,首先,用一个指针移到第k个位置,之后将第二个指针放在第一位,与第二个指针一同移动,当第二个指针移动 ...
- type的解释
在jquery-19.1.1源码中,type,检查对象的类型是:Boolean/Number/String/Function/Array/Date/RegExp/Object/Error中的一种,返回 ...
- 最流行的Python编辑器/IDEs你认识吗?
来源商业新知网,原标题:来!带你认识几种最流行的Python编辑器/IDEs(附链接) 大数据文摘授权转载自数据派THU 作者:By Gregory Piatetsky 格雷戈里·皮亚特斯基,KDnu ...