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

如何使用bs4获取父标签中不含子标签内容的文本?

用BeautifulSoup提取父div内容并排除嵌套子div

你可以通过以下两种方法实现需求:

方法一:移除嵌套子div后提取文本

先定位到目标父div,移除内部的子div,再提取剩余文本:

HTML结构

<div>
    <div id="1">Text 1
        <div id="2"> Text 2</div>
    </div>
</div>

Python代码

from bs4 import BeautifulSoup

html = '''
<div>
    <div id="1">Text 1
        <div id="2"> Text 2</div>
    </div>
</div>
'''

soup = BeautifulSoup(html, 'html.parser')
# 定位到id为1的div
div1 = soup.find('div', id='1')
# 找到内部id为2的div并移除
div2 = div1.find('div', id='2')
div2.extract()
# 提取文本并清理多余空格换行
target_text = div1.get_text(strip=True)
print(target_text)  # 输出:Text 1

方法二:直接筛选文本节点

遍历父div的子节点,只保留纯文本节点的内容:

Python代码

from bs4 import BeautifulSoup

html = '''
<div>
    <div id="1">Text 1
        <div id="2"> Text 2</div>
    </div>
</div>
'''

soup = BeautifulSoup(html, 'html.parser')
div1 = soup.find('div', id='1')
# 筛选出所有文本节点,拼接后清理格式
target_text = ''.join([node.strip() for node in div1.contents if isinstance(node, str)]).strip()
print(target_text)  # 输出:Text 1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 13:18:06