0
点赞
收藏
分享

微信扫一扫

lxml中etree.HTML()和etree.tostring()用法


你好,我是悦创。

​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、微信在线,随时响应!


lxml中etree.HTML()和etree.tostring()用法_python



举报

相关推荐

0 条评论