市场热点雷达(Market Hotspot Radar)
这个 skill 解决什么
http://39.96.70.182/ 是一份每日 15:10 左右更新的单页看板,用「三层筛选」框架回答两个问题:
- 短线层(情绪 / 涨停):今天该不该追?
- 波段层(趋势 / 资金):哪些趋势还没走完?
页面是纯静态 HTML(nginx 托管),没有 API。本 skill 用解析脚本把它转成结构化摘要,避免每次人工读页面。
关键约束(先看这一条)
该站点只有明文 HTTP,没有 TLS。 不要用
WebFetch或任何会自动把http://升级为https://的工具——升级后必然握手失败(fetch failed/SSLError)。 唯一稳定的抓法是用curl或本 skill 的脚本走明文 HTTP。
其他已探明事实:
| 事项 | 结论 |
|---|---|
| 可用路径 | 只有 / 和 /index.html |
| .json .py .md .git package.json | 一律 nginx 403,拿不到源码,只能解析 HTML |
| 更新节奏 | 每日收盘后,页面自身标「快照 HH:MM · 生成于 ...」 |
| 编码 | utf-8 |
| 依赖 | 脚本仅用 Python 标准库,无需 pip 安装 |
执行流程
第 1 步:抓取 + 解析(默认出 Markdown 摘要)
python3 /Users/mac/.workbuddy/skills/market-hotspot-radar/scripts/fetch_radar.py
常用变体:
# 输出结构化 JSON(便于二次加工 / 接入别的流程)
python3 .../fetch_radar.py --json
# 同时落盘 raw.html + radar.json + radar.md 到指定目录
python3 .../fetch_radar.py --out ./radar
# 换了地址或需要更长超时
python3 .../fetch_radar.py --url http://x.x.x.x/ --timeout 30
脚本退出码:0 成功;1 抓取失败(stderr 会提示是否误用了 HTTPS)。
第 2 步:把结果给用户
- 想看原版版式(含四象限散点图)→ 用
present_files传http://39.96.70.182/,会在内置浏览器面板打开实时页面。 - 想要数据/摘要 → 直接用脚本输出的 Markdown 或 JSON 回复,不必再打开网页。
- 两者可以同时做:先给摘要,再附原页链接。
第 3 步:如实标注时效
页面是快照。若抓取时点在 15:00 前,涨停家数与封板资金仍会变动,回复中必须说明这是盘中快照。
页面结构(输出会覆盖这些区块)
- 头部:两层状态卡(短线层 / 波段层各自的 tier 与延续率)、市场状态标签、结论一句话、覆盖率统计(概念池 / L1 通过率 / A、B 分分界 / 均线可用)
- ① 当下主线:近 5 日累计榜(表格,12 行左右)——回答「主线是什么」
- ② 短线层观察:当日不建议追的方向,仅跟踪不构成入场理由
- ③ 短线层榜单:分「共振 · 主升」与「纯短线」两列,带 A/B 分、同族提示、风险提示
- ④ 波段层:按趋势年龄与阶段分三组——可跟踪 / 持有中 / 不追
- 观察池:接近达标但差一点,每条标明「差在哪」
- 四象限分布:A 轴(爆发力)× B 轴(持续力),标注各象限数量
- 口径与数据说明:L1/L2/L3、A/B 轴定义、排除项、同族判定、数据源、待补充项
字段级 DOM 结构、各轴权重与口径细节见 references/page-structure.md(页面改版时按它修解析器)。
必须遵守的表达纪律
- 不做投资建议,只陈述页面给出的事实与口径。
- 页面明确写「观察日 / 不建议追」时,不得转述成入场建议。短线层与波段层结论可以相反,必须分开表述。
- 页面标「均线待补充」的概念,是数据源缺匹配,不要估算填充,原样保留标注。
- 页面只有一个数据源口径(东方财富 + 同花顺)。若用户问的是别的市场或别的口径,说明本 skill 不覆盖。
故障排查
| 现象 | 原因与处理 |
|---|---|
| fetch failed / SSLError | 用了 HTTPS。改回 http://,或用本脚本 |
| 403 Forbidden | 请求了被 nginx 拦截的路径(.json/.py/.md/.git)。只有 / 可访问 |
| 解析结果为空(stderr 有 WARN) | 页面结构已改版。对照 references/page-structure.md 更新 scripts/fetch_radar.py 里的 class 选择器 |
| 抓到的日期不是今天 | 站点尚未更新当日快照,或读到缓存。原始 HTML 已设 Cache-Control: no-store,一般是前者 |
微信扫一扫