继上一篇写的lxml的HtmlElement对象获取,本篇接着一上篇跟大家分享一下如何设置节点的inner html。
文章不长,几几钟就可以看完,主要还是要多练习。
在这里我会将我之后的学习笔记都整理上来,喜欢的可以关注我哦。
设置inner html相较于获取更复杂一些,我们还是以上面那段html代码为例:
<div class=”text”>这是div<a href=”/node”>节点</a>内容</div>
假设我们要把它的inner html 改成如下字符串:
this is div<a href=”/node”>node</a>text
则操作步骤是:
清空节点div里面的内容:包括它的text和子节点
把新的inner html转变成fragments
把fragments加到清空后的div节点
把以上步骤写出Python函数就是:
def set_inner_html(node, html): node.text = '' for child in node.getchildren(): node.remove(child) 4 fragments = lxml.html.fragments_fromstring(html) if type(fragments[0]) == str: node.text = fragments.pop(0) node.extend(fragments)
通过以上函数就可以成功把node里面的内容设置成想要的html内容,适合在动态修改网页结构内容时使用。
本笔记整理来源于猿人学python