python案例怎么看这场比赛的进球总数?

wen python案例 1

用Python查看一场比赛的进球总数

要获取一场比赛的进球总数,需要先明确数据来源,以下是几种常见场景的实现方案:

python案例怎么看这场比赛的进球总数?

已有比赛数据(本地/数据库)

如果数据结构类似如下,直接求和即可:

import pandas as pd
# 假设这是从某个数据源拿到的比赛事件表
events = pd.DataFrame({
    'match_id': [1, 1, 1, 1],
    'team': ['主队', '客队', '主队', '客队'],
    'event_type': ['进球', '进球', '黄牌', '进球'],
    'minute': [23, 45, 60, 88],
})
def total_goals(df, match_id):
    goals = df[(df['match_id'] == match_id) & (df['event_type'] == '进球')]
    return len(goals)
print(f"本场进球总数: {total_goals(events, 1)}")  # 输出 3

从足球数据API获取(推荐)

常用免费/付费API:

数据源 说明
Football-Data.org 免费额度,覆盖主流联赛
API-Football 数据全,有免费层
SportsMonks / Sportradar 商业级

以 Football-Data.org 为例:

import requests
API_KEY = "你的API_KEY"
headers = {"X-Auth-Token": API_KEY}
# 1. 获取某场比赛详情(示例 match id)
url = "https://api.football-data.org/v4/matches/123456"
resp = requests.get(url, headers=headers).json()
# 2. 进球数 = 主队比分 + 客队比分
home = resp['score']['fullTime']['home']
away = resp['score']['fullTime']['away']
print(f"进球总数: {home + away}  (比分 {home}-{away})")

以 API-Football 为例:

import requests
url = "https://v3.football.api-sports.io/fixtures?id=123456"
headers = {"x-apisports-key": "你的KEY"}
data = requests.get(url, headers=headers).json()
goals_home = data['response'][0]['goals']['home']
goals_away = data['response'][0]['goals']['away']
print(f"总进球: {goals_home + goals_away}")

从网页爬取(如懂球帝、直播吧)

一般需要解析页面中的比分或事件流,思路:

import requests
from bs4 import BeautifulSoup
# 仅为思路示例,具体选择器需按目标网站调整
html = requests.get("比赛页面URL", headers={"User-Agent": "..."}).text
soup = BeautifulSoup(html, "html.parser")
# 找到比分元素,"2 - 1"
score_text = soup.select_one(".score").get_text(strip=True)  # "2-1"
home, away = map(int, score_text.replace(" ", "").split("-"))
print(f"总进球: {home + away}")

⚠️ 爬虫注意遵守 robots.txt 和网站条款,动态加载页面(JS渲染)建议用 Playwright/Selenium。

实时比赛(WebSocket / 事件推送)

实时场景一般订阅事件流,累加进球事件:

goal_count = 0
def on_event(event):
    global goal_count
    if event['type'] == 'GOAL' and not event.get('is_own_goal_cancelled'):
        goal_count += 1
        print(f"{event['minute']}' 进球!当前总进球: {goal_count}")
# 伪代码:把 on_event 注册到你的实时数据源回调

建议

  • 只要总进球数 → 直接取比分相加最快
  • 要分析进球时间/球队/球员 → 拉取事件列表(events)再过滤 type == 'goal'
  • 实时性要求高 → 用 WebSocket 事件流累加

如果你能告诉我具体数据来源(哪家API、网页、还是本地文件),我可以给出更贴合的完整代码。

上一篇根据python案例,xG模型参考价值大吗?

下一篇当前分类已是最新一篇

抱歉,评论功能暂时关闭!