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

使用BeautifulSoup移除span标签内内容 提取死亡时间纯文本

方案1:直接定位span后取相邻文本节点

无需修改DOM结构,逻辑最简洁:

whole_section = soup.find('div', {'class':"token"}) # 访问整个区块
name_person = whole_section.h2.text  # 选取h2标签中的人员姓名
# 匹配内容包含「Time of Death」的span标签,模糊匹配兼容前后多余空格
time_span = whole_section.find('span', string=lambda s: s and 'Time of Death' in s.strip())
# 取span后的第一个同级文本节点,strip去除前后空白符
time_decease = time_span.next_sibling.strip()

方案2:删除span标签后提取文本

适合需要同时移除该span方便后续其他操作的场景:

whole_section = soup.find('div', {'class':"token"}) # 访问整个区块
name_person = whole_section.h2.text  # 选取h2标签中的人员姓名
# 定位到最后一个p标签(即死亡时间所在标签)
time_p = whole_section.find_all('p')[-1]
# 直接删除p标签内的span子节点,彻底排除span内容
time_p.span.decompose()
# 提取剩余纯文本
time_decease = time_p.text.strip()

注意事项

  • 不推荐用连续next_sibling的定位方式,HTML结构稍有变动就会定位失效,用标签内容/属性匹配的兼容性更好
  • 之前使用span.clear()无效的原因是:clear()只会清空span内部的文本,不会移除span标签本身,提取父级p标签文本时依然会包含span内的内容,用decompose()直接删除整个span节点才能解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 21:54:07