本文目录导读:

如果你想要一个实用脚本来自动统计两队的射门次数(比如从足球比赛的文字直播、技术统计页面或本地数据文件中提取),可以用 Python 写一个简单但灵活的工具。
下面我提供两种最常用的场景,你可以直接复制使用:
场景 1:从纯文本(如解说词、比赛记录)中统计
假设你有一段比赛记录文本,格式类似:
上半场 第10分钟 主队 射门
第20分钟 客队 射门 被扑出
第35分钟 主队 射门 进球!
脚本逻辑:搜索包含“射门”关键词的行,并判断句子中是否包含“主队”或“客队”(或队伍名称)。
import re
def count_shots_from_text(text, home_team="主队", away_team="客队"):
"""
从文本中统计两队射门次数。
适用于包含队伍名称和"射门"字样的文本。
"""
home_count = 0
away_count = 0
# 以换行符分割每一句话
lines = text.split('\n')
for line in lines:
if '射门' in line: # 只统计提到射门的句子
if home_team in line:
home_count += 1
elif away_team in line:
away_count += 1
# 如果不包含队伍名,默认跳过
return home_count, away_count
# --- 使用示例 ---
sample_text = """
第1分钟 主队 射门
第10分钟 客队 射门 可惜偏了
第30分钟 主队 射门 威力很大
第40分钟 客队 射门 被门将没收
下半场 客队 射门 进球
第90分钟 主队 射门 绝杀球!
"""
home, away = count_shots_from_text(sample_text)
print(f"主队射门次数: {home}")
print(f"客队射门次数: {away}")
# 输出比较结果
if home > away:
print("主队射门更多")
elif away > home:
print("客队射门更多")
else:
print("两队射门次数持平")
场景 2:从结构化数据(CSV/Excel/API返回)中统计
如果你的数据源是一个CSV文件或者API返回的JSON(比如每个球员的射门数据),直接用 pandas 更高效。
假设你的CSV文件 shots.csv 如下:
| 球队 | 球员 | 射门次数 |
|---|---|---|
| 主队 | 前锋A | 5 |
| 客队 | 前锋B | 3 |
| 主队 | 中场C | 2 |
| 客队 | 后卫D | 0 |
脚本:
import pandas as pd
def count_shots_from_file(file_path):
"""
读取包含球队和射门次数的CSV/Excel文件,统计总数。
"""
df = pd.read_csv(file_path) # 如果是Excel,改为 pd.read_excel(file_path)
# 按球队分组求和
result = df.groupby('球队')['射门次数'].sum()
return result
# 使用
shots_series = count_shots_from_file('shots.csv')
print(shots_series)
# 找出谁更多
if shots_series['主队'] > shots_series['客队']:
print("主队射门更多")
elif shots_series['客队'] > shots_series['主队']:
print("客队射门更多")
else:
print("平局")
进阶版:自动抓取网页技术统计
如果你想要自动从足球数据网站(如 SofaScore、LiveScore、直播吧)抓取数据,那稍微复杂一点,需要用到 requests + BeautifulSoup 或者 API。
核心思路(伪代码):
import requests
from bs4 import BeautifulSoup
def get_shots_from_webpage(url):
response = requests.get(url, headers={'User-Agent': 'Mozilla/5.0'})
soup = BeautifulSoup(response.text, 'html.parser')
# 核心:登录F12查看网页元素,找到射门数据的CSS选择器
home_shots = soup.select_one('.home-shots > .value').text
away_shots = soup.select_one('.away-shots > .value').text
return int(home_shots), int(away_shots)
推荐用法(最便捷)
如果你不想写代码,只是偶尔需要快速统计,可以直接用 Excel / Numbers:
- 复制比分网站的射门数据。
- 粘贴到Excel。
- 先用 “替换”功能把“射门”替换为空,留下数字。
- 用
SUM函数分别求和。
你需要哪一种? 如果你有具体的数据格式(比如一段解说文字、一个网页链接、或Excel文件),可以发一段示例,我帮你把脚本改精确。