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

如何从Beautiful Soup结果中移除多余标签?仅保留<p>标签内容

提取

标签内容并移除嵌套div的解决方案

嘿,这事儿用Python的BeautifulSoup来处理简直完美,它专门对付这种HTML解析和清理的需求。我给你写个完整的实现步骤:

步骤1:安装依赖(如果还没装的话)

打开终端跑这个命令:

pip install beautifulsoup4

步骤2:编写处理代码

直接用你提供的page变量,代码如下:

from bs4 import BeautifulSoup

# 你的原始HTML内容
page = """ <p style="text-align: justify">content that I want <div ><!-- /316485075/agk_116000_pos_3_sidebar_mobile --> <div id="agk_116000_pos_3_sidebar_mobile"> <script> script code </script> </div> <div class="nopadding clearfix hidden-print"> <div align="center" class="col-md-12"> <!-- /316485075/agk_116000_pos_4_conteudo_desktop --> <div id="demo">...</div></div></div></p> """

# 解析HTML
soup = BeautifulSoup(page, 'html.parser')

# 定位到目标<p>标签(通过style属性精准匹配)
target_paragraph = soup.find('p', style="text-align: justify")

# 移除<p>标签内所有的<div>元素
for div_element in target_paragraph.find_all('div'):
    div_element.decompose()  # decompose会彻底删除标签及其内部所有内容

# 获取清理后的内容
# 如果只想拿纯文本:
clean_text = target_paragraph.get_text(strip=True)
print(clean_text)  # 输出: content that I want

# 如果想保留<p>标签本身(只去掉里面的div):
clean_html = str(target_paragraph)
print(clean_html)  # 输出: <p style="text-align: justify">content that I want </p>

为什么不推荐正则表达式?

虽然正则也能凑活用,但HTML的结构太灵活了,比如div嵌套、属性变化都会让正则失效,BeautifulSoup会帮你处理这些边缘情况,靠谱得多。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:07:19