SuperSearch超强搜索 — 全平台聚合搜索分析器 v4.0
概述
一个关键词,搜遍全网。 输入任何话题,SuperSearch 瞬间并行检索百度、微信、微博、抖音、
知乎、B站、头条、小红书等 20+ 核心平台,智能去重、按相关性排序、标注内容新鲜度,
5 秒内生成一份结构化舆情报告。支持学术论文、财经分析、政策研究、技术调研等
多场景按需扩展至 160+ 数据源。搜完即看懂,不用自己翻 20 个 App。
v4.0 超强搜索版新增:
- 搜索平台从 11 个扩充,覆盖搜索引擎、新闻门户、社交、短视频、学术等全平台
- 三层搜索优先级:必选(8) → 推荐(12) → 按场景追加
- 8 大搜索场景优先级矩阵
- 封闭平台处理策略升级至 6 个平台
v3.0 新增优化:
- --max-items 参数:控制输入上限(默认 2000),防止大输入内存飙升
- 相对时间解析:从 snippet 正则提取"刚刚""X分钟前""X小时前""X天前""昨天""X月X日"等
- 中间结果持久化:自动保存 .md 报告 + .json 摘要 + .checkpoint.jsonl 断点
- 搜索阶段建议 10s 超时:避免某引擎响应慢阻塞整体
- 提升时间戳提取成功率,减轻时间因子恒为 0.5 的问题
v2.0 已有优化:
- MinHash + LSH 近似去重 → 复杂度从 O(n²) 降至 O(n)
- 分词缓存 → 相同文本不重复分词
- 扩展停用词至 200+ 词(含时间词/语气词/常见动词)
- 时间新鲜度衰减因子 → 近期内容权重更高(半衰期 7 天)
- Top 50 截断 → 相似度矩阵限制计算规模
- tqdm 进度反馈 → 大输入不再黑盒
触发场景
当用户说出以下任一意图时必须加载此技能:
- "帮我搜一下 XXX 在全平台的情况"
- "查一下 XXX 的热度/舆情"
- "关于 XXX,各个平台都在说什么"
- "聚合搜索 XXX" / "全能搜索 XXX"
- "搜索 XXX,看看抖音、小红书、微信上都有什么"
- "分析 XXX 在各大平台的相似信息"
- 任何涉及多平台、跨平台搜索/舆情/信息聚合的需求
核心工作流
Step 0: 技能安装检查
首次使用需安装依赖:
cd <skill_dir>/scripts
pip install jieba scikit-learn numpy datasketch tqdm
依赖说明:
| 依赖 | 用途 | 可选? |
|------|------|--------|
| jieba | 中文分词 | 必需 |
| scikit-learn | TF-IDF + Cosine 相似度 | 可选(降级为 Jaccard) |
| numpy | 数值计算 | 可选 |
| datasketch | MinHash + LSH 近似去重 | 强烈推荐(无则降级 O(n²)) |
| tqdm | 进度条显示 | 可选(无则打印简单日志) |
Step 1: 理解需求
向用户确认:
1. 关键词 — 要搜什么
2. 平台范围 — 全平台还是指定平台(默认全平台)
3. 时间范围 — 近期(默认7天内)还是不限
4. 输出格式 — Markdown报告(默认)还是Excel
如果用户需求已经很明确,跳过此步直接执行。
Step 2: 多引擎并行搜索(建议超时 10s)
使用 WebSearch 工具同时对以下引擎发起搜索(并行调用,节省时间)。
以下为按优先级分层的推荐搜索列表。
第一层:必选引擎(8个,每次搜索必须覆盖)
| 目标 | 搜索策略 | 优先级 | 超时建议 |
|---|---|---|---|
| 百度 | WebSearch(query="关键词") 不加站点限定 |
必选 | 10s |
| 微信公众平台 | WebSearch(query="关键词 site:mp.weixin.qq.com") 限定公众号 |
必选 | 10s |
| 微博 | WebSearch(query="关键词 site:微博域名") |
必选 | 10s |
| 今日头条 | WebSearch(query="关键词 site:头条域名") |
必选 | 10s |
| 知乎 | WebSearch(query="关键词 site:知乎域名") |
必选 | 10s |
| B站 | WebSearch(query="关键词 site:B站域名") |
必选 | 10s |
| 抖音 | WebSearch(query="关键词 抖音") 间接搜索 |
必选 | 10s |
| 小红书 | WebSearch(query="关键词 小红书") 间接搜索 |
必选 | 10s |
第二层:推荐引擎(12个,常规搜索追加)
| 目标 | 搜索策略 | 优先级 | 超时建议 |
|---|---|---|---|
| 360搜索 | WebSearch(query="关键词") 不加站点限定 |
推荐 | 10s |
| 搜狗 | WebSearch(query="关键词") 不加站点限定 |
推荐 | 10s |
| 必应中国 | WebSearch(query="关键词") 不加站点限定 |
推荐 | 10s |
| 新浪新闻 | WebSearch(query="关键词 site:新浪域名") |
推荐 | 10s |
| 腾讯新闻 | WebSearch(query="关键词 site:腾讯新闻域名") |
推荐 | 10s |
| 网易新闻 | WebSearch(query="关键词 site:网易域名") |
推荐 | 10s |
| 澎湃新闻 | WebSearch(query="关键词 site:澎湃域名") |
推荐 | 10s |
| 凤凰网 | WebSearch(query="关键词 site:凤凰网域名") |
推荐 | 10s |
| 新华网 | WebSearch(query="关键词 site:新华网域名") |
推荐 | 10s |
| 人民网 | WebSearch(query="关键词 site:人民网域名") |
推荐 | 10s |
| 快手 | WebSearch(query="关键词 快手") 间接搜索 |
推荐 | 10s |
| 豆瓣 | WebSearch(query="关键词 site:豆瓣域名") |
推荐 | 10s |
第三层:可选引擎(按场景按需追加)
| 场景 | 推荐追加平台 |
|---|---|
| 学术研究 | 知网、万方、维普、百度学术、Google Scholar |
| 财经分析 | 第一财经、财新、36氪、雪球、华尔街见闻 |
| 技术调研 | GitHub、CSDN、掘金、Stack Overflow |
| 政策法规 | 中国政府网、北大法宝、裁判文书网 |
| 国际资讯 | Google、Bing、DuckDuckGo、Yahoo |
| 医疗健康 | 丁香园、好大夫在线、PubMed |
| 百科知识 | 百度百科、维基百科、MBA智库 |
| 权威央媒 | 央视网、光明网、中国新闻网、环球网 |
| 科技媒体 | 量子位、机器之心、极客公园 |
| 自媒体 | 百家号、知乎专栏 |
并行策略: 每个搜索请求之间无依赖关系,一次性发出所有 WebSearch 调用。
推荐先发第一层(8个必选),然后追加第二层(12个推荐),根据需要再追加第三层。
超时策略: 如果某个引擎响应超过 10 秒,建议放弃该引擎的搜索结果,
继续处理其他引擎的返回,避免阻塞整体流程。
WebSearch 参数优化:
- 设置 topic: "news" 获取最新资讯
- 可组合 query_keyword_groups 覆盖多角度搜索
- 时间范围通过搜索词暗示(如"关键词 2025")
数据量控制:
- 轻量搜索(必选8个):快速概览,约1-2分钟
- 标准搜索(必选+推荐20个):常规舆情,约2-3分钟
- 深度搜索(20+按场景追加):学术/重大舆情,约3-5分钟
Step 3: 封闭平台处理(抖音、小红书、快手等)
⚠️ v4.0 策略: 以下封闭/半封闭平台直接使用 WebSearch 间接搜索,
不再尝试 WebFetch 直连(反爬率高、成功率低)。
| 封闭平台 | 封闭程度 | 推荐策略 | 兜底方案 |
|---|---|---|---|
| 抖音 | 完全封闭,反爬率极高 | WebSearch(query="关键词 抖音") |
跳过WebFetch;关注第三方抖音指数 |
| 小红书 | 完全封闭,反爬率极高 | WebSearch(query="关键词 小红书") |
部分内容可通过WebSearch获取 |
| 快手 | 部分封闭 | WebSearch(query="关键词 快手") |
部分页面可直连 |
| 微信搜一搜 | 仅微信App内 | WebSearch(query="关键词 site:mp.weixin.qq.com") |
搜狗微信搜索公开页 |
| 朋友圈 | 完全私密 | 无公开方案 | 依赖用户主动分享的公开内容 |
| 百度指数 | 需登录 | 仅做参考 | 第三方替代数据 |
经验法则: 对已知反爬的域名(抖音、小红书),直接跳过 WebFetch 改用 WebSearch,
避免浪费时间在验证码/登录页上。WebFetch 仅用于第三方聚合站(如搜狗微信搜索公开页)。
Step 4: 数据格式化
将所有搜索结果统一转为 JSONL 格式,每行一个 JSON 对象:
{"platform": "百度", "title": "...", "url": "...", "snippet": "...", "content": "", "source_engine": "WebSearch", "timestamp": "2026-06-06"}
{"platform": "微信", "title": "...", "url": "...", "snippet": "...", "content": "", "source_engine": "WebSearch", "timestamp": "2026-06-06"}
timestamp 字段用于时间新鲜度衰减计算。即使 snippet 中没有明确日期,
v3.0 引擎也会尝试从 snippet 中提取相对时间("3小时前""昨天""6月1日"等)。
保存到临时文件供分析脚本使用,例如:
.workbuddy/tmp/agg_search_关键词.jsonl
Step 5: 运行分析脚本(v3.0)
调用 scripts/aggregate_search.py 进行:
# 基本用法
python scripts/aggregate_search.py "关键词" "输入jsonl路径" "输出文件前缀"
# 限制输入条数(默认2000)
python scripts/aggregate_search.py "关键词" "输入.jsonl" "report" --max-items 1000
# 从 checkpoint 恢复
python scripts/aggregate_search.py "关键词" "data.checkpoint.jsonl" "report"
脚本输出三个文件:
- {前缀}.md — Markdown 报告
- {前缀}.json — JSON 分析摘要
- {前缀}.checkpoint.jsonl — 原始数据断点(可重新输入跑分析)
分析功能:
- 输入截断 — --max-items 控制输入上限,超限自动截断并提示
- 去重 — 默认 MinHash + LSH (O(n)),无 datasketch 降级为传统相似度矩阵 (O(n²))
- 相关性评分 — 基于关键词密度+覆盖度+子串匹配+时间新鲜度的综合评分 (0~1)
- 相对时间解析 — 从 snippet 提取"刚刚""X分钟前""X小时前""X天前""昨天""X月X日"等
- 相似度矩阵 — TF-IDF + Cosine 相似度(限制 Top 50)
- Top 10 排序 — 按相关性从高到低排列
- 平台分布统计 — 各平台结果数量 + 平均相关性/新鲜度
- 性能统计 — 耗时、去重率、分词缓存命中数
- 中间结果持久化 — 自动保存报告+摘要+断点,防止分析过程崩溃丢失数据
Step 6: 呈现报告
- 读取生成的 Markdown 报告
- 使用
open_result_view呈现给用户 - 如果用户需要导出,使用
deliver_attachments发送报告文件(.md + .json + .checkpoint.jsonl)
输出示例结构
报告包含以下章节:
1. 总体概览 — 各平台结果数 + 平均相关性 + 平均新鲜度
2. 高相关结果 Top 10 — 最相关的10条结果详情(含新鲜度标识 🆕/📅/📦)
3. 内容相似性分析 — Top N 之间的相似度矩阵 + 最相似/差异最大对
4. 平台来源分布 — 按平台统计
5. 性能统计 — 耗时、去重率、分词缓存命中、算法类型
失败备选方案
| 问题 | 方案 |
|---|---|
| 某平台搜索无结果 | 跳过该平台,注明"无有效结果" |
| 封闭平台反爬 | 跳过 WebFetch,改用 WebSearch 间接搜索("关键词 + 平台名") |
| 分析脚本依赖未安装 | 自动 pip install,如安装失败则手动用文本分析 |
| 无 datasketch | 降级为传统相似度矩阵去重,提示用户安装 |
| jieba 分词效果差 | 改用直接转写(无需分词,直接用原文做 Jaccard) |
| 数据量过大(>500条) | MinHash 自动处理;矩阵分析截断至 Top 50;--max-items 控制输入 |
| Python 环境问题 | 在系统 Python 中尝试,或直接由 WorkBuddy 做文本分析 |
| 结果太少(不足5条) | 放宽搜索范围,去除站点限定 |
| 分析过程崩溃 | 使用 checkpoint 断点恢复(再次传入 .checkpoint.jsonl) |
相似性兜底计算(无Python环境时)
如果 Python 脚本无法运行,WorkBuddy 可手动计算 Jaccard 相似度:
1. 提取两条内容的共同词汇数量 ∩
2. 提取两条内容的总词汇数量 ∪
3. 相似度 = |∩| / |∪|
4. 相关性 = 关键词在内容中出现的比例 × 0.85 + 新鲜度 × 0.15
捆绑资源说明
- scripts/aggregate_search.py — 核心分析引擎 v3.0(去重+相关性+相似度+报告生成+断点续跑)
- scripts/install_deps.bat — 一键依赖安装(含 datasketch、tqdm)