本文介绍如何利用 beautifulsoup 的 `contents` 属性,精准提取外层 `` 中不包含子元素的直接文本节点(如“felix wong”),避免 `get_text()` 返回嵌套子元素内容的问题。
在网页解析中,常遇到类似如下结构的 HTML:
Felix Wong +3 drivers若直接调用 .get_text(),会合并所有后代文本,返回 "Felix Wong +3 drivers" —— 这通常不符合需求,尤其当只需提取父级标签中的直接文本节点(即不被子标签包裹的部分)时。
此时应改用 .contents 属性:它返回一个包含所有直接子节点(包括字符串节点和标签节点)的列表。其中,纯文本内容作为 NavigableString 对象位于索引 0(前提是文本出现在子标签之前),而 则是索引 1 的 Tag 对象。
✅ 正确做法:
from bs4 import BeautifulSoup
html = '''Felix Wong +3 drivers'''
soup = BeautifulSoup(html, 'html.parser')
# 获取第一个直接子节点(即" Felix Wong ",含前后空格)
raw_text = soup.select_one('span').contents[0]
# 推荐:strip() 去除首尾空白,确保结果干净
name = raw_text.strip() # 输出: "Felix Wong"
print(name)⚠️ 注意事项:
parent = soup.select_one('span') name = ''.join([str(s) for s in parent.contents if isinstance(s, str)]).strip()
总结:.get_text() 适用于获取全部可见文本,而 .contents 是精准控制文本来源层级的关键工具——掌握其节点类型区分(str vs Tag),即可灵活应对复杂嵌套文本提取场景。
# html
# node
# 工具
# beautifulsoup
# 字符串
# class
# 对象
# 第一个
# 则是
# 出现在
# 遍历
# 只需
# 适用于
# 不符合
# 时应
# 中不
# 即不
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
网络优化76771 】
【
技术知识130152 】
【
IDC云计算60162 】
【
营销推广131313 】
【
AI优化88182 】
【
百度推广37138 】
【
网站推荐60173 】
【
精选阅读31334 】
相关推荐:
Win10怎么卸载剪映_Win10彻底卸载剪映方法【步骤】
Win11怎么更改系统语言_Win11中文语言包下载与安装【指南】
Win11怎么关闭系统提示音_Windows11声音方案设为无声教程
Mac如何备份到iCloud_Mac桌面与文稿文件夹云同步【设置】
Win11怎么查看硬盘型号_Windows 11检测硬盘信息方法【技巧】
PHP主流架构如何处理会话管理_Session与Cookie【技巧】
Win10如何关闭安全中心所有通知 Win10禁用Windows Defender提醒【设置】
Win11怎么查看局域网电脑_Windows 11网络邻居发现设置【技巧】
php会话怎么开启_session_start函数的作用与使用时机【方法】
Go 中 := 短变量声明的类型推导机制详解
PythonPandas数据分析教程_数据清洗与处理技巧
Go 中实现 Python urllib.quote() 等效功能的正确方式
Windows如何查看和管理已安装的字体?(字体文件夹)
Win10文件历史记录怎么用 Win10开启自动备份文件教程【防丢】
Windows10如何更改桌面图标间距_Win10注册表WindowMetrics修改
c++如何实现多态性_c++ 虚函数表原理与动态绑定机制【教程】
Win11怎么设置开机密码_Windows11账户登录选项PIN码
Windows10系统怎么查看运行时间_Win10 CPU正常运行时间查询
windows如何测试网速_windows系统网络速度测试方法
Python对象比较排序规则_集合使用说明【指导】
php错误怎么开启_display_errors与log_errors的设置【汇总】
Python并发安全问题_资源竞争说明【指导】
Win11怎么关闭小组件_Win11禁用任务栏天气与小组件方法【设置】
如何在包含多值的列中精准搜索指定演员?
php删除数据怎么软删除_添加is_del字段标记删除【技巧】
Win11怎么更改鼠标指针方案_Windows11自定义鼠标光标样式与大小
Windows服务启动类型恢复方法_错误修改导致的系统服务异常
Win10如何设置双wan路由器 Win10双wan路由器设置方法【指南】
Win11文件扩展名怎么显示 Win11查看文件后缀名设置【步骤】
Windows10电脑怎么设置自动连接WiFi_Win10无线网络属性勾选
Windows10如何更改系统字体大小_Win10辅助功能文本缩放设置
为什么Go需要go mod文件_Go go mod文件作用说明
Win10怎么卸载金山毒霸_Win10彻底卸载金山毒霸方法【步骤】
如何在Golang中处理数据库事务错误_回滚和日志记录
Windows服务持续崩溃怎样修复_系统服务保护机制解析
Mac怎么开启“任何来源”_Mac安装未签名应用的设置方法【解决】
Python音视频处理高级项目教程_FFmpegPydub剪辑与特效
如何使用Golang开发基础文件下载功能_Golang HTTP文件响应与缓存实现
Win11如何更改任务栏颜色 Win11自定义任务栏背景色【美化】
Windows10电脑怎么设置文件权限_Win10安全选项卡所有者修改
Win10怎样设置多显示器_Win10多显示器扩展设置【攻略】
如何使用Golang安装依赖库_管理模块和第三方包
如何在同包不同文件中正确引用 Go 结构体
Linux如何使用grep搜索文件内容_Linux下正则表达式匹配与查找技巧【指南】
c++的STL算法库find怎么用 在容器中查找指定元素【实用教程】
Python多线程使用规范_线程安全解析【教程】
Win11怎么设置任务栏图标大小_Windows11注册表TaskbarSi修改
Win11怎么开启空间音效_Windows11耳机杜比音效与Sonic设置
如何在 Laravel 中通过嵌套关联关系进行 orderBy 排序
php转mp4怎么设置帧率_调整php生成mp4视频帧率说明【说明】
2025-12-30
致胜网络推广营销网专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。