gpt4 book ai didi

python - 如何在 python 中修改 html 树?

转载 作者:行者123 更新时间:2023-11-28 16:39:46 26 4
gpt4 key购买 nike

假设有一些可变片段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 库 BeautifulSoup4 可以轻松搜索特定的 html 节点。如何修改内容 <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)

关于python - 如何在 python 中修改 html 树?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20937590/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com