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

使用BeautifulSoup如何提取父标签内文本 排除子标签的多余字符

问题原因

你当前使用的Tag.text属性会递归提取当前标签及所有子孙标签的文本内容,因此会把嵌套子<span>里的q也一并提取,最终得到拼接后的结果。

解决方案

只需指定提取父span标签的直接文本节点,不递归查询子标签内的内容即可,两种常用实现方式如下:

方案1:非递归查找直接文本节点(更通用)

通过recursive=False参数限定只查找当前标签的直接子节点,不会深入嵌套的子标签内提取内容:

price = item.find('span', class_='nowrap')
# 仅提取当前标签的直接文本内容,忽略子标签
price_x = price.find(text=True, recursive=False).strip()
print(price_x)

方案2:直接取第一个直接子节点

你当前的HTML结构里,父span的第一个直接子节点就是目标文本,直接索引取值即可:

price = item.find('span', class_='nowrap')
price_x = price.contents[0].strip()
print(price_x)

两种方案运行后均可输出你需要的2 633结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 06:15:07