Xpath语法

article:选取所有article元素的子节点

/article:选取根元素article

article/a:选取所有属于article的子元素的a元素

//div:选取所有div元素(不论出现在文档任何地方)

article//div:选取所有属于article元素的后代的div元素,不管他出现在article之下的任何位置

//@class:选取所有名为class的属性

/article/div[1]:选取属于article子元素的第一个div元素

/artlcle/div[last()]:选取属于article子元素的最后一个div元素

/article/div[last()-1]:选取属于article元素的倒数第二个div元素

//div[@lang]:选取所有拥有lang属性的div元素

//div[@lang='eng']:选取所有lang属性为eng的div元素

/div/*:选取属于div元素的所有子节点

//*:选取所有元素

//div[@*]:选取所有带属性的title元素

/div/a|//div/p:选取所有div元素的a和p元素

//span|//url:选取文档中的span和url元素

article/div/p|//span:选取所有属于article元素的div元素的p元素以及文档中所有的span元素

常见的语法规则就这么多,下面以伯乐在线的一片文章爬取来介绍xpath的实际应用。

例如在一篇文章中http://blog.jobbole.com/113549/ 

中抓取文章标题“三款简单而优秀的Linux网络监视工具”

Xpath语法


Xpath语法

常见的两者提取方式如下图

Xpath语法

re_selector1是根据id的唯一性来定位,用id定位是最准确高效的;re_selector是根据class来定位,要注意检查该class是不是全局唯一。正如上图后面所示,我们成功的获得了标题。