如何在python中修改html树?

2024-04-30

假设有一些可变片段html代码

<p>
    <span class="code"> string 1 </ span>
    <span class="code"> string 2 </ span>
    <span class="code"> string 3 </ span>
</ p>
<p>
    <span class="any"> Some text </ span>
</ p>

我需要用类代码修改所有标签的内容<span>通过某些功能跳过内容,例如foo,它返回修改后的标签的内容<span>。最终,我应该得到一个新的 html 文档,如下所示:

<p>
    <span class="code"> modify string 1 </ span>
    <span class="code"> modify string 2 </ span>
    <span class="code"> modify string 3 </ span>
</ p>
<p>
    <span class="any"> Some text </ span>
</ p>

有人建议我使用 python 库可以轻松搜索特定的 html 节点美丽汤4。如何进行内容修改<span class="code">并将新版本另存为新文件?我想找到你需要使用soup.find_all ('span', class = re.compile ("code")),只有这个函数返回一个list(复制)样本对象,对其进行修改不会改变汤的内容。我该如何解决这个问题?


</ span>是无效的 HTML,甚至网络浏览器的宽松解析器也无法正确解析它。

修复 HTML 后,您可以使用.replaceWith():

from bs4 import BeautifulSoup

soup = BeautifulSoup('''
    <p>
        <span class="code"> string 1 </span>
        <span class="code"> string 2 </span>
        <span class="code"> string 3 </span>
    </p>
    <p>
        <span class="any"> Some text </span>
    </p>
''', 'html5lib')

for span in soup.find_all('span', class_='code'):
    span.string.replaceWith('modified ' + span.string)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在python中修改html树? 的相关文章

随机推荐