一、系统架构设计
核心模块
数据源层 → 抓取层 → 存储层 → 分析层 → 展示层推荐两种实现路径:
- 轻量快速版:使用现有聚合API + 自动化工具(适合非技术人员)
- 自建系统版:Python爬虫 + 数据库 + 可视化(适合有技术背景)
二、数据源选择(覆盖12+平台)
主流平台热搜源
平台 抓取方式 API/URL 更新频率
百度热搜 网页/API top.baidu.com/board?tab=realtime 分钟级 微博热搜 网页/API s.weibo.com/top/summary 分钟级 小红书 网页/API discovery页面 小时级 知乎热榜 网页/API www.zhihu.com/hot 小时级 抖音热点 第三方API 韩小韩API等 小时级 B站热搜 网页/API search.bilibili.com 小时级 微信读书 网页 热搜榜单 日级
36氪/虎嗅 网页 热门文章榜 小时级
推荐:使用韩小韩API(Api.Vvhan.Com/hotlist)或今日热榜一站式获取多平台数据,减少维护成本
三、抓取策略(每小时执行)
方案A:无代码自动化(适合快速落地)
- 使用工具:浏览器自动化(如Playwright)+ 定时任务
- 流程:
- 每小时访问聚合平台(如今日热榜)
- 截图或导出前10条数据
- 通过飞书/钉钉Webhook推送
- 优点:无需编程,30分钟搭建完成
- 缺点:灵活性较低
方案B:Python爬虫(推荐)
1. 核心逻辑示例
import requests, schedule, pandas as pd
from datetime import datetime
def fetch_hotsearch(platform):
apis = {
'baidu': 'https://api.vvhan.com/api/hotlist?type=baiduBD',
'weibo': 'https://api.vvhan.com/api/hotlist?type=wbHot',
'xiaohongshu': 'https://...'
}
response = requests.get(apis[platform], headers={'User-Agent': '...'})
return response.json()['data'][:10] # 取前10条
def job():
all_data = []
for platform in ['baidu', 'weibo', 'xiaohongshu']:
data = fetch_hotsearch(platform)
for item in data:
all_data.append({
'platform': platform,
'rank': item['index'],
'title': item['title'],
'heat': item['hotValue'],
'timestamp': datetime.now()
})
1. 存入数据库或CSV
pd.DataFrame(all_data).to_csv(f"hotsearch_{datetime.now().date()}.csv", mode='a')
schedule.every().hour.at(":00").do(job) # 每小时整点执行技术要点:
- 伪装User-Agent避免反爬
- 设置请求间隔(≥1秒)遵守爬虫礼仪
- 使用文件锁机制防重复运行
四、数据存储设计
推荐:SQLite + CSV双存储
-- 数据表结构
CREATE TABLE hotsearch (
id INTEGER PRIMARY KEY AUTOINCREMENT,
platform TEXT, -- 平台名称
rank INTEGER, -- 排名
title TEXT, -- 热搜标题
heat_value INTEGER, -- 热度值
url TEXT, -- 链接
create_time TIMESTAMP,
is_ad BOOLEAN -- 是否广告[^12^]
)
CREATE TABLE cross_platform_topics (
id INTEGER PRIMARY KEY,
topic TEXT, -- 跨平台话题
platforms TEXT, -- 出现的平台列表
first_appear_time TIMESTAMP,
peak_heat INTEGER -- 峰值热度
)归档策略:按天生成CSV文件,保留30天本地数据
五、信息整理与分析
- 实时处理(每小时)
- 去重标记:识别跨平台相同话题(文本相似度≥80%)
- 热度标准化:统一不同平台的热度分值(如映射到0-100)
- 广告过滤:剔除标注为”商”的内容
- 智能分析(每日)
- 趋势识别:对比昨日数据,找出新晋热点和持续热点
- 关键词提取:使用jieba/NLP提取核心话题词
- 情感分析:对标题进行舆情倾向判断(正面/中性/负面)
- AI摘要:调用ChatGPT/豆包生成热点事件背景
- 交叉验证机制 当同一话题在≥3个平台同时上榜时,标记为全网热点,提高信息可信度
六、展示与推送
推送方式(三选一或多选)
方式 实现方案 适用场景
飞书/钉钉 Webhook推送Markdown卡片 工作场景,实时提醒
邮件日报 Python smtplib定时发送 个人查看,存档方便
Web仪表盘 Streamlit/FastAPI搭建 可视化分析,数据探索
浏览器扩展 使用现成扩展如”热搜聚合” 快速查看,无需开发
推荐推送内容格式
【12:00 热搜汇总】全网热点3个 | 平台差异7个
🔥 全网热点:
1. 人工智能新突破 (百度#1 微博#2 知乎#3)
热度:95 → 持续2天 | 情感:中性
📊 平台特色:
微博:明星事件#1、社会新闻#2
小红书:生活方式#1、美妆教程#2
百度:时政新闻#1、科技资讯#2七、扩展性规划
第一阶段(1周内):MVP落地
- 实现3个核心平台(百度、微博、小红书)
- 采用无代码方案或简单Python脚本
- 推送方式:飞书Webhook
第二阶段(1个月内):功能完善
- 扩展至8-10个平台
- 搭建数据库和Web看板
- 增加AI分析模块
第三阶段(持续):优化升级
- 自研热搜预测模型
- 接入更多小众平台(如即刻、豆瓣)
- 支持自定义关键词监控
扩展平台优先级
- 高:知乎、抖音、B站(用户重合度高)
- 中:36氪、虎嗅、澎湃(资讯类)
- 低:豆瓣、即刻(兴趣社区)
八、注意事项
合规性:
- 遵守各平台robots.txt,控制请求频率
- 个人使用一般无碍,商业用途需申请授权
- 注意小红书等平台反爬策略
成本控制:
- 使用免费API(如韩小韩API)初期无需服务器成本
- 自托管方案:树莓派或云服务器(每月<50元)
数据质量:
- 不同平台热度算法差异大,避免直接横向比较数值
- 关注
desc_extr等原始热度字段,识别真实热度 - 建立白名单过滤无关信息(如游戏推广)
技术选型建议:
- 新手:直接使用”热搜王”等现成项目 或浏览器扩展
- 进阶:基于TrendRadar开源项目二次开发
- 专家:自建微服务架构(爬虫+API+前端分离)
九、推荐快速启动方案
最快路径(30分钟上线)
- 安装”热搜聚合”浏览器扩展 → 手动每小时查看
- 或:使用今日热榜网站 + 定时刷新插件
- 或:部署TrendRadar Docker版,支持11个平台
平衡路径(1天开发) fork 热搜王项目,修改Webhook地址,即可实现微博热搜推送,再逐步扩展其他平台。
这个方案的核心价值在于:用自动化帮你过滤噪音,通过跨平台验证提升信息质量,最终形成个性化的” worldview”仪表盘。建议从最小可行版本开始,根据实际需求逐步迭代。