fanta-carbonara:实践指南
工作中遇到相关需求时,fanta-carbonara值得先读说明,因为它主要用于梦幻足球联赛的数据管道和决策支持:球员数据、预计阵容、比赛统计数据、拍卖跟踪和阵容推荐。一旦进入数据与知识处理环节,数据结构、更新策略和可追溯性会决定结果是否可信会直接影响交付,这也是我最关心的风险。我建议用一份规模可控且答案已知的数据集试跑,重点记录模式兼容、增量更新、查询结果和来源追踪,再与现有方案比较。编辑判断上,需要保留数据来路与变更记录的使用者可以优先研究它;其他团队不必为了热门标签勉强接入。

芬达 Carbonara
Assistente 经典梦幻足球联赛的数据:名单、成绩、联赛赛程表以及来自 formazione. 的建议 与 Claude Code. 一起通过语音进行驾驶
它是什么(以及它不是什么)
leghe.fantacalcio.it 上的 12 队联赛,模式 经典,500 学分,玫瑰 3P-8D-8C-6A。该存储库包含该联赛的数据,并且 用它们来回答两个问题:今天我支持谁和它值多少钱 本次交流。
季初拍卖已完成(2026 年 9 月)。从此源 Rose 是真正的联盟:存储库每天早上都会从 leghe.fantacalcio.it 重读它们,以及 学分、对阵时间表和结果,而不是手写下来。
只有一条规则将整个项目结合在一起:
丢失的数据仍然丢失。从来没有估计的成绩,从来没有推断的状态, 从来没有一个猜到的日子。如果来源没有它,脚本会这样说并停止。
它的双胞胎:历史永远不会变短。投票或结果已保存 它不会因为来源不再显示或者因为玩家被出售而消失 国外:尝试的脚本拒绝编写。
这看起来很迂腐,直到你发现你的统计数据源将一名球员
罗马-国际米兰记分牌上的利物浦队 (→ .docs/bigballs-api.md)。
数据如何移动
flowchart LR
subgraph fonti[" Fonti esterne"]
FC["fantacalcio.it
<small>listone, voti, probabili,
squalificati</small>"]
FD["FantaDraft
<small>infortuni</small>"]
BB["BigBalls API
<small>calendario + box score</small>"]
LF["leghe.fantacalcio.it
<small>rose, crediti, calendario
e risultati della lega</small>"]
end
subgraph scripts["⚙ Import (ogni mattina)"]
I1["import_listone_fc.py
import_fantadraft.py"]
I2["import_voti.py"]
I3["import_calendario_seriea.py
import_matchday_stats.py"]
I4["scrape_formazioni.py
scrape_squalifiche.py
apply_formazioni_status.py
salva_status_scadenza.py"]
I5["import_rose_lega.py
import_calendario_lega.py"]
end
subgraph dati[" data/ (JSON in git)"]
P["players.json
<small>599 giocatori</small>"]
S["status_scadenze.json
<small>status prima di ogni scadenza</small>"]
M["matchday_stats.json
<small>storico voti e statistiche</small>"]
C["calendario_serie_a.json
<small>380 partite</small>"]
O["teams.json + ownership.json
<small>12 squadre, 300 giocatori</small>"]
L["lega_competizioni.json
<small>calendario e risultati</small>"]
end
subgraph out[" Output"]
R["report_formazione.py
<small>formazione consigliata</small>"]
end
FC --> I1 --> P
FD --> I1
FC --> I2 --> M
FC --> I4 --> P & S
BB --> I3 --> C & M
LF --> I5 --> O & L
P & O & M & C --> R
快速入门
pip install -r requirements.txt
export BIGBALLS_API_KEY=... LEGHE_FC_USERNAME=... LEGHE_FC_PASSWORD=...
# Il giro completo, nell'ordine giusto, è la skill aggiorna-dati. A mano:
python3 scripts/import_listone_fc.py # listone (fantacalcio.it)
python3 scripts/import_fantadraft.py # infortuni
python3 scripts/import_rose_lega.py --league-id 923348 # rose e crediti della lega
python3 scripts/import_calendario_lega.py --league-id 923348
python3 scripts/import_calendario_seriea.py --season 2026 --status finished
python3 scripts/import_matchday_stats.py # box score (BigBalls)
python3 scripts/import_voti.py # voti Redazione (fantacalcio.it)
python3 scripts/scrape_formazioni.py && python3 scripts/scrape_squalifiche.py
python3 scripts/apply_formazioni_status.py
python3 scripts/salva_status_scadenza.py # foto degli status prima della scadenza
python3 scripts/import_storico_stagioni.py --stagioni 2026-27 --corrente # rigori di quest'anno
python3 scripts/rigoristi.py calcola # consenso sulle gerarchie dei rigoristi
# La formazione della mia squadra
python3 scripts/report_formazione.py --team-id 20598917 --matchday 6
实际上,无需启动它们:例程每天在 6:52(时间
意大利语),运行技能 aggiorna-dati 并将数据推送到 main。
行动中
推荐第 6 天的训练,根据当天的成绩计算 29/09 1-5(数据每天早上更新,因此重新启动后数字会发生变化):
$ python3 scripts/report_formazione.py --team-id 20598917 --matchday 6
Giornata 6 — modalità classic, panchina di 7 (1 P, 2 D, 2 C, 2 A), cambi solo tra pari ruolo
Prossimo turno dal calendario: 10/10 - 12/10 (10 partite)
Scadenza formazione: 10/10 alle 15:00 (ora italiana), inizio di Genoa-Fiorentina
Modulo consigliato: 3-4-3
...
TITOLARI:
[P] Martinez Jo. 4.54 voti 4.55 avv -0.01 titolare 90% vs Parma (C) 10/10
[D] Kamara H. 6.77 voti 6.72 avv +0.04 titolare 90% vs Torino (T) 12/10
[D] Doekhi 6.55 voti 6.28 avv +0.28 ballottaggio 50% vs Monza (C) 11/10 <- se non gioca entra Valeri
...
[C] Frattesi 7.71 voti 7.43 avv +0.28 titolare 90% vs Monza (C) 11/10
[C] Zaccagni 7.06 voti 6.78 avv +0.28 RIG! titolare 90% vs Monza (C) 11/10
...
[A] Esposito Se. 6.97 voti 7.16 avv -0.19 ballottaggio 70% vs Milan (C) 11/10 <- se non gioca entra Adams A.
...
PANCHINA — 7 di 7 posti (per ogni titolare senza voto entra il primo del suo ruolo;
se le riserve di quel ruolo finiscono, lo vale 0):
P1 Provedel - senza voti panchina 5% vs Parma (C) 10/10
D1 Valeri 6.17 voti 6.12 avv +0.04 titolare 90% vs Inter (T) 10/10
D2 Calvani 6.10 voti 6.17 avv -0.07 titolare 90% vs Napoli (T) 10/10
C1 Ndour 6.29 voti 6.13 avv +0.16 titolare 90% vs Genoa (T) 10/10
C2 Thorstvedt 5.89 voti 6.08 avv -0.19 ballottaggio 85% vs Milan (C) 11/10
A1 Adams A. 6.50 voti 6.51 avv -0.01 titolare 90% vs Atalanta (T) 12/10
A2 Simeone 6.43 voti 6.21 avv +0.22 titolare 90% vs Udinese (C) 12/10
FUORI DISTINTA (la panchina ha pochi posti per ruolo: questi non entrano):
...
[C] Pierotti 5.96 voti 6.03 avv -0.07 ballottaggio 80% vs Bologna (C) 11/10
...
PUNTEGGIO ATTESO: 71.1 punti (somma degli 11 , già scontata per
chi rischia di non prendere voto e per gli che possono restare vuoti).
...
Soglie della lega: primo gol a 66, poi uno ogni 5.
Il punteggio vero si allontana da quello atteso di circa 5.3 punti (una deviazione
standard: 1.60 a giocatore, misurata su 786 voti delle giornate 3-5
confrontando la previsione fatta prima con il voto vero). Quindi i gol sono probabilità:
0 gol 17% 1 gol 32% 2 gol 33% 3 o più 18%
...
名字后面的数字是如果玩家获得投票的预期幻想投票,并决定 每个角色内的顺序。它是其后面两列的总和(小于 四舍五入):
voti是最后 5 个幻想投票的平均值,更接近角色的平均值,就好像 该球员比普通球员多打了 5 场比赛:Frattesi 的评分为 8.50(满分 5), 下降至7.43;埃斯波西托的得票率为 8.00,但只有 2 票,因此他的得票数进一步下降,降至 7.16。avv是对手在下一场比赛中比平均丢球多或少的数量 冠军:蒙扎场均得分为1.9,对与他们比赛的球员来说价值+0.28 (Frattesi、Zaccagni、Doekhi),米兰 1.1,比埃斯波西托少 0.19,后者最终得到 6.97。
右边是fantacalcio.it可能阵容的状态,百分比
所有权。 不输入数字:如果所有者没有投票,则输入第一个数字
替补席,所以最强的总是走在前面(通知上写着谁进入)。
相反,它进入了替补席的选择,替补席有7个固定名额:如果一个角色的替补
他们完成了这个位置的价值是0,而一个从不参加比赛的预备队就是一个浪费的位置。为此在
替补席上有托斯特维特(5.89,85% 得票率),而不是皮耶罗蒂(5.96,80%)。 RIG! 分数
今年已经作为消息来源的第一个点球主罚者踢出了点球;充当
季后赛,不进号。
PUNTEGGIO ATTESO 将 11 个位置转化为联赛进球数(66 分 = 1 个进球,71 = 2 个进球,76 = 3)。 71.1并不意味着“2球”:球队的真实比分已经偏离 预计领先 7 分左右,联赛所有球队将重赛 3-5 场比赛, 因此报告给出了每个结果的大概情况(中心不是 仍在校准中)。出于同样的原因,仅在阈值之上停留一口气不算数:一分 预期的附加值在任何地方的值都在 0.17 左右,并且选项以分数为权重。
方框分数历史记录启用了什么 — 第 1-5 天的示例:
TOP GOL TOP CARTELLINI GIALLI
Malen Roma 6 gol in 347' Ostigard Genoa 3 gialli, 6 falli
Raimondo Frosinone 4 gol in 329' Akanji Inter 2 gialli, 4 falli
Varela G. Monza 4 gol in 341' Hermoso Roma 2 gialli, 3 falli
这不是一个炫耀的排名:牌和犯规告诉我们谁在比赛中面临风险 艰难。对于真正的取消资格,存储库不会计算黄色本身,请阅读来源 官方:取消资格和警告来自“不可用”页面 fantacalcio.it,报告排除前者并警告您后者。
数据结构
data/、JSON 中的所有内容都在 git 中进行版本化——没有数据库,没有隐藏状态。
| 文件 | 内容 | 状态(29/09) |
|---|---|---|
players.json |
官方列表 fantacalcio.it:角色、团队、初始价格和当前价格、FVM、状态 | 599 名玩家 |
matchday_stats.json |
对于giocatore/partita:投票和幻想投票(编辑团队)、进球、助攻、牌、犯规、分钟、对手、casa/trasferta。 永远不会变短 | 2099 行,1443 票幻想(第 1-5 天) |
calendario_serie_a.json |
联赛赛程表和结果 | 380 场比赛(50 场比赛) |
teams.json |
参加联赛的球队、总积分和剩余积分 | 12 队 |
ownership.json |
谁拥有谁、以什么价格、以什么方式拥有 | 300名玩家 |
lega_competizioni.json |
联赛比赛、对阵赛程和结果。 计算出来的日子永远不会丢失 | FANTACARBONARA 冠军,33天 |
injuries.json |
目前的伤病预计会恢复 | 50 个条目 |
squalifiche.json |
目前的暂停和预订 | 每圈更新 |
formazioni_history.json |
可能的阵容历史已发布 | 不断积累 |
status_scadenze.json |
每轮截止日期之前所有玩家的状态和所有权概率(salva_status_scadenza.py):回测知道谁出局,无需考虑未来 |
1 轮(第 6 天),599 名玩家 |
storico_stagioni.json |
所有球员过去在的赛季,仅供参考,除了本赛季之外,还适用于今年的官方点球 | 2025-26 (663), 2024-25 (679) |
rigoristi.json |
根据多个来源的处罚执行者的层次结构,并通过 rigoristi.py 计算得出共识。 这不是官方数据:它仅作为季后赛 |
20 个团队,3 个来源 |
notizie_rosa.json |
关于我的球员球队的最新事实,包括来源以及它们是否经过验证 | 19 条新闻,17 条已验证 |
market_log.json |
asta.py记录的购买、交换和发布日志 |
仅用于模拟 |
config/league.json持有录取表格,阵容要求,我的团队
(my_team_id: VAR-tificial)、联赛id、投票来源(fonte_voti:
Fantacalcio 编辑团队)和联赛规则取自 FantaCarbonara 法规,
每个都有其来源:
regole_lega:无防御修正; 7人组合长凳 固定(1 P、2 D、2 C、2 A),仅在同等角色和值为 0 的未覆盖槽位之间变化;阈值 进球(第一个进球为 66 个,然后每 5 个进球);推迟(见下文)、培训截止日期、 未部署阵型的处罚。regole_mercato:每个报价必须为每个剩余插槽留下至少 1 个积分 空着,如果该玩家及所有后续玩家失败,将受到惩罚;释放退款1 信用、国外或乙级联赛按购买价格退款;拍卖 维修+50 学分;仅在一月份进行交易。asta.py尚未应用它们。competizioni:锦标赛、、和意大利杯同等标准, 为了以后的排名。scoring:仅供参考,幻想投票已由网站计算。 两个值仍然是null,因为法规没有明确它们(“罚金+2”,目标 不可侵犯)。
培训委员会的想法如何
report_formazione.py 按预期幻想投票对每个角色的玩家进行排序如果
他们有投票权:如果先发球员没有上场,则该队替补席上的第一位球员上场
角色,所以最强的总是在前面。玩的概率不进入
按照顺序,但在警告中(“如果他不参加比赛,X 进入”)以及 谁进入的选择
替补:每个角色有 7 个固定配额,未覆盖的位置价值 0,因此 1 个
不参加比赛的替补是一个浪费的地方。
该值有两部分,显示在列中并在行中为初学者和初学者进行解释 变化:
- 投票:最后 5 个幻想投票的平均值,更接近角色的平均值,就好像 玩家还有 5 场比赛;
- adv:与平均水平相比,对手在下一场比赛中遭受了多少损失。
测试是 backtest_undici.py:从 3 点开始每天部署全部 12 个
仅具有先前数据的联赛球队,应用替补规则并添加
真实点。在 29/09 上,与订单相比,模型每天价值 +2.61 积分
买入(范围 +0.64 / +4.56),+1.15 对比简单平均评级,+0.56
选择替补的概率为+0.85,对手项为。拥有 36
阵容范围是乐观的,并且标签为“已证明/未证明”
它们会因几美分而改变:它们是线索,而不是结论。对手一词仍然存在
临时:在第 8 比赛日重新测量。进攻性产出的修正(进球数)
预期射门)被 27/09 关闭,因为它没有显示任何增益;先验的
从报价和上季来看,casa/trasferta以及预期值的模块选择
他们受到了考验,却被排除在外。该规则有利于当前状态,并且
声明:没有改变,既不添加也不删除它,没有
不包括零的区间。中的数字和推理
.docs/analisi-valutazione-formazione.md.
仍远未确定:预期订单猜测的差距低于 0.20 点 谁赚得最多,就几乎就像一枚硬币。因此,DECISIONI TUE 部分列出了这些 选择并把它们留给你。
推迟的比赛遵循联赛规则,每天适用:
| 白天比赛推迟 | 玩家得到什么 | 报告如何对待他们 |
|---|---|---|
| 从 1 到 3 | 6 公共事务,无恢复 | 它们在订单中价值 6 个(6 个安全,没有变化) |
| 超过3个 | 为所有人投票恢复 | 他们保持平均水平 |
推迟但在当天进行的比赛不属于推迟。正好 3
报告警告说,即使在截止日期之后,再有一项推迟也会改变规则
大家。还打印训练截止日期:第一场比赛开始时不
轮班推迟。如果轮班不是根据日历日期重建的,则不会
不应用这些并要求手动检查。完整审查
逻辑:.docs/difetti-consiglio-formazione.md。
数据源,有其缺陷
没有任何来源被视为。我们所知道的是记录下来的,而不是发现的 两次:
| 来源 | 我们得到什么 | 我们知道什么是行不通的 |
|---|---|---|
| fantacalcio.it(公共HTML) | 官方名单(598,相同的拍卖ID),编辑投票,可能的阵容,取消资格和禁止 | 按id合并投票和列表;可能且按名称不合格,因此必须查看“未找到”。得票数“55”表示没有投票 |
| FantaDraft(GitHub,公共) | 事故 | 598 名玩家中只有 532 名:这就是该列表不再来自此处的原因 |
| BigBalls API | 日历、结果、每位球员的得分(还有射门、关键传球、替补) | 换球衣错队(通过投票和解恢复)、无关球员、重复赛事、迟到一天round,几乎没有处罚; 17 名球员的评分实际上并不高 |
| leghe.fantacalcio.it(私人API) | 联赛阵容、积分、比赛、赛历和结果 | 无证,两个JWT 其中一个没用,只读。它还显示 6 个空队;当管理员移动玫瑰时,他可以在几秒钟内归还几乎所有空玫瑰。无排名终点 |
详细信息、端点和已验证的陷阱:.docs/bigballs-api.md 和
.docs/leghe-fc-api.md.
状态和后续步骤
- [x] 完整的官方名单和受伤情况
- [x] 拍卖形式(拍卖已结束;仍可用于模拟)
- [x] 有历史、被取消资格和被禁止的可能阵容
- [x] 完整的赛季日历
- [x] 球员历史记录:进球、助攻、红牌、犯规、上场时间
- [x] 投票和幻想投票(Fantacalcio 编辑团队)从第一场比赛开始,历史不会再短
- [x] 12支队伍的名单和真实积分,来自leghe.fantacalcio.it
- [x] 交锋赛程和联赛结果
- [x] 配置中的联赛规则;培训报告中的推迟和截止日期
- [x] 每日数据更新例程
- [ ] 联赛排名 — 没有端点:将从日历中获取,第一天计算(6,10-12/10)
- [ ] 联赛计算成绩 (
teamLineup) — 在计算的第一天进行验证 - [ ]
asta.py中的市场规则(超限、退款)—用于维修拍卖 - [x] 真实联赛替补推荐阵容(7名)和预期进球数,通过积分回测进行验证;进攻性生产,casa/trasferta 和期望值模块经过测试并废弃
克劳德·代码的技能
该存储库旨在在对话中使用。在.claude/skills/中:
| 技能 | 当他离开时 |
|---|---|
aggiorna-dati |
早上的例行公事/“更新所有数据” |
asta |
«从 Barattolo FC 获取 112 的 Lautaro»(今天仅用于模拟) |
aggiorna-formazioni |
«更新可能性» / 在每个截止日期之前 |
formazione |
《我有什么阵型?》 |
凭证
仅来自环境变量,从不在文件中,从不在聊天中:
LEGHE_FC_USERNAME, LEGHE_FC_PASSWORD, BIGBALLS_API_KEY.
粘贴在聊天中的密钥应被视为已泄露并重新生成。
-
10.05
GitArchitectureDiagram:AI Agent 工具实践指南
-
10.05
Vitrine:实践指南
-
10.05
hedgehog:AI Agent 工具实践指南
-
10.05
API-Sentinel:实践指南
-
10.05
adui-skills:实践指南
-
10.05
LangAlpha:AI Agent 工具实践指南
-
-
- chat_skills:实践指南
- 10.05
-
-
下载
- |
-
-
下载
- 《行尸走肉第一章》免安装中文汉化硬盘版下载
- 单机|436 MB
- 一款以动作冒险为主题的游戏
-
-
下载
- 《街头霸王X铁拳》免安装中文汉化硬盘版下载
- 单机|111MB
- 一款非常好玩的格斗游戏
-
-
下载
- |
-
-
下载
- 《暗黑破坏神3》免安装繁体中文正式版下载
- 单机|7630 MB
- 一款以角色扮演为主题的游戏
-
-
下载
- 《马克思佩恩3》免安装硬盘版下载
- 单机|27033 MB
- 一款以第三人称射击为主题的游戏