FIFA World Cup match predictor: dual-mode score model + Elo ratings. Win/draw/loss probabilities & score predictions.
Coding
2026世界杯实时比分系统
Try it一键部署2026世界杯实时比分系统,双数据源(worldcup26.ir + 直播吧),免API Key,纯前端+Node.js
What it does
一键部署2026世界杯实时比分系统,双数据源(worldcup26.ir + 直播吧),免API Key,纯前端+Node.js
The skill document
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注入的球员信息,覆盖可能丢失数据。
Related skills
Use for English or Chinese football match forecasts, pre-kickoff alerts, post-match review, and controlled self-evolution from multi-book odds, line movement...
获取2026年国际足联世界杯(美加墨世界杯)数据技能。从百度体育抓取48支参赛球队的分组配置、赛程、比赛详情(分析/阵容/赛况/统计/指数)、球队详情(资料/阵容/历史成绩/数据)、球员详情(资料/动态/数据/赛程)、排名数据(积分榜/球员榜/FIFA排名)等,并从中国体育彩票接入官方竞彩玩法赔率(胜平负/让球/...
📊 专业足球赛事多维度数据整理工具 — 整合多渠道公开赛事基础数据 31项球队统计维度交叉比对 | 41项数据校验规则自动清洗偏差 历史交锋·攻防数据·球员状态·联赛积分·近10场可视化 500.com+titan007+Odds API 三源交叉校验 | 一键生成标准化数据报告 💰 1元/场 | ⚡ /am...
Predict English Premier League football match outcomes first, keep World Cup national-team support for compatibility, include schedule/result context, answer in the user's language, and keep output as statistical reference only, never betting advice.
Use when predicting World Cup match results and generating China Sports Lottery betting strategies (胜平负/让球/半全场/总进球/比分), including injury factor analysis, wea...