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()]') |
网友评论