lxml库的使用
一、基本介绍
- 1、
lxml
是 一个HTML/XML
的解析器,主要的功能是如何解析和提取HTML/XML
数据。 - 2、
lxml
和正则一样,也是用C
实现的,是一款高性能的Python HTML/XML
解析器,我们可以利用之前学习的XPath
语法,来快速的定位特定元素以及节点信息。lxml python
官方文档: 3、安装库
pip3 install lxml
二、基本使用
1、直接解析
HTML
代码,并且在解析HTML
代码的时候,如果HTML
代码不规范,他会自动的进行补全代码from lxml import etree text = ''' <div> <ul> <li class="item-0"><a href="link1.html">第一个item</a></li> <li class="item-1"><a href="link2.html">第二个item</a></li> <li class="item-inactive"><a href="link3.html">第三个item</a></li> <li class="item-1"><a href="link4.html">第四个item</a></li> <li class="item-0"><a href="link5.html">第五个item</a> # 注意,此处缺少一个 </li> 闭合标签 </ul> </div> ''' html = etree.HTML(text) print(type(html)) # 数据类型 <class 'lxml.etree._Element'> result = etree.tostring(html, encoding="utf8") # 使用utf8编码转换 print(result.decode("utf8"))
2、使用
tostring()
方法即输出修正后的HTML
代码
三、读取本地文件
1、直接使用
etree.parse(文件路径)
from lxml import etree html = etree.parse('./demo.html') result = etree.tostring(html, encoding='utf8') print(result.decode('utf8'))
四、指定解析器
1、当代码不规范的时候就需要指定解析器
from lxml import etree parser = etree.HTMLParser(encoding='utf8') html = etree.parse('./demo.html', parser=parser) result = etree.tostring(html, encoding='utf8') print(result.decode('utf8'))