lxml库
基本使用:我们可以用它来解析HTML代码,并且在解析html代码的时候,如果HTML代码不规范,它会自动进行补全。
test='''
<div>
<url>
<li class="item-0"><a href="link1.html">first item</a></li>
<li class="item-1"><a href="link2.html">second item</a></li>
<li class="item-inactive"><a href="link3.html"><span class="bold">third item</span></a></li>
<li class="item-1"><a href="link4.html">forth item</a></li>
<li class="item-0"><a href="link5.html">fifth item</a></li>
</url>
</div>
'''
from lxml import etree
html=etree.HTML(test) #初始化text 将字符串解析成HTML文档
result=etree.tostring(html).decode('utf-8') #按字符串序列化html。返回的是字节型,所以需要.decode('utf-8')
print(result)
得到的结果:
<html><body><div>
<url>
<li class="item-0"><a href="link1.html">first item</a></li>
<li class="item-1"><a href="link2.html">second item</a></li>
<li class="item-inactive"><a href="link3.html"><span class="bold">third item</span></a></li>
<li class="item-1"><a href="link4.html">forth item</a></li>
<li class="item-0"><a href="link5.html">fifth item</a></li>
</url>
</div>
</body></html>
我们还可以从文件中读取html代码:
html=etree.parse('hello.html')