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:// ...
随机推荐
- django之COOKIE 与 SESSION
COOKIE 与 SESSION 概念 cookie不属于http协议范围,由于http协议无法保持状态,但实际情况,我们却又需要“保持状态”,因此cookie就是在这样一个场景下诞生. cookie ...
- Java笔试面试题整理第五波
转载至:http://blog.csdn.net/shakespeare001/article/details/51321498 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...
- 常见的php模式
php中6种常见的设计模式 单例模式 观察者模式 策略模式 工厂模式 注册模式 适配器模式 单例模式 Db.php<?php /** * 单例模式 */ class Db { private s ...
- NodeJS client code websocket
var WebSocketClient = require('websocket').client; var client = new WebSocketClient(); client.on('co ...
- pandas 存取数据小笔记
import pandas as pd 1. 读取和保存 csv文件 #读 df = pd.read_csv(read_file_path, header=0) # 其中read_file_pat ...
- 多线程利器-队列(queue)
#队列有3中模式,先进先出,先进后出,优先级 1:先进先出import queue q = queue.Queue() #默认是先进先出q.put(12)q.put('jack')q.put({'na ...
- CSS vertical-align属性详解
. 首页 博客园 联系我 前言:关于vertical-align属性. 实践出真知. 垂直居中. 第二种用法. 留言评论 返回顶部 前言:关于vertical-align属性 vertical-ali ...
- ubuntu下搭建svn服务器
[ubuntu下搭建svn服务器] 1.创建目录 mkdir ~/svn/repository/ 2.创建仓库 svnadmin create repository 3.进入 repository/c ...
- Java 学习笔记提高篇
Java笔记(提高篇)整理 主要内容: 面向对象 异常 数组 常用类 集合 IO流 线程 反射 Socket编程 1. 面向对象 1.1包 用来管理Java中的类, 类似文件夹管理文件一样. 因 ...
- elasticsearch5安装
环境: centos7 es 5.4.3 es安装 一.下载 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsear ...