手记

Python爬虫解析html:设置节点的inner html

继上一篇写的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

则操作步骤是:

  1.  清空节点div里面的内容:包括它的text和子节点

  2.  把新的inner html转变成fragments

  3.  把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


1人推荐
随时随地看视频
慕课网APP