--- name: lottery-hk description: "香港六合开奖抓取与分析。数据源: sol.2344a.cc(2026-07-29 替代 sol.0051.cc) + btc.tktk.app/data/v_xg.json + tktk.tktk4.cc。文化解读: 奇门遁甲/梅花易数/河洛数理/玄空飞星 (4 框架在 references/analysis-example-073/074/075.md, 不是脚本, agent 用 example 推演)。SQLite 存数据, analytical 标注'文化娱乐参考'。硬规则: (1) 所有时间默认北京时间 UTC+8; (2) 挂牌日 = 开彩日 (sol.2344a.cc 帖子时间戳 = 实际开奖日, 同天); (3) v_xg.json Qi=下次将开期号, Nq=再下期, Week/Day=Qi 期开彩日, Data.1-7=Qi-1 期已开号码; (4) agent 推送格式必须标 (北京时间), 不写刚开/最新; (5) 用户问'从哪取'只答来源一行, 不展开。必读: references/v_xg-qi-pitfall.md (Qi 字段语义陷阱实战)。" version: 1.2.4 tags: [lottery, hk, 六合彩, analysis, sol-2344a, qdrant-memory] --- # 香港六合开奖分析 **⏰ 时区规则(硬规则)**: 所有时间默认 **北京时间(UTC+8)**。v_xg.json 的 `Week`/`Day`/`Year`/`Moon` 是 **Qi 期(下次将开)** 的开彩日。挂牌日 = 开彩日 (sol.2344a.cc 帖子时间戳 = 实际开奖日, 同天)。任何"周几"都指北京时间;写 QQ 推送必须带"北京时间"字样或 +8 时区。 **⏰ 沟通风格**: 用户要"直接说怎么取的,不要分析/解释"。回答"081 是周几"时,直接说"来源是 v_xg.json Week=周四" — 不分析"为什么不是周二"。 **📦 4 框架 (奇门/梅花/河洛/玄空) 的位置**: 它们是 **reference 文档**(`analysis-example-073/074/075.md`),**不是** `lottery.py` 的子命令。`lottery.py` 只跑频率统计。Cron 推送 4 框架分析时,**agent 手动从 reference 推演**(或用 `lottery.py analyze` 给数字,然后按 example 的方法写结论)。 从天空彩票抓取香港六合开奖结果,提供数据分析。**数据存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 [类别> # 列出图片链接 ``` ## 生肖映射(网站实际映射,已验证) 网站的生肖表和标准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 框架分析**: 是 reference 文档 (`analysis-example-073/074/075.md`),不是脚本。Cron 推送时**agent 手动按 example 推演**,不要等一个不存在的 `python3 lottery.py qimen` 命令。 ### 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/30 周四下次将开), Data.1-7 是 080 期(7/28 周二已开)号码 - 挂牌日 ≠ 开奖日: sol.2344a.cc 挂牌比实际开奖早 2-3 天 - **取真刚开期号 + 号码**: 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 工具查看页面截图。 - **抓取编码**: 这些站点多为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`: 买码建议文章索引(赢钱秘诀、七戒律等) ## 定时任务 | 任务 | 时间(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 真已开)。