xpath是一种表达式语言,主要是为了在xml文档节点树中定位节点所设计的,它的返回值可能是节点,节点结合,原子值以及它们的混合等。需要注意的是,xml中是严格的树结构,任意标签都需要有结束标记。在爬虫工作中中,很多时候可以通过使用xpath查找xml文件,从而查找需要的元素。
首先需要了解最常用的几种路径表达式:
nodename:选取此节点所有子节点
/ : 从根节点开始选取
// : 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。
. :选取当前节点
.. :选取当前节点的父节点
@ : 选取属性
此外还有谓语部分,镶嵌在[]中,表示选取的特定的节点或者包含某个值的节点
通配符部分:用来选取未知的xml元素
* 匹配任何元素节点 /bookstore/* 选取bookstore元素的所有子元素
@* 匹配任何属性节点 //*选取文档所有元素
node 匹配任何节点 //title[@*] 匹配所有带有属性的title元素
选取若干路径 |:
eg://book/title | //book/price 选取 book 元素的所有 title 和 price 元素
/bookstore/book/title | //price 选取属于 bookstore 元素的 book 元素的所有 title 元素,以及文档中所有的 price 元素。
通过使用xpath,可以帮我们在很多地方代替正则表达式,降低爬取难度,但是使用xpath爬取之前,一点要先转换为xml文件。