一、前言
lxml库是一个高性能的Python库,用于处理XML和HTML文档。它提供了一套丰富的API,可以用于解析、提取、修改和创建XML和HTML内容。lxml库的主要特点包括:
- 高效的解析性能:lxml是用C语言实现的,因此在解析大型文档时具有很高的效率。
- 支持XPath和XSLT:lxml支持XPath 1.0,这是一种在XML文档中查找信息的语言,同时也支持XSLT,这是一种用于转换XML文档的语言。
- 易于使用:lxml提供了简单的API,使得对XML和HTML的操作变得直观和方便。
- 灵活的解析方式:lxml支持多种解析方式,包括但不限于DOM解析和SAX事件驱动解析。
- 兼容性:lxml可以解析不符合标准的XML文档,并且能够处理HTML文档中的不规则标记。
二、lxml库简介
Ixml 库的大部分功能是由 etree 模块提供的。
使用 XPath 解析网页时,首先需要调用etree 模块下的HTML 类对 HTTP 响应的网页进行初始化 (etree, HTM())从而构造Element 类型的XPath 解析对象;
然后使用 XPath 对 Element 对象进行节点选择,最后返一个回一个列表。若 HTML中的节点没有闭合,ctree 模块还可提供自动补全功能。
三、通过路径选择节点
格式 | 示例 | 说明 |
---|---|---|
/ | div/div | 选取div节点下的所有div子节点 |
// | div//div | 选取div节点下的所有div子孙节点 |
* | div/* | 选取div节点下的所有 |