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

使用BeautifulSoup提取含<br>标签的字符串返回None,如何提取目标文本

问题原因

.string仅在标签仅包含单个文本子节点时会返回对应文本内容。你提供的<p>标签内包含多个子节点(文本节点xxx、<br/>标签、文本节点yyy、<br/>标签),不符合.string的使用条件,因此返回None。删除后续内容后<p>标签只剩单个文本子节点,.string就可以正常返回结果。

解决方法

这里提供两种常用的提取方案:

方案1:通过contents取首个子节点

contents会以列表形式返回标签下的所有直接子节点,首个子节点就是你要的xxx文本节点,提取后做去空格处理即可:

from bs4 import BeautifulSoup

soup = BeautifulSoup('<p class="object-attr-value"> xxx <br/> yyy <br/></p>',
                      'html.parser')
t = soup.p.contents[0].strip()

执行后t的值就是xxx。

方案2:通过strings生成器取首个文本

strings会遍历标签下的所有文本节点,直接取首个生成的内容即可:

t = next(soup.p.strings).strip()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 23:24:01