项目索引
PROJECT / 007进行中
WBHOT
微博热搜与话题主持人的长时序数据采集与可视化分析系统
- 年份
- 2026
- 状态
- 进行中
- 分类
- Python / Web / 工具
- 更新
- 2026.09.30
- Python
- Flask
- ECharts
- Weibo API
- Time Series

Overview
WBHOT 是一套长期运行的微博热搜数据采集与分析系统。它调用微博官方移动端接口,按固定间隔抓取热搜榜单、话题元信息与帖子明细,落盘为不可回溯的时间序列快照,并提供远程管理面板与论文级可视化页面。
项目为一项混合媒介生态(hybrid media ecosystem)下的议程设置实证研究提供数据支撑:研究关心热搜词条的实际发起者与推动者,以及平台机制、认证媒体与个体认知三层各自的议程权重。
Problem
微博热搜只呈现"此刻在榜"的词条,历史榜单无法回溯。而"议程领导权"这类问题恰恰依赖长时段数据,采集起步越晚,可用的时间序列越短。
接口层面有三个约束:
- 榜单接口只给出排名与热度,不提供任何话题归属信息;
- 主持人、媒体发布数、阅读量与讨论量藏在话题详情接口中,需要逐条二次请求;
- 匿名请求被平台直接拒绝——热搜返回 432、话题返回
ok:-100,访客 cookie 流程与 TLS 指纹模拟均无效,必须携带登录态。
三点叠加决定了:这是一个必须"尽早开始、长期挂机"的数据工程问题,而不是一次性的抓取脚本。
Architecture
Weibo Mobile API
↓
spider.py (热搜榜 + 话题详情 + 主持人解析)
↓
JSON 快照 (每轮一个文件,约 23KB)
↓
web.py (Flask 管理面板 + 可视化聚合接口)
↓
ECharts 可视化 / 数据透视表 / CSV 导出
Features
- 零成本采集:直接调用官方移动端接口,替代按结果计费的第三方抓取服务
- 主持人解析:从话题头卡提取主持人、媒体发布数、阅读量与讨论量,作为"议程领导权"的直接可观测指标
- 长时序快照:按固定间隔落盘,每轮一个 JSON 文件,支持长期无人值守运行
- 远程管理面板:启停任务、调整参数、在线更新登录态、查看日志、打包导出数据
- 失效告警:登录态过期时推送 iOS 通知,避免采集静默断档
- 论文级可视化:折线 / 条形 / 饼图 / 散点 / 热力五类图表,外加数据透视表,支持筛选联动与 PNG / SVG / CSV 导出
Data
采集情况(截至 2026-09-29):
连续采集 2026-09-15 23:31:55 ~ 2026-09-29 23:15:27(14 天)
快照文件 364 个,跳过损坏 0
清洗后记录 18,200 条(热搜主榜口径)
Lessons
几处踩坑后固化的设计:
- 榜单接口一次返回 4 个榜单(主榜 / 实时上升 / 文娱 / 置顶要闻),同一词条可跨榜出现且热度口径不同——这不是重复数据,垂类榜共现本身即编码变量;
- 无主持人的词条没有对应头卡,占比约四成,属真实现象而非解析缺陷,被保留为有效编码类别;
- 数据清洗只保留一处实现,图表与透视表共用,避免同一筛选条件下算出两个数字;
- 透视表合计按行、列各自独立聚合:可加指标(记录数)才求和,去重指标与峰值指标各自按本口径取值。
Roadmap
- 议题类别自动标注,支撑三层议程占比编码
- 帖子明细批量采集,供主题建模与微观层分析
- 快照月度归档压缩
- 主持人跨词条网络分析
系统目前为私有部署,长期挂机采集中。
更新日志
- 2026.09.15
- 跑通微博官方移动端接口,解析热搜榜单与话题主持人字段
- 首轮快照落盘,开始固定间隔采集
- 2026.09.16
- 部署至阿里云 ECS,systemd 常驻 + 反向代理,开机自启
- Web 管理面板与登录态过期推送上线
- 2026.09.24
- 新增数据透视表:行列交叉统计与 CSV 导出
- 迁移为独立站点:自有域名、独立证书与配置,与同机其它项目解除配置耦合
- 2026.09.29
- 连续采集满 14 天:364 个快照、18,200 条清洗后记录
相关项目