XPath表达式基础讲解
一、什么是XPath表达式
Xpath是XML路径语言,提供了在数据结构树种寻找节点的能力,所以Xpath被开发者们当做一种小型的查询语言。
匹配语句
/ 逐层提取
text() 提取标签下面的文本
//标签名** 提取所有名为**的标签
//标签名[@属性=‘属性值’] 提取属性为**的标签
@属性名 代表取某个属性值
二、实例介绍
这是准备爬取的一个网页源代码
<html>
<head>
<title>程序员小哲</title>
</head>
<body>
<p>chengxuyuan</p>
<p>xiaozhe</p>
<a href="www.baidu.com">登录</a>
<a href="www.taobao.com">注册</a>
<div class="xiaozhe" data-type="dr">
<div id="guanzhu">欢迎关注公众号:骄傲的程序员</div>
</div>
</body>
</html>
实例1
XPatah表达式:/html/head/title/text()
匹配过程:先找html下的head下的title的标题
匹配后:输出我们的title标题,就是"程序员小哲"
实例2
XPatah表达式://p/text()
匹配过程:查找代码中所有的<p>标签内容
匹配后:输出<p>标签内容,就是["chengxuyuan","xiaozhe"]
实例3
XPatah表达式://a
匹配过程:查找代码中所有的<a>标签内容
匹配后:输出<a>标签内容,就是["登录","注册"]
实例4
XPatah表达式://div[@id="guanzhu"]/text()
匹配过程:查找代码中所有的<div>并且id=“guanzhu”的标签内容
匹配后:输出标签内容,就是"欢迎关注公众号:骄傲的程序员"
实例5
XPatah表达式://a/@href
匹配过程:查找代码中所有<a>标签的href属性
匹配后:输出标签属性内容,就是["www.baidu.com”,"www.taobao.com"]
XPath就到这里了,如果想了解正则表达式的同学,可以点击前面的正则表达式查看。