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

如何用BeautifulSoup提取包含':'字符的span标签文本?

解决方法:提取包含特定字符的span文本

嗨,我明白你的需求啦——你想从指定div下的span标签里,提取**包含冒号':'**的文本内容对吧?你之前的代码没生效,问题出在判断条件上:

你用了if span.get_text() == ":",这是在精确匹配完全等于冒号的span文本,但实际你的目标span应该是类似"联系电话: 123456"这种包含冒号的完整文本,所以这个判断条件太严格了,自然选不到内容。

下面给你两种简单有效的解决方案:

方法1:使用in关键字(最直接)

这是最常用的方式,直接检查冒号是否存在于span文本中:

Contract = soup.find('div', {'class': 'contact-long'}).find_all('span')
Contract_Keys = [span.get_text() for span in Contract if ':' in span.get_text()]

只要span的文本里有冒号(不管位置在哪),都会被筛选出来。

方法2:使用正则表达式(适合复杂匹配)

如果你需要更精准的匹配(比如只想提取包含" : "(带前后空格的冒号)的文本),可以用正则表达式配合re.search:

import re

Contract = soup.find('div', {'class': 'contact-long'}).find_all('span')
# 匹配任意位置的冒号
Contract_Keys = [span.get_text() for span in Contract if re.search(r':', span.get_text())]

# 如果要匹配带前后空格的冒号,把正则改成这样:
# Contract_Keys = [span.get_text() for span in Contract if re.search(r'\s:\s', span.get_text())]

正则表达式能帮你处理更复杂的字符匹配场景,比如冒号前后有特定格式的情况。

试试上面的代码,应该就能得到你想要的结果啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:11:35