1. XPATH简介
1.1 XPATH的作用:
- XPATH是一门在XML文档中查找信息的语言。XPATH可以用来在XML文档中对元素和属性进行遍历
- XML是一种标记语法的文本格式,xpath可以方便的定位xml中的元素和其中的属性值。
- lxml是Python的一个包,这个包中包含了将html文本转成xml对象,和对对象执行xpath功能
1.2 节点的关系
xml_content = '''
<bookstore>
<book>
<title lang='eng'>Harry Potter</title>
<author>K.Rowing</author>
<year>2005</year>
<price>29<price>
</book>
</bookstore>
'''
- 父轴(Parent ):每个属性和元素都有个父轴
- book元素是 title 、author、year 和 price元素的父轴
- 子轴 (Children):拥有相同的父轴的节点
- title 、author、year 和 price元素都是book元素的子轴
- 同胞轴(Sibling):用有相同父元素的节点
- title 、author、year 和 price元素都是同胞
- 先辈轴(Ancsetor):某节点的父轴
- title 元素的父轴是book 和 bookstore
- 后代轴(Descendant):某节点的子轴,子轴的子轴等等
- book 的后代是 title 、author、year 和 price
- book 的后代是 title 、author、year 和 price
2. 基本使用
2.1 工具的安装
查找某个特定的节点或者包含某个指定的值的节点
2.2 模块的使用
- 在Python中我们通过安装lxml库来使用xpath技术
- lxml是一个HMLT/XML的解析器,主要功能是如何提取解析和提取HTML/XML数据,利用etree.html将字符串转化为Element对象
- xml python 官方文档:http://lxml.de/index.html
- etree的作用:
- 将HTML字符串转化为Element对象
- Element可以对象 可以转化为字符串或者二进制类型
2.3 节点测试
XPath支持的节点测试语法,能够对轴索筛选出的结果集做进一步过滤。具体常用的语法包括:
-
nodename
- 从指定轴匹配的所有节点中选出名称为nodename的节点
-
node()
- 选择与之匹配的所有类型的节点
-
text()
- 选择制定轴匹配的所有文本类型的节点
-
comment()
- 选择指定轴匹配的所有注释节点
-
processiong-instruction()
- 选择指定轴匹配的所有处理指令节点