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

使用BeautifulSoup4从嵌套span标签提取指定文本的问题

解决方法

以下几种方式可以单独提取出「Felix Wong」:

  • 方法1:直接获取父span的文本节点
    目标名称是父<span>的直接子文本节点,可通过contents访问第一个子元素,再去除多余空格:

    from bs4 import BeautifulSoup
    
    html = '<span>Felix Wong <span class="drivers">+3 drivers</span></span>'
    soup = BeautifulSoup(html, 'html.parser')
    
    parent_span = soup.find('span')
    name = parent_span.contents[0].strip()
    print(name)  # 输出 Felix Wong
    
  • 方法2:移除嵌套子标签后提取文本
    先找到并删除嵌套的<span class="drivers">标签,再用get_text()获取父标签的剩余文本:

    from bs4 import BeautifulSoup
    
    html = '<span>Felix Wong <span class="drivers">+3 drivers</span></span>'
    soup = BeautifulSoup(html, 'html.parser')
    
    parent_span = soup.find('span')
    child_span = parent_span.find('span', class_='drivers')
    child_span.decompose()  # 移除子标签
    name = parent_span.get_text().strip()
    print(name)  # 输出 Felix Wong
    
  • 方法3:通过stripped_strings迭代取第一个元素
    stripped_strings会迭代标签下所有非空白文本节点,取第一个即可得到目标名称:

    from bs4 import BeautifulSoup
    
    html = '<span>Felix Wong <span class="drivers">+3 drivers</span></span>'
    soup = BeautifulSoup(html, 'html.parser')
    
    parent_span = soup.find('span')
    name = next(parent_span.stripped_strings)
    print(name)  # 输出 Felix Wong
    

内容的提问来源于stack exchange,提问作者Felix Wong Plasencia

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 19:15:28