You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BeautifulSoup清除h2标签首尾空格后原soup修改未生效问题

问题原因
  • 你在循环中对局部变量heading做了字符串赋值操作,该操作仅修改了当前循环的临时变量,完全没有改动BeautifulSoup内存中存储的DOM树节点,因此打印原soup对象时不会体现你的修改。
  • 代码中的soup.prettify()调用没有接收返回值,该方法不会修改原soup对象,仅会返回格式化后的HTML字符串,该行属于无效调用。
解决方法

要修改DOM树中的节点内容,直接更新h2节点的文本属性即可,修改后的完整代码如下:

from bs4 import BeautifulSoup
import lxml
html_code = '''
<html>
<body>
<h2 class="myclass"> This is a Headline </h2>
<h2 class="myclass"> Another H2 element </h2>
</body>
</html>
'''
soup = BeautifulSoup(html_code,'lxml')
headings = soup.find_all('h2', {'class':'myclass'})
for heading in headings:
    # 若需要保留原class属性,删除下一行即可
    del heading['class']
    # 直接修改节点文本为去除首尾空格后的内容
    heading.string = heading.text.strip()

print(soup)

运行上述代码后打印的soup对象,h2标签内的多余空格已经被清除,同时保留原标签结构。

内容的提问来源于stack exchange,提问作者Catalin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 12:36:03