XPath,全称XML Path Language,即XML路径语言,是一门在XML文档中查找信息的语言。 在做爬虫时,完全可以使用XPath来做相应的信息抽取。
XPath的选择功能十分强大,提供了非常简洁明了的路径选择表达式。它还提供了超过100个内建函数,用于字符串、数值、时间的匹配以及节点、序列的处理等。几乎所有想要定位的节点,都可以用XPath来选择。
XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。
一、XPath常用规则
示例如下:
//title[@lang='eng']
代表选择所有名称为title,且属性lang的值为eng的节点。后面会通过Python的lxml库,利用XPath进行HTML的解析。
注意:使用之前,首先要确保安装好lxml库。
1.所有节点
一般会用//开头的XPath规则来选取所有符合要求的节点。//* 匹配所有节点,整个HTML文本中的所有节点都会被获取。
如: test.html
from lxml import etree #首先导入lxml库的etree模块
html = etree.parse('./test.html', etree.HTMLParser())
result = html.xpath('//*') #*代表匹配所有节点,整个HTML文本中的所有节点都会被获取
print(result) # 返回形式是一个列表
注意:每个元素是Element类型。
result = html.xpath('//li')
print(result) #返回结果是列表形式
print(result[0])
2.子节点
通过/或//即可查找元素的子节点或子孙节点。