什么是XPath?
XPath (XML Path Language) 是一门在 XML 文档中查找信息的语言,可用来在 XML 文档中对元素和属性进行遍历。
W3School官方文档:http://www.w3school.com.cn/xpath/index.asp
开发工具
- 开源的XPath表达式编辑工具:XMLQuire(XML格式文件可用)
- Chrome插件 XPath Helper
- Firefox插件 XPath Checker
选取节点
XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似。
下面列出了最常用的路径表达式:
在下面的表格中,我们已列出了一些路径表达式以及表达式的结果:
谓语
谓语用来查找某个特定的节点或者包含某个指定的值的节点,被嵌在方括号中。 在下面的表格中,我们列出了带有谓语的一些路径表达式,以及表达式的结果
选取未知节点
Xpath通配符可用来选取未知的XML元素
在下面的表格中,我们列出了一些路径表达式,以及这些表达式的结果:
选取若干路径
通过在路径表达式中使用“|”运算符,您可以选取若干个路径。实例
在下面的表格中,我们列出了一些路径表达式,以及这些表达式的结果:
Python操作Xpath
lxml库
lxml是一个HTML/XML的解析器,主要的功能是如何解析和提取HTML/XML数据
我们可以利用xpath语法来快速的定位特定元素以及节点信息
安装lxml
pip install lxml
Python操作xpath简单实例
from lxml import etree
html = '''
<bookstore>
<book price="100" category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
</bookstore>
'''
html = etree.HTML(html) #利用etree.THML将字符串转换为HTML
res = html.xpath('//book//*') #获取所有book的所有节点
print(res)