--- name: lottery-hk description: "香港六合开奖抓取与分析 (user B1EF5044... 偏好, 文化娱乐参考不构成投注建议)。数据源: sol.2344a.cc(2026-07-29 替代 sol.0051.cc) + btc.tktk.app/data/v_xg.json + tktk.tktk4.cc。SQLite 存数据。**触发规则 (硬性)**: 用户问'特码'/'买码'/'今晚开什么'/'下期开什么'/'分析'/'玄学'/'六合分析' → **必须调 `python3 scripts/lottery_特码.py [期号]`** (纯挂牌 + 玄机诗 + 红字, 5 步推演, 输出 Top 5 特码 + 重点金额分配)。**禁止**: (1) 跑 `lottery.py analyze` (5 期数据无意义, user 已确认); (2) 混 Qi-1 期已开号码 (081 已开, 不算 082 资料); (3) agent 自己写 4 框架 (河洛/梅花/玄空/奇门) 公式 (reference 没推演方法); (4) 编 4 框架数据。时区: 默认北京时间 UTC+8, 挂牌日=开彩日 (sol.2344a.cc 时间戳)。v_xg.json 字段: Qi=下次将开, Data.1-7=Qi-1 期已开号码, Week/Day=Qi 期开彩日, Nq=再下期。推送格式: 横向 markdown 表格 (4-8 列, QQ 可左右滑动), 必须标 (北京时间), 不写刚开/最新, 不加 A/B/C 简单回答模板 (agent 自加, 用户不要)。用户问'从哪取'只答来源一行不展开。4 框架脚本: scripts/lottery_4frame.py (v_xg.json + 综合挂牌 + 六信红字 + 玄机诗 4 步自动跑)。" version: 1.2.6 tags: [lottery, hk, 六合彩, analysis, sol-2344a, qdrant-memory] --- # 香港六合开奖分析 **⏰ 时区规则(硬规则)**: 所有时间默认 **北京时间(UTC+8)**。v_xg.json 的 `Week`/`Day`/`Year`/`Moon` 是 **Qi 期(下次将开)** 的开彩日。**挂牌日 = 开彩日 (sol.2344a.cc 帖子时间戳 = 实际开奖日, 同天)**。任何"周几"都指北京时间;写 QQ 推送必须带"北京时间"字样或 +8 时区。 **⚠️ 历史版本错误** (已修正): 早期 SKILL.md 写"挂牌提前 2-3 天"是错的。**用户 2026-07-30 反复纠正后确认: 挂牌日 = 开彩日, 同一天**。 **⏰ 沟通风格**: 用户要"直接说怎么取的,不要分析/解释"。回答"081 是周几"时,直接说"来源是 v_xg.json Week=周四" — 不分析"为什么不是周二"。 **📦 4 框架 (奇门/梅花/河洛/玄空) 的位置**: - **真脚本**: `scripts/lottery_4frame.py` (4 步流程, 自动跑) - **Reference**: `references/analysis-example-073/074/075.md` (073 真实推演示范: 3 步 v_xg+挂牌+红字) - **不要**: agent 写 河洛/梅花/玄空/奇门 公式, reference 没推演方法, 拍脑袋推的没意义 - **Cron 直接调 `python3 lottery_4frame.py` 拿完整分析**, agent 不需要手动算 **⚠️ 4 框架 ≠ agent 自己造公式 (2026-07-30 实战)**: user 问"4 框架"时,**先 cat `references/analysis-example-073/074/075.md` 看实际推演流程**。073 example 是 3 步: (1) v_xg.json 五行统计 (2) 综合挂牌解读 (爆/出肖) (3) 六信红字。**不要**自己写 河洛洛书九宫 / 梅花起卦 / 玄空飞星盘 / 奇门遁甲 公式,这些 reference 没推演方法,agent 拍脑袋推的没意义。**改用 `lottery_4frame.py` 脚本跑。** **5 期数据 (analyze 频率) 没意义**: `lottery.py analyze` 输出 5 期冷热号,数据量太少,user 已明确说"不要跑频率,没有意义"。`analyze` 只用作辅助核对,不是主要分析方法。 从天空彩票抓取香港六合彩开奖结果,提供数据分析。**数据存SQLite,不存图片。** ## 数据源 ### 主站 - 主站: https://tktk.tktk4.cc/ww.htm(首页,含iframe开奖倒计时) - **资料站**: https://sol.2344a.cc/(所有挂牌/解牌/玄机资料实际托管在此, 2026-07-29 已迁移) - 综合挂牌: https://sol.2344a.cc/zongheguapai/ ← 首选挂牌数据源 - 六信红字: https://sol.2344a.cc/lxhz/ - 梅花诗/玄机: https://sol.2344a.cc/xuanjiziliao/ - 解牌: https://sol.2344a.cc/jiepai/ - 平碼平肖: https://sol.2344a.cc/pingxiaopingma/ - **ai.c8c.cc** (NOT sol.2344a.cc 替代): 六合站, 与 sol 系列无关 ### 当前开奖JSON API - **v_xg.json**: `https://btc.tktk.app/data/v_xg.json`(直接返回JSON,无需浏览器) - **Qi 字段语义 (pitfall)**: Qi 是**下一次将开**的期号, 不是"已开"。**真开奖**要从 sol.2344a.cc 挂牌历史 / 数据库历史查 - **sol.2344a.cc 历史API**: `/e/api/api.php?get=sixlist&year=YYYY` 仍返回空 (历史AJAX失效) ### 开奖时间 - 每周二、四、六 21:30(北京时间) - 49个号码,6个平码 + 1个特码 ### tktk API架构(从public.js逆向) tktk Vue.js应用的数据源URL模式: `https://btc.tktk.app/data/v_{cod}.json?{timestamp}` | cod | 彩种 | 说明 | |-----|------|------| | xg | 香港六合 | 每周二/四/六 21:30 | | 48am | 天天澳门彩 | 每天 22:14-22:40 | | am | 新澳门六合 | 每天 21:14-21:40 | | tw | 台湾六合 | 每天 20:28-20:58 | | xjp | 新加坡六合 | 每天 18:35-18:55 | | fckl8 | 快乐8 | 每天 21:25-21:40 | JSON返回格式: ```json { "Data": { "1": {"nim":"金","number":"34","color":"红","style":"red","sx":"鸡"}, "2": {...}, ... "7": {...} }, "Time": "21点30分", "Day": "05", "Moon": "07", "Year": 2026, "Qi": "071", "Nq": "072", "Week": "周日", "Auto": false } ``` - `Data.1`-`Data.6`: 平码,`Data.7`: 特码 - `Qi`: 当前期号(下次将开),`Nq`: 下期号 - `nim`: 五行,`sx`: 生肖,`color`: 波色(红/蓝/绿) ### ⚠️ 重要: v_xg.json 字段语义陷阱 - **正确**: Qi = 下一次将开期号,不是"已开";Nq = 下下期;Week/Day/Year/Moon 都是**下期**的开奖时间 - **7 号码 (Data.1-7)**: 真已开期号的号码(Qi-1 期的结果) - **实战 (2026-07-29)**: cron 周二 14:00 (7/28 22:00) 跑, v_xg.json Qi=081 (7/30 周四下次将开), 7 号码是 080 期(已开);081 期要等 7/30 周四 21:30 - **取下下期 / 周几等时间**: 拿 v_xg.json 即可(Qi/Nq/Week/Day 都是下期时间) - **取真刚开期号 + 号码**: 7 号码是 Data.1-7 + sol.2344a.cc 挂牌历史索引 Qi-1 期号,或数据库 history 表 ## 数据存储 **SQLite数据库**: `~/.hermes/trading/lottery.db` - `draws` 表: 开奖记录(期号、日期、6个号码+特码、生肖、五行、波色) - `cold_data` 表: 冷数据(key-value,网页文本内容) - `image_links` 表: 图片链接(类别、标题、URL、期号,不下载图片) - **不存图片文件**,图片类只存URL链接 ## 脚本用法 ```bash SCRIPT=~/.hermes/skills/trading/lottery-hk/scripts/lottery.py python3 $SCRIPT add <期号> <号码> # 手动添加 python3 $SCRIPT add_full <期号> <号码> <生肖> # 手动添加(带生肖) python3 $SCRIPT history [期数] # 查看历史 python3 $SCRIPT analyze # 分析(频率/热号/冷号/生肖/五行/波色) python3 $SCRIPT zodiac # 生肖号码对照表 python3 $SCRIPT next # 下期开奖时间 python3 $SCRIPT import_json <文件> # 导入JSON历史数据 python3 $SCRIPT save_cold # 保存冷数据 python3 $SCRIPT get_cold # 读取冷数据 python3 $SCRIPT save_image <类别> <标题> [期号] # 保存图片链接 python3 $SCRIPT list_images [类别> # 列出图片链接 ``` ### 特码分析 (scripts/lottery_特码.py) **纯挂牌分析**(不混 Qi-1 期数据,不跑频率): ```bash python3 ~/.hermes/skills/trading/lottery-hk/scripts/lottery_特码.py [期号] ``` 输出: - Top 5 特码候选(按挂牌共识权重排序) - 重点金额分配(默认 ¥15 = 5/4/3/2/1) - 来源映射(挂牌链接 + 玄机诗) **不要**: - 不要混 Qi-1 期 (081 期) 号码 (Qi-1 已开, 不算 082 资料) - 不要跑 `lottery.py analyze` (5 期数据无意义) - 不要 agent 自己写 4 框架玄学公式 (河洛/梅花/玄空/奇门, reference 没推演方法) ## 生肖映射(网站实际映射,已验证) 网站的生肖表和标准12生肖轮转不同,用 mod 12 映射: ``` 0=狗, 1=猪, 2=蛇, 3=马, 4=羊, 5=虎, 6=兔, 7=鼠, 8=牛, 9=猴, 10=鸡, 11=龙 ``` 071期验证: 34=鸡(34%12=10)✅, 46=鸡(46%12=10)✅, 17=虎(17%12=5)✅ ## 冷数据 vs 热数据 **🧊 冷数据**(存cold_data表,不常变): - 歷史、生肖表、日期、常識、全年、技巧、規律、策略 **🔥 热数据**(每期更新): - 開獎、掛牌、解牌、綜掛、平碼平肖、玄机资料、论坛高手推荐等 ## 参考资料 - 用户说"六合"、"开奖"、"彩票"、"特码" - 用户问"今天开什么"、"最近开奖号码" ## 注意事项 - 页面用Vue.js动态加载,非开奖时间段(21:14-21:40外)可能无数据 - 图库类页面(玄机图库、经典图库等)是图片,不抓取 - 网站有大量博彩广告,解析时需过滤 ### 📌 082 期实战案例 (2026-07-29 凌晨, 用户多次纠正) **事件流**: 1. cron `668dcf3ec54d lottery-draw-result` 14:00 UTC (= 北京 22:00) 跑 2. v_xg.json `Qi=081, Nq=082, Week=周四, Day=30` 3. agent 推: "081 期 = 7/30 周四 21:30 开彩" — **错**(实际 081 = 7/28 周二) 4. agent 推: "082 期 = 8/1 周六 21:30" — **错**(实际 082 = 7/30 周四) 5. 用户反复纠正"081 时间错 / 不要分析 / 你直接跑不行吗" 6. **真相**: 挂牌日 = 开彩日 (sol.2344a.cc 挂牌 07-28 13:35 = 081 周二开彩) **坑 1 (v_xg.json 字段)**: `Week`/`Day` 是 **Qi 期开彩日** (下次将开),不是"当前期"。 - Qi=081 → 081 周二开 (7/28) - Week=周四 → 081 错的,实际 Qi 周二是周二,但 Week 字段是 Qi 期开彩日 — **这是 agent 多次误读的根本原因** **坑 2 (挂牌日 vs 开彩日)**: sol.2344a.cc 挂牌帖的发布时间 ≠ 开彩日,实际是**同一天**(挂牌发出来当天就是开彩日)。**挂牌提前 2-3 天的旧描述是错的**。 **坑 3 (沟通)**: agent 答 "081 是周几" 时,反复用"为什么不是周二"的长篇分析 → 用户纠正"我说了,你不要分析,只说怎么取的就行了"。 **正确做法**: - 用户问"081 是周几" → 一行答: "挂牌日 = 开彩日, sol.2344a.cc 07-28 13:35 挂牌 = 081 周二开彩 (北京时间 21:30)" - **不展开** "为什么" / "不是周四" / "Qi 字段语义" - 出错立刻认错,不要找理由 ## 🚨 硬规则 (每次推送前自检) 1. **时区**: 所有时间默认 **北京时间 (UTC+8)**, 必须标"(北京时间)"后缀 2. **挂牌日 = 开彩日** (硬规则): sol.2344a.cc 挂牌帖时间戳 = 实际开奖日,**同天**。旧描述"挂牌提前 2-3 天"是错的。 3. **v_xg.json 字段**: - `Qi` = 下次将开期号 - `Data.1-7` = Qi-1 期 已开号码 (7 个) - `Week`/`Day`/`Year`/`Moon` = Qi 期 开彩日 (北京时间) — **不是"当前期"** - `Nq` = 再下期 4. **推送格式**: 不写"刚开"/"最新" — 用具体期号+明确日期 5. **沟通**: 用户要直接说数据来源,不要长篇分析 6. **4 框架分析**: **直接调 `python3 scripts/lottery_4frame.py`**(4 步流程: v_xg.json + 综合挂牌 + 六信红字 + 玄机诗),**不要 agent 自己造公式**(reference 073 流程是 3 步推演,不是 4 框架玄学公式)。`lottery.py` 不支持 4 框架。 ## 🚨 用户偏好 (2026-07-30 实战反复纠正, 必读) 1. **直接说从哪取的, 不要分析/解释** — 回答"081 是周几" → 一行答 "sol.2344a.cc 07-28 13:35 挂牌 = 081 周二开彩", **不展开** "为什么不是周四" / "Qi 字段语义" / 长篇对比 2. **出错立刻认错, 不要 "分析" 或 "等回话"** — 知道错了就立刻重做正确的事, 不要"让我再想想"/"让我检查一下" 3. **不要在回复结尾加 "A/B/C 简单回答" 选项** — 这是 agent 自己加的回复模板, **不是用户让的** (2026-07-30 user 指出 "这是什么技能输出的" — 实际没有这个 skill, 是我加的) 4. **看到 "4 框架" / "跑 X 框架" 关键词, 不要立刻自己推公式** — 先看 `references/analysis-example-073/074/075.md` 用 example 方法推演, 不是自己写 5. **挂错 / 跑错 / 答错不要重发分析, 立刻重做** — 用户说 "你直接跑不行吗" 意思是: **别说废话, 重做** ### Pitfalls (2026-07-29 更新) - **sol.2344a.cc 全站 200 OK** (替代失效的 sol.0051.cc): - https://sol.2344a.cc/zongheguapai/ ✅ - https://sol.2344a.cc/lxhz/ ✅ - https://sol.2344a.cc/xuanjiziliao/ ✅ - https://sol.2344a.cc/jiepai/ ✅ - https://sol.2344a.cc/pingxiaopingma/ ✅ - 挂牌帖含 "080期/081期" + 发布日期, 可索引历史 - **v_xg.json 字段语义 (硬规则)**: Qi/Nq/Week/Day/Year/Moon 都指**下期**(不是当前期)。Data.1-7 才是 Qi-1 期号码。详见上文重要Pitfall - 实战案例 (2026-07-29 凌晨 0:43 北京): v_xg.json Qi=081 (7/28 周二下次将开), Data.1-7 是 080 期(7/25 周六已开)号码 - **挂牌日 = 开彩日** (用户 2026-07-30 实战确认, 同一天, 不是提前 2-3 天): sol.2344a.cc 挂牌发布时间 = 实际开奖日 - **取真刚开期号 + 号码**: 7 号码 = Data.1-7; 期号 = Qi-1; 下期时间 = Week/Day + Nq/Week - **取真历史**: sol.2344a.cc 挂牌索引 或本地 SQLite draws 表 - **📌 推送格式偏好 (用户硬偏好, 2026-07-30 实战)**: QQ 推送用 **markdown 横向表格** (每票 1 列, 4-8 票可滑动比较)。**严禁** 1 票 1 块 (垂直堆叠), 用户说过"用列表方式显示 / 把所有表格都换成这样的"。 - 字段顺序: 名称表 + 项目表 (2 张表上下) - 列用票代码, 行用指标 (现价/股息率/趋势/MA50/支撑/离均线/ATR/策略) - 类似脚本: `daily_t_analysis.py` / `dividend_alert.py` / `cn_dividend_buy_timing.py` 全部已转横向表格 - **时间默认北京时间(用户硬规则, 2026-07-30)**: 任何日期时间 (挂牌/开奖/推送) 默认 UTC+8 北京时间;cron schedule UTC → 换算时也明确标"北京" - **v_xg.json Week/Day 是下期时间** (北京时间周二/四/六 21:30) - **挂牌日 ≠ 开奖日** (挂牌提前 2-3 天) - **用户纠正"082 时间错"**: 因为 agent 没标"北京时间" + 没区分挂牌日和开奖日 - 沟通风格: 用户要"直接说怎么取的,不要分析/解释" — 错了立刻认错 - **v_xg.json 在 browser_navigate 下返回空白包装页**: skill文档说"直接返回JSON,无需浏览器"——但在 cron agent 模式下 terminal 被拦截,只能用 browser_navigate。此时 btc.tktk.app/data/v_xg.json 显示的是一个带 Pretty-print 复选框的包装页,JSON 内容不在 DOM 里。**临时方案**: 用 browser_snapshot(full=true) 尝试,或改用 tktk.tktk4.cc 首页的 Vue iframe 框架内的数据。 - **e/api/kj.php?xg 返回空页面**: 同样 Vue 包装,cron 模式无法获取实际开奖数据。 - **tktk.tktk4.cc 历史页 (history/) 返回 404**: 不是正确路径。 - **sol.2344a.cc 历史API仍失效**: `/e/api/api.php?get=sixlist&year=YYYY` 返回空数据(2026-07确认)。需要从挂牌帖文本提取历史期号 - **历史数据无批量API**: 目前没有可用的批量历史开奖数据API。**替代**: 从 sol.2344a.cc 挂牌列表按"期号/发布日期"索引 - **生肖表URL会过期**: sol.2344a.cc 的生肖表页面每年更新,旧URL会404。应先访问 https://sol.2344a.cc/sssx/ 列表页,找到最新年份的文章链接。 - **中文彩票站内容多为图片**: sol.2344a.cc 等网站的详细资料(公式、规律、技巧)嵌在图片中,curl/sed只能抓到文章标题索引,无法提取实际内容。需要用 browser 工具查看页面截图。 - **⚠️ "4 框架" ≠ agent 自己造公式 (2026-07-30 实战, 用户多次拒绝)**: 用户说"4 框架"指 **reference `analysis-example-073/074/075.md` 里的真实推演流程** (v_xg.json 五行统计 + 综合挂牌解读 + 六信红字), **不是 agent 自己写 河洛/梅花/玄空/奇门 公式**。用户原话: "记得我说过不要跑频率, 没有意义, 我要说什么你才能记住"。**看到"4 框架"必跑 `python3 scripts/lottery_4frame.py`** (已固化真脚本), 不要尝试自己推公式。 - **⚠️ 特码分析不混 Qi-1 期数据 (2026-07-30 实战)**: 用户原话: "不要参考 081 期的, 没有意义, 就用挂牌分析就行了"。分析 `082 期` 时, 只用 sol.2344a.cc 挂牌 + 玄机 + 红字, **不要混 `v_xg.json Data.1-7` (那是 081 期已开号码, 不算 082 资料)**。**特码分析必跑 `python3 scripts/lottery_te_ma.py`** (已固化真脚本)。 - **⚠️ 不要在回复结尾加 "A/B/C 简单回答" 选项 (2026-07-30 用户指出)**: 这是 agent 自己加的回复模板, **不是用户让的, 也不是任何 skill 输出的**。看到用户问"这是什么技能输出的"才意识到: agent 默认加了"简单回答 X"模板, 但用户没要求。**不要在回复结尾加这种模板**, 直接回答用户问题。 - **⚠️ 出错立刻重做, 不要"分析"或"等回话" (2026-07-30 用户原话)**: 用户说"知道错了, 还要来确认, 你直接跑不行吗"。错了立刻重做, 不要 "让我再想想" / "让我检查一下" / 重新分析原因。 - **⚠️ "从哪取"只答来源一行, 不展开 (2026-07-30 实战)**: 用户原话: "我要知道你从哪里取的时间啊?" — agent 不该展开"我对比了 X / Y / Z 三个数据源才确认" 的分析。**回答"082 时间从哪取的" → 直接答 "v_xg.json `Week=周四 Day=30`", 不展开**。 - **抓取编码**: 这些站点多为UTF-8 with BOM,curl 输出可能有 `锘` 开头(BOM标记),不影响内容但需注意。 ## 参考资料 - `references/zodiac-table.md`: 2026年完整生肖五行波色对照表(号码→生肖→五行→波色→分类) - `references/draw-dates.md`: 2021-2023年搅珠日期(JS日历数据) - `references/v_xg-qi-pitfall.md`: **v_xg.json Qi 字段语义陷阱实战**(2026-07-29 发现,Qi = 下次将开期号, 不是已开) - `references/common-knowledge.md`: 生肖属性文章索引、关键概念 - `references/techniques.md`: 规律秘诀文章索引(出波、波色法等) - `references/patterns.md`: 固定规律文章索引(日期定波、杀肖、出尾等) - `references/strategies.md`: 买码建议文章索引(赢钱秘诀、七戒律等) - `references/agent-workflow-pitfalls.md`: **2026-07-30 实战累积的用户硬偏好 + agent workflow 坑** (跨 skill 通用, 必读) - 不要加 "A/B/C 简单回答" 模板 - "从哪取" 只答来源一行 - 错了立刻重做, 不分析 - 跑 4 框架/特码 必跑真脚本 - 推送用横向 markdown 表格 - cron agent 模式限制 - 4 位置保证 cron 读到硬规则 ## 定时任务 | 任务 | 时间(UTC) | 内容 | |------|-----------|------| | lottery-hot-data | 周二/四/六 11:30 (19:30北京) | 抓热数据+频率分析,推QQ | | lottery-draw-result | 周二/四/六 14:00 (22:00北京) | 抓开奖结果入库,推QQ | 开奖时间: 21:30 北京时间 → 先抓热数据分析(19:30),开奖后抓结果(22:00)。 注意: draw-result cron 跑时 7 号码已在 sol.2344a.cc 历史挂牌文里 (**挂牌日 = 开彩日, 同天发布**, 不是提前 2-3 天), agent 应该同时查 v_xg.json (当前 Qi 下期) + sol.2344a.cc 历史挂牌 (Qi-1 真已开)。