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

如何使用Beautiful Soup从指定class的span标签提取5.3%

BeautifulSoup提取指定span内容实现方案

核心定位逻辑

目标值5.3%存储在class="red"的span标签中,该标签嵌套在class为cover的span节点下,当前片段内无其他同class标签冲突,直接通过类选择器定位即可,无需复杂正则或全文档遍历。


落地步骤

  • 导入BeautifulSoup依赖,传入待解析的HTML片段初始化解析对象,优先用Python内置的html.parser解析器,无需安装额外第三方依赖。
  • 匹配目标标签:可直接定位class为red的span标签;若要提升定位精准度,可先定位父级class为cover的span,再在其子节点中查找目标标签,避免页面其他位置同class标签的干扰。
  • 调用文本提取方法,开启空白自动清理,直接拿到目标值。

可直接运行的代码示例

from bs4 import BeautifulSoup

# 替换成你实际爬取到的HTML内容即可
raw_html = """
<h2>
<span class="group_name">All Files</span>
(<span class="cover"><span class="red">5.3%</span></span>
 covered at
 <span class="cover_strength">
 <span class="green"> 545 </span>
</span> hits/line)
</h2>
"""

# 初始化解析器
soup = BeautifulSoup(raw_html, "html.parser")

# 基础定位写法(当前HTML片段下可直接拿到结果)
# target_tag = soup.find("span", class_="red")

# 更严谨的限定父级定位写法(适配复杂页面场景,推荐使用)
target_tag = soup.find("span", class_="cover").find("span", class_="red")

# 提取文本并自动去除首尾多余空格、换行
cover_rate = target_tag.get_text(strip=True)

print(cover_rate)
# 运行输出:5.3%

注意事项

  • BeautifulSoup中匹配class属性的参数名是class_(末尾带下划线),需要和Python原生的class关键字做区分,写错会直接触发语法报错。
  • 如果实际页面中class属性存在动态拼接、多类名的情况,可以把find方法的class参数换成列表,传入所有需要匹配的类名即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 20:12:19