本文目录导读:

- 先说明:SofaScore 的“综合评分”是什么
- 方法一:直接抓取 SofaScore 已有评分(最省事)
- 方法二:用 Excel / Google Sheets 统计
- 方法三:用爬虫 + 数据库批量统计
- 方法四:自己重算“综合评分”
- 方法五:现成工具/网站
- 常见问题
SofaScore 的“综合评分”是什么
SofaScore 给球员的评分通常是 0–10.0,基于:
- 进球、助攻
- 传球成功率、关键传球
- 抢断、拦截、解围
- 射门、过人、对抗成功率
- 失误、被过、犯规等
它本质是加权算法,SofaScore 不公开完整权重,所以第三方只能:
- 直接抓取它已经算好的评分,或
- 自己按位置用近似公式重算。
直接抓取 SofaScore 已有评分(最省事)
工具组合
- Python + requests / httpx
- SofaScore 非官方 API
- pandas 做统计
思路
SofaScore 网页数据来自内部 API,
https://api.sofascore.com/api/v1/event/{event_id}/lineups
https://api.sofascore.com/api/v1/event/{event_id}/player/{player_id}/statistics
关键点
- 需要加
User-Agent,否则可能 403 - 评分字段常在
statistics或lineups里 - 可以按球员、球队、联赛批量拉取
统计示例
import requests
import pandas as pd
headers = {"User-Agent": "Mozilla/5.0"}
event_id = 12345678 # 换成实际比赛ID
url = f"https://api.sofascore.com/api/v1/event/{event_id}/lineups"
data = requests.get(url, headers=headers).json()
rows = []
for side in ["home", "away"]:
for p in data[side]["players"]:
player = p["player"]
stats = p.get("statistics", {})
rows.append({
"球员": player["name"],
"球队": side,
"评分": stats.get("rating"),
"进球": stats.get("goals"),
"助攻": stats.get("assists"),
})
df = pd.DataFrame(rows)
print(df.sort_values("评分", ascending=False))
print("平均评分:", df["评分"].mean())
适合统计
- 单场最佳球员
- 球队平均评分
- 某球员赛季评分走势
用 Excel / Google Sheets 统计
如果你不想写代码:
- 打开 SofaScore 网页
- 复制球员评分表
- 粘贴到 Excel
- 用:
=AVERAGE()=MAX()=SORT()- 数据透视表
适合:
- 单场比赛
- 小规模手工统计
缺点:批量、多场次很麻烦。
用爬虫 + 数据库批量统计
工具
- Python + Scrapy / Playwright
- SQLite / MySQL
- pandas + matplotlib
流程
- 抓取联赛所有比赛 ID
- 遍历每场比赛,拉取球员评分
- 存入数据库
- 按球员/球队/位置聚合
可统计指标
- 场均评分
- 评分标准差(稳定性)
- 主场/客场评分差
- 对强队/弱队评分差
- 同位置排名
自己重算“综合评分”
如果你想要自定义综合评分,可以抓原始数据后自己加权:
df["自定义评分"] = (
df["进球"] * 1.2 +
df["助攻"] * 0.8 +
df["关键传球"] * 0.3 +
df["抢断"] * 0.2 +
df["传球成功率"] * 2 -
df["失误"] * 0.3
)
注意:
- 不同位置权重应不同
- 需要归一化到 6.0–10.0
- 这只是近似,不等于 SofaScore 官方算法
现成工具/网站
- FBref:有类似评分和进阶数据
- WhoScored:也有评分
- SofaScore 网页本身:可按赛事筛选
- Power BI / Tableau:抓数据后做可视化
常见问题
为什么抓不到?
- 需要
User-Agent - 可能有 Cloudflare
- API 路径会变
- 频繁请求会被封
能商用吗?
SofaScore 数据有版权,商用需授权。
最推荐方案?
- 少量:Excel
- 批量:Python + API + pandas
- 长期:数据库 + 定时爬虫 + BI
如果你告诉我:
- 你想统计单场、某球员赛季、还是整个联赛?
- 你用 Windows 还是 Mac?
- 你会不会 Python?
我可以给你一套更具体的步骤或代码模板。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。