八. Xpath语法

1. xpath节点选择

路径表达式 含义 举例 结果
nodename 选取此节点的所有子节点 div 选取div的所有子节点。
/ 从根节点开始选取,绝对路径。 /div 从根节点开始选取div。
// 选取节点,而不考虑他们的位置,相对路径。 //div 选取div。
. 选取当前节点 暂无 暂无。
.. 选取当前节点的父节点 暂无 暂无。
@ 选取属性 @class 选取名为class的所有属性。
* 匹配所有元素节点 暂无 暂无。
实战例子 结果
/div/a[1] 选取div子元素的第一个a元素
//li[@id] 选取所有含id属性的li元素
//li[@class="info"] 选取所有含class=“info”的li元素
div//h2 选取属于div元素的后代的所有h2元素
h2/text() 选取所有h2元素里面的文本信息
string(.) 选取某元素中含嵌套的所有文本内容,例如:html.xpath('//div')[0].xpath('string(.)')。另外,返回结果的格式不再是list,而是'lxml.etree._ElementUnicodeResult',可直接使用str类的操作,例如:sel.xpath('string(.)').strip()。
string(arg) 选取指定arg中含嵌套的所有文本内容,例如:html.xpath('string(//div)')。返回结果的格式同上。
//div[starts-with(@class,"article")] 选取class属性以article开头的所有div元素
position() 选取对应位置的元素。例如:html.xpath('//div[position()<=2]')
last() 选择对应位置的最后一个元素。例如:html.xpath('//div[last()]')

你可能感兴趣的:(八. Xpath语法)