status: login_required,在最终交付报告中醒目提示人工介入,其他数据源正常采集不受影响。config/platforms.yaml、references/data-sources.md 以及 collector 代码,并在报告中说明新增源名称、URL、解析方式、适用平台。cd ~/.qclaw/workspace-agent-43c8c1ee && \
HOTSPOT_CHROME_BRIDGE=1 SKIP_DEGRADED_CHECK=1 python3 scripts/main.py
输出文件:queue/hot_topics_YYYYMMDD.json
详细采集策略见 references/data-sources.md。
| 平台 | 主路径 | 备用路径 | image_urls | 状态 |
|---|---|---|---|---|
| ------ | -------- | ---------- | ------------ | ------ |
| 微博 weibo | api.zxki.cn/api/jhrs?type=weibo | 官方 AJAX API weibo.com/ajax/side/hotSearch | ❌ 无图 | ok |
| B站 bilibili | api.bilibili.com/x/web-interface/popular | — | ✅ pic 字段 100% | ok |
| 百度 baidu | top.baidu.com/board?tab=realtime | — | ✅ HTML提取 ~84% | ok |
| 抖音 douyin | api.zxki.cn/api/jhrs?type=douyin | 官方API → tophub兜底 douyin.com/aweme/v1/web/hot/search/list/ | ✅ 官方API word_cover 100% | ok |
| 头条 toutiao | toutiao.com/hot-event/hot-board/ | tophub | ✅ Image.url 100% | ok |
| 小红书 xiaohongshu | Chrome桥接 xiaohongshu_hot | tophub | ✅ CDP xhscdn 图片 | ok |
| YouTube youtube | Chrome桥接(3次重试) | Kworb 兜底 | ✅ CDP缩略图→5张多分辨率 | ok |
| Twitter twitter | Chrome桥接 | —(xtrends已废弃) | ❌ 纯文本页无图 | ok |
| TikTok tiktok | Chrome桥接(仅视频hashtag) | — | ✅ CDP tiktokcdn.com | ok |
Chrome桥接:wait=12s,limit=30,全局串行锁。HOTSPOT_CHROME_BRIDGE=0 可关闭全部Chrome桥接。
| 类别 | 覆盖率 | 说明 |
|---|---|---|
| ------ | -------- | ------ |
| bilibili / douyin / tiktok / 小红书 | 2-3张 | bilibili封面+首帧,抖音官方API多尺寸,CDP多图 |
| baidu | ~84% | 部分热搜无配图属正常 |
| youtube | 1-5张 | CDP缩略图+多分辨率构造(maxres/hq/sd/mq/default) |
| weibo / twitter | 0% | API 无图字段 / 数据源为纯文本页 |
| douyin | 3张(官方API) / 0%(tophub兜底) | zxki失败后优先走官方API(3尺寸配图),tophub仅兜底 |
详细算法说明见 references/algorithm.md。
Score = (0.35×HGR_norm + 0.25×CPRI/100 + 0.15×置信度 + 0.15×content_fit + 0.10×timing_match) × 100 × 文化适配
| 指标 | 权重 | 说明 |
|---|---|---|
| ------ | ------ | ------ |
| HGR(热度增速) | 35% | (H_t − H_{t−1}) / H_{t−1} × 100,HGR>200%→红色告警 |
| CPRI(跨平台共振) | 25% | 平台数×15 + (51-排名) + 时效加成,≥60→高共振 |
| 置信度 | 15% | 数据源可信度 |
| 内容适配度 | 15% | 跨平台数+排名综合 |
| 时机匹配 | 10% | 成长期=1.0,其他=0.5 |
详细流程见 references/pipeline.md。
交付前检查:
login_required 状态的数据源(如有,必须已通知人工确认)chrome_bridge.py 实现了双重回退机制,MAX_IMAGES_PER_TOPIC=10 控制每个话题最多配图数:
图片分配策略:
_extract_page_image_urls):在 Chrome 标签页执行 JS 提取 DOM 图片_extract_image_urls_via_cdp):通过 Chrome DevTools Protocol 执行 JS--remote-debugging-port=9222 启动:open -a 'Google Chrome' --args --remote-debugging-port=9222_check_cdp_available),不可用时优雅降级跳过图片提取/Users/kelly/Library/Application Support/QClaw/openclaw/config/bin/node/Users/kelly/Library/Application Support/QClaw/npm-global/lib/node_modules各平台 CDP CSS 选择器:
ytd-rich-item-renderer img[src*="vi/"]img[src*="tiktokcdn.com"]img[src="xhscdn"], img[src="sns-webpic-qc"]img[src*="pbs.twimg.com"]{
"run_id": "uuid",
"run_at": "ISO8601",
"domestic_top2": [
{
"title": "话题标题",
"source_platform": "baidu",
"heat_score": 123456,
"image_urls": ["https://...", "https://..."], // 1-10张配图
"score": 55.27,
"content_type": "资讯",
"tone": "理性客观",
"audience": "泛大众",
"suggested_angles": ["事件梳理", "深度分析"],
"content_description": "..."
}
],
"international_top2": [...],
"alerts": {"red": [], "yellow": []},
"source_health": {"weibo": "ok", ...},
"stats": {"raw_count": 352, "normalized_count": 324, "scored_count": 324}
}
~/.qclaw/workspace-agent-43c8c1ee/
├── scripts/
│ ├── main.py # 主流水线(含关键词过滤 + 7天文件清理)
│ ├── collector.py # 13个数据源采集(含 image_urls + fallback)
│ ├── chrome_bridge.py # Chrome桥接 + CDP图片提取
│ ├── predictor.py # 五维评分算法
│ ├── normalizer.py # 数据标准化(含去重 + image_urls 透传)
│ └── quality_check.py # 质量检查(degraded阈值0.5)
├── config/
│ ├── platforms.yaml # 平台配置
│ ├── thresholds.yaml # 算法阈值
│ └── frequency_words.txt # 关键词规则
├── queue/ # 交付JSON
├── data/ # 中间数据(7天自动清理)
└── memory/ # 运行记录
openclaw cron list / edit --enabled false / run cd ~/.qclaw/workspace-agent-43c8c1ee && python3 scripts/main.pyHOTSPOT_CHROME_BRIDGE=0 python3 scripts/main.pySKIP_DEGRADED_CHECK=1 python3 scripts/main.pypython3 scripts/chrome_bridge.py --platform youtube_trending --wait 7 --limit 12 --pretty共 5 个版本