目录
lxml库
lxml是Python的一个解析库,专门用于解析XML与HTML,支持XPath解析方式。由于lxml库的底层是使用C语言编写的,所以其解析效率非常的高。
在我们后面讲解使用该库之前,我们需要安装该库。一般通过如下命令进行安装即可,代码如下:
pip install lxml
lxml基本用法
既然,lxml库支持解析XML以及HTML,那么肯定就需要学会这2种文档的解析方式。下面,我们来分别讲解。
解析XML文件
首先,我们需要使用lxml库解析XML文件,这里XML文件其实有很多种类,这里博主随便定义一个XML进行解析。
XML代码如下:
<?xml version="1.0" encoding="utf-8"?>
<people>
<zhangsan class="法外狂徒">
<sex>男</sex>
<age>21</age>
</zhangsan>
<lisi class="法外狂徒的伙伴">
<sex>男</sex>
<age>21</age>
</lisi>
</people>
解析示例代码如下所示:
from lxml import etree
tree = etree.parse("lxml_xml.xml")
print(str(etree.tostring(tree, encoding='utf-8'), 'utf-8'))
root = tree.getroot()
print("根节点", root.tag)
children = root.getchildren()
for child in children:
print("sex:", child[0].text)
print("class :", child.get('class'))
运行之后,效果如下所示:
解析HTML文件
解析HTML比XML稍微复杂一点,它需要创建一个HTMLParser()对象传入到parser()方法中,因为其默认是解析XML的。
HTML代码如下:
<!DOCTYPE html>
<html>