Xpath简明教程(十分钟入门)
Xpath表达式
XPath(全称:XML Path Language)即 XML 路径语言,它是一门在 XML 文档中查找信息的语言,最初被用来搜寻 XML 文档,同时它也适用于搜索 HTML 文档。因此,在爬虫过程中可以使用 XPath 来提取相应的数据。
提示:XML 是一种遵守 W3C 标椎的标记语言,类似于 HTML,但两者的设计目的是不同,XML 通常被用来传输和存储数据,而 HTML 常用来显示数据。
您可以将 Xpath 理解为在XML/HTML文档中检索、匹配元素节点的工具。Xpath 使用路径表达式来选取
XML/HTML文档中的节点或者节点集。Xpath 的功能十分强大,它除了提供了简洁的路径表达式外,还提供了100 多个内建函数,包括了处理字符串、数值、日期以及时间的函数。因此 Xpath 路径表达式几乎可以匹配所有的元素节点。Python 第三方解析库 lxml 对 Xpath 路径表达式提供了良好的支持,能够解析 XML 与 HTML 文档。
Xpath节点
XPath 提供了多种类型的节点,常用的节点有:元素、属性、文本、注释以及文档节点。如下所示:
<?xml version="1.0" encoding="utf-8"?>
<website>
<site>
<title lang="zh-CN">website name</title>
<name>编程帮</name>
<year>2010</year>
<address>www.biancheng网站站点" rel="nofollow" />
<website></website> (文档节点)
<name></name> (元素节点)
lang="zh-CN" (属性节点)
节点关系
XML 文档的节点关系和 HTML 文档相似,同样有父、子、同代、先辈、后代节点。如下所示:<?xml version="1.0" encoding="utf-8"?>
<website>
<site>
<title lang="zh-CN">website name</title>
<name>编程帮</name>
<year>2010</year>
<address>www.biancheng网站站点" rel="nofollow" />
title name year address 都是 site 的子节点
site 是 title name year address 父节点
title name year address 属于同代节点
title 元素的先辈节点是 site website
website 的后代节点是 site title name year address
Xpath基本语法
1) 基本语法使用
Xpath 使用路径表达式在文档中选取节点,下表列出了常用的表达式规则:表达式 | 描述 |
|---|---|
node_name | 选取此节点的所有子节点。 |
/ | 路径匹配,从根节点选取。 |
// | 相对路径匹配,从所有节点中查找当前选择的节点,包括子节点和后代节点,其个 / 表示根节点。 |
. | 选取当前节点。 |
.. | 选取当前节点的父节点。 |
@ | 选取属性值,通过属性值选取数据。常用元素属性有 @id 、@name、@type、@class、@tittle、@href。 |
下面以下述代码为例讲解 Xpath 表达式的基本应用,代码如下所示:
<ul class="BookList">
<li class="book1" id="book_01" href="http://www.biancheng网站站点" rel="nofollow" />
xpath表达式://li
匹配内容:
c语言小白变怪兽
纸质书
80元
红蓝色封装
Python入门到精通
电子书
45元
蓝绿色封装
xpath表达式://li/p[@class="name"]
匹配内容:
c语言小白变怪兽
Python入门到精通
xpath表达式://li/p[@class="model"]
匹配内容:
纸质书
电子书
xpath表达式://ul/li/@href
匹配内容:
http://www.biancheng网站站点" rel="nofollow" />
[]方括号。如下所示: xpath表达式://ul/li[@class="book2"]/p[@class="price"]
匹配结果:45元
2) xpath通配符
Xpath 表达式的通配符可以用来选取未知的节点元素,基本语法如下:
xpath通配符
通配符
描述说明
*
匹配任意元素节点
@*
匹配任意属性节点
node()
匹配任意类型的节点
示例如下:
xpath表达式://li/*
匹配内容:
c语言小白变怪兽
纸质书
80元
红蓝色封装
Python入门到精通
电子书
45元
蓝绿色封装
3) 多路径匹配
多个 Xpath 路径表达式可以同时使用,其语法如下:
示例应用:xpath表达式1 | xpath表达式2 | xpath表达式3
表达式://ul/li[@class="book2"]/p[@class="price"]|//ul/li/@href
匹配内容:
45元
http://www.biancheng网站站点" rel="nofollow" />
- 随机文章
- 核心危机(核心危机魔石合成攻略)
- 饿了么红包怎么用(饿了么红包怎么用微信支付)
- 儿童教育文章(儿童教育)
- 广州4a广告公司(广州4a广告公司创意总监年薪)
- xboxones(xboxone手柄怎么配对主机)
- 兵马俑(兵马俑介绍和历史背景)
- 陈武简历
- 帆船比赛(帆船比赛视频)
- 海猫鸣泣之时游戏(海猫鸣泣之时游戏在哪玩)
- 韩国媳妇和小雪(韩国媳妇和小雪的父亲工资是多少)
- 儋州市第二中学(儋州市第二中学录取分数线)
- 地球日主题(2020年世界地球日主题)
- 和柳亚子(和柳亚子先生于田)
- 冰客(冰客果汁)
- yy魔兽(yy魔兽世界)
- 国外成人游戏(国外成人游戏注册需要visa信用卡)
- 充值卡代理(充值卡代理加盟)
- 拆奶罩
- 郭妮小说(恶魔的法则郭妮小说)
- 东天目山(东天目山景区)
- 蝙蝠给人类的一封信(蝙蝠给人类的一封信)
- 大松电饭煲(美的大松电饭煲)
- 疯狂填字(疯狂填字5)
- 点对点短信息(点对点短信息费是什么意思)
- 观音普门品(观音普门品念诵全文)
- 河北省大运会(河北省大运会时间)
- 哈利波特官网(哈利波特官网在哪里)
- 骇客神条(骇客神条怎么辨别真假)
- 杜星霖(杜星霖图片)
- 查传倜(查传倜个人生活)
