2026世界杯实时比分系统
/install worldcup-2026-scores
2026世界杯实时比分系统
一键部署一个完整的2026世界杯实时比分网站,包含:实时比分、赛程赛果、积分榜、球队阵容(含球员头像+中文名+FIFA排名)、比赛详情(首发阵容、事件、技术统计)。
核心特性
| 特性 | 说明 |
|---|---|
| ⚡ 实时比分 | 比赛中自动刷新比分、时间、进球事件 |
| 🆓 完全免费 | 无需任何API Key,数据源均为免费开放API |
| 🏗️ 双数据源 | worldcup26.ir(赛程/积分榜)+ 直播吧(实时数据/阵容/统计) |
| 🇨🇳 中文 | 完整的中文球队名、球员名、分组信息 |
| 🖼️ 球员头像 | 48支球队全部球员头像 + 射手榜球员照片 |
| 🏆 FIFA排名 | 球队阵容页显示FIFA世界排名 |
| ⚽ 射手榜 | Top 20射手(含照片+国旗+国家名) |
| 📊 技术统计 | 控球率、射门、角球+赛事统计卡片 |
| 🏳️ 国旗 | 积分榜+射手榜显示国旗 |
| 📱 响应式 | PC和手机均可 |
技术栈
- 后端: Node.js + Express
- 前端: 原生JS + CSS3(无框架依赖)
- 数据: worldcup26.ir(主赛程)+ 直播吧API(实时数据)
用法
用户说"帮我部署2026世界杯实时比分系统",或者直接运行此Skill即可。
安装与部署
前置条件
- Linux/macOS 服务器(Windows 需要 WSL)
- Node.js >= 18(推荐 v22)
- Git
一键部署
# 1. 克隆仓库
git clone https://github.com/liuboacean/WorldCup-2026.git worldcup-app
cd worldcup-app
# 2. 安装依赖
npm install
# 3. 创建必要目录
mkdir -p data/matches cache
# 4. 创建球队ID映射(从直播吧发现配置)
# 在 config/ 目录创建 teamIdMapping.json
启动
# 开发模式(前台)
node server.js
# 生产模式(后台守护)
nohup node server.js > server.log 2>&1 &
访问 http://你的服务器IP:3001 即可使用。
数据架构
双数据源策略
┌─────────────────────────────────────────────────────────┐
│ 用户浏览器 │
│ main.js(matches) │ modal.js(detail) │ squad.js(阵容) │
└──────┬──────────────────────┬────────────────────────────┘
│ │
┌──────▼──────────────┐ ┌────▼────────────────────────────┐
│ GET /api/matches │ │ GET /api/matches/:id │
│ GET /api/standings │ │ GET /api/matches/:id/lineups │
│ GET /api/teams │ │ GET /api/matches/:id/events │
│ GET /api/rankings │ │ GET /api/matches/:id/stats │
└──────┬──────────────┘ └────┬────────────────────────────┘
│ │
┌──────▼──────────────┐ ┌────▼────────────────────────────┐
│ dataFetcher.js │ │ zhiboFetcher.js │
│ worldcup26.ir │ │ 直播吧(qiumibao.com) │
│ 定时轮询(5分钟) │ │ 按需拉取(60s缓存) │
│ 静态数据+比赛列表 │ │ 实时比分+阵容+事件+统计 │
└─────────────────────┘ └─────────────────────────────────┘
数据源详情
| 数据源 | 基URL | 用途 | 限制 |
|---|---|---|---|
| worldcup26.ir | https://worldcup26.ir |
赛程列表、积分榜、球队/球场基础信息 | 比赛中不更新,赛后更新 |
| 直播吧(qiumibao) | https://s.qiumibao.com / https://dc.qiumibao.com / https://bifen4m.qiumibao.com |
实时比分、比赛事件、首发阵容、技术统计、战报 | 无限制 |
API端点
| 端点 | 功能 | 数据源 |
|---|---|---|
GET /api/matches |
全部比赛列表(含实时比分增强) | worldcup26.ir + zhibo8 |
GET /api/matches/:id |
单场比赛详情 | worldcup26.ir + zhibo8 |
GET /api/matches/:id/lineups |
首发阵容 | 【zhibo8】 |
GET /api/matches/:id/events |
比赛事件 | 【zhibo8】 |
GET /api/matches/:id/stats |
技术统计 | 【zhibo8】 |
GET /api/standings |
小组积分榜 | worldcup26.ir |
GET /api/teams |
球队列表(含FIFA排名) | 本地静态数据 |
GET /api/teams/:id/squad |
球队阵容(球员头像+中文名) | 本地+fifa数据 |
GET /api/rankings |
FIFA世界排名 | 本地静态数据 |
实现细节
目录结构
worldcup-app/
├── server.js # Express 主入口
├── package.json # 依赖配置
├── services/
│ ├── dataFetcher.js # worldcup26.ir 定时轮询(主数据)
│ ├── dataFetcherAlt.js # 比赛增强(事件/统计合并)
│ ├── zhiboFetcher.js # 直播吧API服务(实时数据)
│ ├── squadFetcher.js # 球队阵容(FIFA球员数据)
│ └── dataRelay.js # 数据中继(HE注入)
├── routes/
│ └── api.js # 全部 REST API 路由
├── public/
│ ├── index.html # 首页
│ ├── css/ # 样式文件
│ └── js/
│ ├── main.js # 主页逻辑(比赛列表渲染)
│ ├── modal.js # 比赛详情弹窗
│ ├── standings.js # 积分榜渲染
│ ├── squad.js # 球队阵容弹窗
│ └── filters.js # 筛选功能
├── static/ # 静态基础数据(git跟踪)
│ ├── static_teams.json # 48支球队数据
│ ├── static_stadiums.json # 16座球场数据
│ ├── static_groups.json # 12个小组积分榜
│ └── static_rankings.json # 48队FIFA排名
├── config/
│ └── teamIdMapping.json # 直播吧ID ↔ worldcup26.ir ID 映射
├── data/
│ ├── fifaSquadData.json # 48队球员阵容(含头像、中文名)
│ └── zhibo_mapping.json # worldcup26.ir → 直播吧 matchId
└── cache/ # 运行时缓存(自动生成)
关键实现说明
1. 实时比分增强(路由层)
routes/api.js 的 /api/matches 路由会检查每场比赛的状态:
- 已结束 → 直接返回原始数据
- 未开始且开赛时间 > 1小时 → 跳过
- 进行中或即将开始 → 从zhibo8拉取实时比分,30秒缓存
2. 比赛详情(数据合并)
dataFetcherAlt.js 的 getMatchEnhanced() 合并两个数据源:
- 从 worldcup26.ir 获取基础比赛数据
- 从 zhibo8 获取实时比分、事件、阵容、统计
- 对进球事件进行±2分钟模糊去重(
isNearExistingGoal())
3. 首发阵容(主客队识别)
zhiboFetcher.js 的 transformLineups() 使用双重判断:
- 优先用
liveScoreData.left.id匹配 - 后备用
lineupRaw.info[teamId].court === 'home'
4. 时区转换
dataFetcher.js 的 localToBeijing() 按16座球场所在时区分别转换:
- 墨西哥3座: UTC-6
- 美国东部4座: UTC-4
- 美国中部3座: UTC-5
- 美加西部4座: UTC-7
5. 球队阵容
services/squadFetcher.js :
- 优先从
data/fifaSquadData.json读取(包含球员头像、中文名) - 查询 FIFA 排名(从
/api/rankings获取) getSquad()中自动应用PLAYER_NAME_ZH映射添加中文名
6. 首页实时比分
enhanceLiveMatches()异步为进行中比赛拉取zhibo8实时比分- 比分、状态、比赛时间(如"32′18″")实时更新到比赛卡片
- 30秒缓存避免频繁API调用
常见问题排查
国旗不显示
检查 static/static_teams.json,确保所有48支球队的 flag 字段不为空。dataFetcher.js 已改为从本地静态文件加载,不会在轮询中被覆盖。
比赛时间不对
确认球场ID对应的时区在 localToBeijing() 中正确配置。
首发阵容缺一支队
检查 zhiboFetcher.js 中 transformLineups() 的主客队判断逻辑。可能原因:直播吧API未返回该队阵容,或 lineupRaw.info 字段未正确使用。
球员无头像
- 对大部分球队,头像已内置在
data/fifaSquadData.json中 - 小部分球队(如波黑、刚果)因API-Football无数据无法提供
- 运行
scripts/fetch_player_photos.py(如存在)可批量补充
球员无中文名
services/squadFetcher.js 中的 PLAYER_NAME_ZH 映射表需补充新增球员。
维护
定时任务
dataFetcher.js 内置定时轮询:
- 比赛日: 每5分钟
- 非比赛日: 每30分钟
gitignore 说明
data/目录(运行时缓存、阵容数据)不在git跟踪中cache/目录(运行时缓存)不在git跟踪中static/目录中的JSON文件被git跟踪(基础数据)
数据备份
修改 data/fifaSquadData.json 前建议先备份。阵容数据包含HE注入的球员信息,覆盖可能丢失数据。
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install worldcup-2026-scores - After installation, invoke the skill by name or use
/worldcup-2026-scores - Provide required inputs per the skill's parameter spec and get structured output
What is 2026世界杯实时比分系统?
一键部署2026世界杯实时比分系统,双数据源(worldcup26.ir + 直播吧),免API Key,纯前端+Node.js. It is an AI Agent Skill for Claude Code / OpenClaw, with 0 downloads so far.
How do I install 2026世界杯实时比分系统?
Run "/install worldcup-2026-scores" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is 2026世界杯实时比分系统 free?
Yes, 2026世界杯实时比分系统 is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does 2026世界杯实时比分系统 support?
2026世界杯实时比分系统 is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created 2026世界杯实时比分系统?
It is built and maintained by liuboacean (@liuboacean); the current version is v1.0.4.