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()]') |











网友评论