实用脚本查看两队历史交锋记录
我理解你想用脚本快速查询两队的历史交锋数据,不过需要先说明:我无法直接访问实时体育数据库,所以不能给你一个"开箱即用"的脚本去抓取某网站的实时数据,但我可以给你几种可落地的方案。

用公开 API(推荐)
很多体育数据平台提供 API,
- Football-Data.org(足球,免费额度)
- API-Football(RapidAPI 上,有免费层)
- TheSportsDB(免费,覆盖面广)
示例:TheSportsDB 查询两队交锋
import requests
def get_h2h(team1_id, team2_id, api_key="3"): # "3" 是公开测试key
# 先查两队各自的历史比赛
url = f"https://www.thesportsdb.com/api/v1/json/{api_key}/eventslast.php?id={team1_id}"
events = requests.get(url).json().get("results", [])
h2h = []
for e in events:
home = e.get("idHomeTeam")
away = e.get("idAwayTeam")
if {home, away} == {str(team1_id), str(team2_id)}:
h2h.append({
"date": e["dateEvent"],
"home": e["strHomeTeam"],
"away": e["strAwayTeam"],
"score": f'{e["intHomeScore"]}-{e["intAwayScore"]}'
})
return h2h
# 示例:利物浦(133602) vs 曼联(133612)
for m in get_h2h(133602, 133612):
print(m["date"], m["home"], m["score"], m["away"])
注意:免费版只能查"最近比赛",完整历史交锋通常需要付费 API 或自己爬取。
爬取公开网页(需遵守 robots.txt)
以某足球数据站为例(伪代码思路):
import requests
from bs4 import BeautifulSoup
def fetch_h2h(url):
headers = {"User-Agent": "Mozilla/5.0"}
r = requests.get(url, headers=headers, timeout=10)
soup = BeautifulSoup(r.text, "html.parser")
matches = []
for row in soup.select("table.h2h tr")[1:]:
cols = [c.get_text(strip=True) for c in row.find_all("td")]
if len(cols) >= 4:
matches.append({
"date": cols[0],
"home": cols[1],
"score": cols[2],
"away": cols[3],
})
return matches
注意事项:
- 先看目标站
robots.txt是否允许 - 加延时
time.sleep(2),别把人家服务器打挂 - 网站结构一变脚本就失效,需要维护
本地数据库累积
如果你长期跟踪某联赛,最稳的做法是:
- 用一个免费数据源(如 football-data.co.uk 的 CSV)下载历史赛季
- 存进 SQLite
- 查询时直接 SQL 联表
import sqlite3, pandas as pd
# 假设已把 matches 表导入 db
conn = sqlite3.connect("football.db")
df = pd.read_sql("""
SELECT date, home_team, away_team, home_goals, away_goals
FROM matches
WHERE (home_team=? AND away_team=?)
OR (home_team=? AND away_team=?)
ORDER BY date DESC
""", conn, params=("Liverpool","Man United","Man United","Liverpool"))
print(df)
football-data.co.uk 提供英超等联赛的免费 CSV 历史数据,非常适合这种方案。
几个实用建议
| 需求 | 推荐方案 |
|---|---|
| 偶尔查一次 | TheSportsDB / 网页手动查 |
| 经常查、要自动化 | API-Football(付费稳定) |
| 只做英超/主流联赛 | football-data.co.uk + SQLite |
| 要中文数据 | 懂球帝/雷速等接口(稳定性差,需自己维护) |
如果你告诉我:
- 你关注哪种运动(足球/篮球/电竞?)
- 想要哪个联赛
- 是想一次性查询还是做成长期工具
我可以给你一个更具体的、能直接跑的脚本。