Python lxml使用XPath解析Html
1.安装 lxml
直接 pip 安装
1 | pip install lxml |

2.构建 DOM
1 | from lxml import etree |
3.XPath 查询
3.1.获取当前节点及其内容
代码:
1 | ele = dom.xpath('//ul[1]/li')[0] |
结果:

3.2.获获取当前节点的 tagName 和 id 属性
代码:
1 | ele = dom.xpath('//ul')[0] |
结果:

3.3.获取节点的内容
代码:
1 | ele = dom.xpath('//ul[@id="china"]/li')[0] |
结果:

4.注意
- 使用 lxml 的 xpath 得到的结果总是 list 类型
- 若标签 tag.text 仅仅能获得处于 tag 下而不处于 tag 的子节点下的内容,例如 Html 代码如下:
1 | <div id="div1"> |
获取 id=”div1” 的内容,只能得到 div1.text,而不会得到 div2 元素及其内容。