你好,我是悦创。
etree.HTML()
: 构造了一个 XPath 解析对象并对 HTML 文本进行自动修正。
etree.tostring()
:输出修正后的结果,类型是 bytes
可参考以下代码:
from lxml import etree
text = '''
<div>
<ul>
<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">third item</a></li>
<li class="item-1"><a href="link4.html">fourth item</a></li>
<li class="item-0"><a href="link5.html">fifth item</a>
</ul>
</div>
'''
html = etree.HTML(text)
result = etree.tostring(html)
print(result.decode('utf-8'))
这里首先导入 lxml
库的 etree
模块,然后声明了一段 HTML 文本,调用HTML
类进行初始化,这样就成功构造了一个 XPath
解析对象。这里需要注意的是,HTML
文本中的最后一个li节点是没有闭合的,但是 etree.HTML
模块可以自动修正 HTML
文本。
这里我们调用 tostring()
方法即可输出修正后的 HTML
代码,但是结果是bytes
类型。这里利用 decode()
方法将其转成 str
类型,结果如下:
<html><body><div>
<ul>
<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">third item</a></li>
<li class="item-1"><a href="link4.html">fourth item</a></li>
<li class="item-0"><a href="link5.html">fifth item</a>
</li></ul>
</div>
</body></html>
AI悦创·推出辅导班啦,包括「Python 语言辅导班、C++辅导班、算法/数据结构辅导班、少儿编程、pygame 游戏开发」,全部都是一对一教学:一对一辅导 + 一对一答疑 + 布置作业 + 项目实践等。QQ、微信在线,随时响应!