- Add parser_config TEXT field to hotspot_source (JSON: parser/item_path/field_map/builtin_name) - Pluggable extractors: json_path, css, regex, rss, builtin - 11 builtin platform parsers with real API endpoints: weibo_hot zhihu_hot baidu_hot toutiao_hot bilibili_hot douyin_hot 36kr_hot github_trending hackernews v2ex_hot rsshub - Each source reads its own parser_config — different sources can use different extraction rules even if same type - Updated index.ui with builtin parser reference
热点雷达 (Hotspot Radar)
Sage 框架模块 — 指定来源的热点聚合分析平台,支持动态添加来源。
功能
- 多类型来源:API / RSS / Browser (HTML抓取) / Crawler (递归爬虫)
- 调度管理:cron 定时 + 间隔模式,retry 策略
- 抓取日志:每次执行一条审计记录(耗时/成功数/错误/HTTP状态码)
- 热点分类:5级状态 — emerging → rising → hot → cooling → expired
- 五维分析:时效 / 热度 / 内容 / 传播 / 受众,每维度 0-100 分
- 预警规则:热度阈值 / 加速度 / 情感触发,email/webhook/sms 通知
目录结构
hotspot/
├── json/ # Sage 表定义(放入 Sage 的 json/ 目录)
│ ├── hotspot_source.json
│ ├── hotspot_schedule.json
│ ├── hotspot_fetch_log.json
│ ├── hotspot_item.json
│ ├── hotspot_analysis.json
│ └── hotspot_alert.json
├── wwwroot/hotspot/ # Web UI + 后端端点(放入 Sage 的 wwwroot/hotspot/)
│ ├── index.ui # 仪表盘(7 统计卡片 + 6 标签页)
│ ├── stats.dspy # 统计 API
│ ├── fetch_now.dspy # 抓取引擎(3种模式)
│ └── analyze.dspy # 分析引擎(5维 + 状态分类)
├── ddl/mysql.sql # 建表 SQL
├── install/ # 安装片段
│ ├── load_path_append.txt # 追加到 load_path.py
│ └── menu_append.json # 追加到 menu.ui
└── README.md
安装
1. 复制文件到 Sage 部署目录
SAGE_ROOT=/path/to/sage
cp json/hotspot_*.json $SAGE_ROOT/json/
cp -r wwwroot/hotspot $SAGE_ROOT/wwwroot/
2. 建表
mysql -u user -p sage < ddl/mysql.sql
3. 注册权限
在 load_path.py 的 """ 结束符前追加 install/load_path_append.txt 的内容,然后运行:
cd $SAGE_ROOT && python load_path.py
4. 添加菜单
在 wwwroot/menu.ui 的 items 数组中追加 install/menu_append.json 的内容。
5. 重启 Sage
访问 /hotspot 即可看到仪表盘。
使用流程
- 来源管理 标签页 → 添加来源(选择 type: api/rss/browser/crawler)
- 调度配置 标签页 → 为来源配置抓取频率
- 仪表盘点击「立即抓取全部来源」
- 抓取日志 标签页 → 检查执行结果
- 点击「执行分析」→ 自动计算五维评分和状态分类
- 热点条目 标签页 → 按状态筛选浏览
- 预警规则 标签页 → 设置自动告警
来源类型说明
| type | 适用场景 | 配置要点 |
|---|---|---|
rss |
RSS/Atom feed | url 指向 feed 地址 |
api |
REST API | url + api_key + headers + fetch_method |
browser |
网页热点列表 | url + browser_wait_selector |
crawler |
递归抓取 | url + crawler_depth + crawler_rules |
依赖
- Sage >= 0.0.1
- aiohttp (Python)
- MySQL / MariaDB
Description
Languages
Python
100%