要查看两支球队的历史交锋记录,通常需要获取足球或篮球等体育赛事的历史数据,Python 可以通过以下方式实现:

- 数据来源:使用公开API(如 Football-Data.org、API-FOOTBALL)或爬虫抓取(如百度百科、维基百科)。
- 数据处理:解析 JSON/HTML,提取对战双方、比分、日期等。
- 展示结果:以表格或可视化图表呈现。
以下是一个基于 免费 API(Footbal-Data.org) 的示例,展示如何获取并查看两支球队的历史交锋记录(以英超为例):
import requests
import pandas as pd
from datetime import datetime
# 1. 配置API(Footbal-Data.org 需要注册获取免费API Key)
API_KEY = "你的API_KEY" # 替换为真实key
headers = {"X-Auth-Token": API_KEY}
# 2. 定义两支球队(示例:曼联 vs 利物浦)
team1_name = "Manchester United FC"
team2_name = "Liverpool FC"
# 3. 获取所有比赛(可限制联赛和赛季)
url = "https://api.football-data.org/v4/teams/66/matches" # 曼联的ID=66(需查对应ID)
# 更通用的方法:通过competition获取(英超ID=2021)
# url = "https://api.football-data.org/v4/competitions/2021/matches?season=2023"
response = requests.get(url, headers=headers)
data = response.json()
# 4. 筛选两队历史交锋记录
matches = []
for match in data.get("matches", []):
home_team = match["homeTeam"]["name"]
away_team = match["awayTeam"]["name"]
# 检查是否包含这两支球队(不分主客)
if (home_team == team1_name and away_team == team2_name) or \
(home_team == team2_name and away_team == team1_name):
match_info = {
"日期": match["utcDate"][:10],
"主队": home_team,
"客队": away_team,
"比分": f"{match['score']['fullTime']['home']} - {match['score']['fullTime']['away']}",
"赛事": match["competition"]["name"]
}
matches.append(match_info)
# 5. 转为DataFrame并排序
df = pd.DataFrame(matches)
df = df.sort_values("日期", ascending=False) # 最近比赛在前
# 6. 展示结果
print(f"📊 {team1_name} vs {team2_name} 历史交锋记录")
print(df.to_string(index=False))
输出示例:
📊 Manchester United FC vs Liverpool FC 历史交锋记录
日期 主队 客队 比分 赛事
2024-04-07 Manchester United FC Liverpool FC 2-2 Premier League
2023-12-17 Liverpool FC Manchester United FC 0-0 Premier League
...
关键注意事项:
- API限制:免费API每天限50次请求,并需要注册获取Key。
- 球队ID:需查询具体球队ID,常用联赛ID:英超2021,西甲2014等。
- 历史深度:免费API只能获取最近几个赛季的记录,更完整的历史数据需付费或爬虫。
备选方案(爬虫示例):从百度百科爬取“曼联vs利物浦”交锋记录(需要解析HTML):
import requests
from bs4 import BeautifulSoup
url = "https://baike.baidu.com/item/曼联与利物浦比赛/..." # 需具体页面
headers = {"User-Agent": "Mozilla/5.0"}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, "html.parser")
# 根据页面结构调整选择器
table = soup.find("table", class_="history_table")
# ... 解析表格行 ...
推荐路线:
- 快速测试:使用 Footbal-Data.org API(轻量级)。
- 完整历史:爬虫抓取维基百科“Liverpool–Manchester United rivalry”页面表格。
- 商业项目:购买 Sportmonks 或 Opta 付费API。
如果需要我帮你写一个特定两队(如巴西vs阿根廷)的历史交锋爬虫,请提供比赛页面的具体链接。