python爬虫总结之xpath元素定位

不得不说xpath是进阶爬虫的达摩斯之剑,不管是传统爬虫还是网络爬虫,其在网页爬取中使用起来相当方便。

一、xpath与lxml(etree)简介

XPath 是一门在 XML 文档中查找信息的语言。XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似。它还有及其丰富的标准函数库,XPath 含有超过 100 个内建的函数。这些函数用于字符串值、数值、日期和时间比较、节点和 QName 处理、序列处理、逻辑值等等。

 lxml 是用 Cython 实现的,而且增加了很多实用的功能,尤其是etree的引用。

二、xpath元素定位方法:

​​​​​​​/html/div

/html//div 表示选择根目录下的所有的子孙后代节点中的div节点,//表示相对路径

//div 表示选择所有的div节点

//div/div 表示选择所有的div节点的子节点中含有div的节点

//div/div/. 表示选择//div/div节点的当前层的节点,与//div/div的结果相同

//div/div/.. 表示选择//div/div节点的上一层节点,也就是选择一个div节点,该div节点的子节点有div节点

//div/div/* ,表示选择//div/div的所有子节点,//div/div会有两个匹配出来的节点

//div[@id='input'] 表示选择一个id为’input’的div节点

//div[@id='input']/input 表示选择一个id为’input’的div节点的input子节点

//table//input[@id='user'] 表示选择table的子孙后代中id为user的input节点

//input[@name='identity' and @class='kw'] 选择一个name为identity并且class为kw的input节点

//input[@name='identity' or @class='kw'] 选择一个name为identity,或者class为kw的节点

//input[@name='identity' or @class='kw'][1] 选择第一个name为identity,或者class为kw的节点

//input[@name='identity' or @class='kw'][last()] 选择最后一个name为identity,或者class为kw的节点

 

 

你可能感兴趣的:(Python)