手记

足球实时比分API使用教程

在体育类应用中,数据往往决定了用户体验的上限。无论是做一个简单的比分小程序,还是一个完整的赛事分析平台,如何获取及时、准确、结构化的比赛数据,都是最核心的问题之一。

这正是比分 API 的价值所在。

通过接入足球比分 API,开发者无需自己采集或维护数据源,就可以快速获得:

  • 联赛、球队、队员信息
  • 实时比分
  • 历史交锋记录

这些数据可用于基础展示(如比分页、赛程页),还能进一步用于数据分析,尤其是实时比分往往比电视转播的速度要快,用来搭配最近大火的Polymarket,能大大提升预测胜率。

下面将基于AnySport的实时比分接口,详细介绍如何使用这类API获取数据。

1. 赛事接口:GET /v1/matches

返回足球赛程和比赛结果。支持按日期范围、联赛、球队或指定比赛 ID 过滤。

1.1 查询参数

参数 类型 必填 默认值 说明
date string 今天 单日日期,格式 YYYY-MM-DD。等同于 from=date&to=date
from string 开始日期,格式 YYYY-MM-DD。与 to 配合使用查询日期范围。
to string 结束日期,格式 YYYY-MM-DD。与 from 配合使用查询日期范围。
league_id string 按联赛 ID 过滤。ID 可从 /v1/leagues 获取。
team_id string 按球队 ID 过滤,返回该球队参与的比赛。ID 可从 /v1/teams 获取。
match_id string 按比赛唯一 ID 查询单场比赛。
lang string en 响应语言,影响球队/联赛/国家名称。支持:enzh
page integer 1 分页页码。
limit integer 50 每页结果数量,最大 200

1.2 赛事接口请求示例

import requests

API_KEY = 'YOUR_API_KEY'
BASE_URL = 'https://api.anysport.io/v1'
# 申请API Key: www.anysport.io

def get_matches(date=None, from_date=None, to_date=None,
                league_id=None, team_id=None, match_id=None,
                lang='zh', page=1, limit=50):
    params = {'lang': lang, 'page': page, 'limit': limit}
    if date:      params['date'] = date
    if from_date: params['from'] = from_date
    if to_date:   params['to'] = to_date
    if league_id: params['league_id'] = league_id
    if team_id:   params['team_id'] = team_id
    if match_id:  params['match_id'] = match_id

    r = requests.get(
        f'{BASE_URL}/matches',
        params=params,
        headers={'X-API-Key': API_KEY}
    )
    r.raise_for_status()
    return r.json()

# 获取英超指定日期比赛(中文名称)
result = get_matches(date='2026-03-16', league_id='148', lang='zh')
for match in result['data']:
    print(f"{match['home']} {match['score']} {match['away']}")

2. 实时比分接口 GET /v1/livescore

实时返回所有正在进行中的足球比赛,包括进球、出牌、换人和比赛数据统计。

2.1 查询参数

参数 类型 必填 默认值 说明
league_id string 按联赛 ID 过滤。ID 可从 /v1/leagues 获取。
country_id string 按国家 ID 过滤。ID 可从 /v1/countries 获取。
match_id string 查询指定比赛的实时数据。
lang string en 响应语言,影响球队/联赛/国家名称。支持:enzh
page integer 1 分页页码。
limit integer 50 每页结果数量,最大 200

2.2 实时比分请求示例

import requests

API_KEY = 'YOUR_API_KEY'
BASE_URL = 'https://api.anysport.io/v1'
# 申请API Key: www.anysport.io

def get_livescore(league_id=None, country_id=None, match_id=None, lang='zh'):
    params = {'lang': lang}
    if league_id:  params['league_id'] = league_id
    if country_id: params['country_id'] = country_id
    if match_id:   params['match_id'] = match_id

    r = requests.get(
        f'{BASE_URL}/livescore',
        params=params,
        headers={'X-API-Key': API_KEY}
    )
    r.raise_for_status()
    return r.json()

result = get_livescore(league_id='148', lang='zh')
for match in result['data']:
    print(f"{match['home']} {match['score']} {match['away']}(第{match['minute']}分钟)")

2.3 实时比分接口的响应字段

字段 类型 说明
status string "live"(上半场/下半场)、"ht"(中场休息)、"extra_time"(加时赛)、"penalties"(点球)
minute integer 当前比赛分钟(如 67)。中场休息时为 null
live boolean 此接口返回的所有比赛均为 true
score string 当前比分,格式 "主队-客队"(如 "2-1"
ht_score string \| null 半场比分。上半场未到中场时为 null
goals Goal[] 到目前为止的进球记录(按时间排序)
cards Card[] 到目前为止的出牌记录
subs Substitution[] 到目前为止的换人记录
stats StatEntry[] 当前比赛数据统计

3. 联赛积分榜查询 GET /v1/standings

返回指定联赛的当前积分榜。响应包含三张独立的积分表:总积分榜、主场积分榜和客场积分榜。代码示例如下:

import requests

API_KEY = 'YOUR_API_KEY'
BASE_URL = 'https://api.anysport.io/v1'
# 申请API Key: www.anysport.io

def get_standings(league_id, lang='zh'):
    r = requests.get(
        f'{BASE_URL}/standings',
        params={'league_id': league_id, 'lang': lang},
        headers={'X-API-Key': API_KEY}
    )
    r.raise_for_status()
    return r.json()

result = get_standings('148', lang='zh')
total_table = result['data']['total']

for row in total_table:
    print(f"{row['position']}. {row['team']} — {row['points']}分 (胜{row['wins']} 平{row['draws']} 负{row['losses']})")

4. 历史交锋 GET /v1/head2head

返回两支球队的历史交锋记录,以及各自的近期赛事数据。需要传入两个队伍ID:

import requests

API_KEY = 'YOUR_API_KEY'
BASE_URL = 'https://api.anysport.io/v1'

def get_head2head(team1_id, team2_id, lang='zh'):
    r = requests.get(
        f'{BASE_URL}/head2head',
        params={'team1_id': team1_id, 'team2_id': team2_id, 'lang': lang},
        headers={'X-API-Key': API_KEY}
    )
    r.raise_for_status()
    return r.json()

result = get_head2head('85', '42', lang='zh')
history = result['data']['history']

for match in history:
    print(f"{match['date']}: {match['home']} {match['score']} {match['away']}")

AnySport提供的数据远不止这些,这里篇幅有限就不一一展开,有兴趣的同学可以自行查看**官方文档**。

0人推荐
随时随地看视频
慕课网APP