微博热点数据分析与可视化系统
Flask 微博热搜分析平台:自动爬取热搜与评论、jieba 分词清洗、SnowNLP 情感分类,ECharts 热度排行/情感饼图/词云可视化,SQLite 存储与角色权限,适合 Python 数据分析毕业设计。
项目封面

项目概览
系统提供数据采集(多 API 源切换)、HTML 过滤与停用词处理、批量情感分析(正面/中性/负面)、原始与处理后数据管理及 CSV 导出。Bootstrap5+SweetAlert2 响应式界面,管理员与普通用户 Session 鉴权,pyecharts 生成交互图表,适合 Python 爬虫、文本情感分析与数据可视化类毕业设计。
项目说明
微博热点数据分析与可视化系统
一个基于 Python Flask 的微博热点数据分析平台,提供数据采集、清洗、情感分析和可视化的完整解决方案。
项目简介
本系统是一个面向微博热搜数据的智能分析平台,通过自动化的数据处理流程,帮助用户快速了解微博热点话题的传播趋势和公众情感倾向。系统采用前后端分离的架构设计,提供直观的 Web 界面和强大的数据分析能力。
核心价值:
- 实时追踪微博热搜榜动态
- 多维度数据可视化展示
- 智能情感分析与分类
- 完整的数据存储与管理
- 安全的用户权限控制
核心功能
1. 数据采集模块
- 自动爬取微博热搜榜实时数据(PC 端接口)
- 采集热搜话题相关评论内容(PC 端搜索与评论接口)
- 支持多 API 源自动切换与失败重试
- 通过 weibo_auth.curl 粘贴浏览器 curl,程序自动解析 Cookie 与请求头
- 采集过程带请求间隔、话题间隔、冷却时间等节流控制
- 评论采集失败时使用演示数据兜底,保证后续流程可演示
- 数据双重备份(数据库 + CSV 文件)
2. 数据清洗模块
- 去除重复数据和无效内容
- HTML 标签和特殊字符过滤
- 中文分词与停用词处理
- 文本标准化与格式统一
3. 情感分析模块
- 基于 SnowNLP 的中文情感识别
- 自动分类:正面、中性、负面
- 情感得分与置信度计算
- 批量处理与结果存储
4. 数据可视化模块
- 热度排行柱状图:展示 Top 15 热搜话题热度对比
- 情感分析饼图:直观呈现情感分布占比
- 情感趋势线图:按时间展示情感变化趋势
- 关键词云图:提取高频关键词并可视化
- 基于 ECharts 的交互式图表
5. 数据管理模块
- 原始数据统计与查看
- 处理结果数据管理
- CSV 格式数据导出
- 数据库信息监控
6. 用户管理模块
- 用户注册与登录认证
- 角色权限控制(管理员/普通用户)
- 管理员专属操作权限
- 用户信息管理
系统特色
智能化数据处理
- 一键式操作流程:从数据采集到可视化,全程自动化
- 智能错误处理:多 API 源备用,自动重试机制
- 增量数据更新:支持持续追踪和数据累积
- PC 端统一采集:热搜与评论均走 weibo.com PC 接口
- 爬虫节流保护:控制请求频率,避免过度抓取
可视化分析
- 多维度图表:柱状图、饼图、趋势图、词云图多角度展示
- 实时数据刷新:支持动态更新和分页浏览
- 交互式界面:基于 ECharts 的丰富交互体验
权限管理
- 角色分离:管理员和普通用户权限隔离
- 操作保护:敏感操作仅管理员可见
- 安全认证:Session 会话管理和登录验证
响应式设计
- 自适应布局:支持桌面端和移动端访问
- 现代化 UI:基于 Bootstrap 5 的美观界面
- 流畅交互:SweetAlert2 弹窗提示和加载动画
技术架构
后端技术栈
| 技术 | 版本 | 用途 |
|---|---|---|
| Python | 3.12 | 核心开发语言 |
| Flask | 最新 | Web 框架 |
| SQLite3 | 内置 | 数据库 |
| Pandas | 最新 | 数据处理 |
| jieba | 最新 | 中文分词 |
| SnowNLP | 最新 | 情感分析 |
| pyecharts | 最新 | 图表生成 |
| Requests | 最新 | HTTP 请求 |
前端技术栈
| 技术 | 版本 | 用途 |
|---|---|---|
| Bootstrap | 5.3.0 | UI 框架 |
| Font Awesome | 6.0.0 | 图标库 |
| SweetAlert2 | 11.x | 弹窗组件 |
| ECharts | 6.x | 图表渲染 |
架构设计
┌─────────────────────────────────────────────────────────┐
│ Web 浏览器 │
│ (Bootstrap + ECharts + SweetAlert2) │
└────────────────────┬────────────────────────────────────┘
│ HTTP/HTTPS
┌────────────────────▼────────────────────────────────────┐
│ Flask 应用层 │
│ ┌──────────┬──────────┬──────────┬──────────────────┐ │
│ │ 路由控制 │ 用户认证 │ API 接口 │ 模板渲染 │ │
│ └──────────┴──────────┴──────────┴──────────────────┘ │
└────────────────────┬────────────────────────────────────┘
│
┌────────────────────▼────────────────────────────────────┐
│ 业务逻辑层 │
│ ┌──────────┬──────────┬──────────┬──────────────────┐ │
│ │ 数据采集 │ 数据清洗 │ 情感分析 │ 数据可视化 │ │
│ └──────────┴──────────┴──────────┴──────────────────┘ │
└────────────────────┬────────────────────────────────────┘
│
┌────────────────────▼────────────────────────────────────┐
│ 数据存储层 │
│ ┌──────────────────────┬──────────────────────────┐ │
│ │ SQLite 数据库 │ CSV 文件备份 │ │
│ └──────────────────────┴──────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
数据流程
微博 PC 端 API
│
├─→ [数据采集] ─→ 原始数据 (weibo_hot, weibo_comments)
│ │
│ ├─→ CSV 备份 (data/raw/)
│ │
│ ▼
│ [数据清洗] ─→ 清洗数据 (clean_comments)
│ │
│ ├─→ CSV 备份 (data/clean/)
│ │
│ ▼
│ [情感分析] ─→ 分析结果 (sentiment_result)
│ │
│ ▼
│ [数据可视化] ─→ 图表文件 (static/visual/)
│ │
│ ▼
└─────────────→ [Web 展示] ─→ 用户界面
数据库设计
核心数据表
1. weibo_hot(热搜数据表)
| 字段 | 类型 | 说明 |
|---|---|---|
| rank | INTEGER | 热搜排名 |
| title | TEXT | 热搜标题 |
| hot_value | INTEGER | 热度数值 |
| link | TEXT | 热搜链接 |
| create_time | TEXT | 采集时间 |
2. weibo_comments(评论数据表)
| 字段 | 类型 | 说明 |
|---|---|---|
| title | TEXT | 关联热搜标题 |
| content | TEXT | 评论内容 |
| create_time | TEXT | 采集时间 |
3. clean_comments(清洗数据表)
| 字段 | 类型 | 说明 |
|---|---|---|
| content | TEXT | 原始内容 |
| clean_content | TEXT | 清洗后内容 |
4. sentiment_result(情感分析表)
| 字段 | 类型 | 说明 |
|---|---|---|
| clean_content | TEXT | 清洗后内容 |
| sentiment | TEXT | 情感分类(正面/中性/负面) |
| sentiment_score | REAL | 情感得分 |
5. users(用户表)
| 字段 | 类型 | 说明 |
|---|---|---|
| id | INTEGER | 用户 ID(主键) |
| username | TEXT | 用户名(唯一) |
| password | TEXT | 密码 |
| role | TEXT | 角色(admin/user) |
应用场景
舆情监控
- 实时追踪社会热点话题
- 分析公众情感倾向
- 预警负面舆情风险
市场研究
- 了解消费者关注焦点
- 分析品牌口碑和声量
- 发现市场趋势和机会
学术研究
- 社交媒体传播研究
- 情感分析算法验证
- 数据挖掘实践教学
内容运营
- 发现热门话题和关键词
- 优化内容创作方向
- 提升用户参与度
安全特性
- 密码加密存储:用户密码安全保护
- Session 会话管理:防止未授权访问
- 角色权限控制:操作权限细粒度管理
- SQL 注入防护:参数化查询防止注入攻击
- XSS 防护:模板自动转义防止脚本注入
- 认证隔离:weibo_auth.curl 含登录凭证,已加入 .gitignore,清理脚本仅清空内容不删文件
性能优化
- 分页加载:大数据量分页展示,提升响应速度
- 数据缓存:减少重复查询,提高访问效率
- 异步处理:耗时操作异步执行,避免阻塞
- 索引优化:数据库索引加速查询
- 静态资源 CDN:前端资源 CDN 加速加载
- 爬虫节流:可配置请求间隔与采集冷却,降低接口压力
目录结构
python-weibo-fenxi/
├── .gitignore # Git 忽略规则(venv、缓存、weibo_auth.curl 等)
├── app.py # Flask 主程序入口
├── app-test.py # 独立测试用采集脚本(非主流程)
├── config.py # 配置文件(数据库、认证、爬虫节流参数)
├── requirements.txt # Python 依赖列表
├── venv/ # Python 虚拟环境(setup 后生成,clear 可清理)
├── weibo_hot.db # SQLite 数据库(运行后自动生成)
├── weibo_auth.curl # PC 端 curl 认证(用户粘贴,clear 仅清空内容)
├── weibo_auth.curl.example # curl 配置模板与填写说明
├── README.md # 项目说明(功能与目录)
│
├── modules/ # 核心业务模块
│ ├── __init__.py
│ ├── crawler.py # 数据采集(PC 端热搜与评论、节流与兜底)
│ ├── curl_parser.py # 解析 weibo_auth.curl 提取 Cookie 与请求头
│ ├── clean.py # 数据清洗
│ ├── analyze.py # 情感分析
│ ├── visualize.py # 图表生成
│ └── database.py # 数据库初始化与连接
│
├── user/ # 用户模块
│ ├── __init__.py
│ ├── auth.py # 登录 / 注册 / 用户查询
│ └── models.py # 用户角色查询
│
├── templates/ # Jinja2 HTML 模板
│ ├── login.html # 登录页
│ ├── register.html # 注册页
│ ├── index.html # 首页
│ └── admin/
│ ├── dashboard.html # 数据分析仪表板
│ ├── data.html # 数据管理页
│ └── user.html # 用户管理页
│
├── static/ # 静态资源
│ ├── css/
│ │ └── style.css
│ ├── images/
│ │ └── .gitkeep # 目录占位
│ └── visual/ # 生成的图表 HTML 文件
│ ├── .gitkeep # 目录占位
│ ├── bar.html # 热度排行柱状图
│ ├── pie.html # 情感分析饼图
│ ├── trend.html # 情感趋势线图
│ └── wordcloud.html # 关键词云图
│
├── data/ # 数据文件目录
│ ├── raw/ # 原始采集数据(CSV)
│ │ └── .gitkeep # 目录占位
│ ├── clean/ # 清洗后数据(CSV)
│ │ ├── .gitkeep # 目录占位
│ │ └── cleaned_data.csv # 清洗结果文件
│ └── export/ # 导出数据(CSV)
│
├── mac/ # macOS 部署脚本
│ ├── setup_and_run.sh # 一键配置并启动
│ ├── run.sh # 快速启动
│ ├── clear.sh # 清理 venv/缓存,保留业务数据
│ └── 项目部署手册_macOS.md
│
├── windows/ # Windows 部署脚本
│ ├── setup_and_run.bat # 一键配置并启动
│ ├── run.bat # 快速启动
│ ├── clear.bat # 清理 venv/缓存,保留业务数据
│ └── 项目部署手册_Windows.md
│
├── python环境/ # Windows 离线 Python 安装包(可选)
│ └── python-3.12.10-amd64.exe
│
└── 演示材料/ # 演示视频等资源
└── 演示.mp4 # 系统操作演示录像
部署说明
本项目支持 macOS 和 Windows 平台快速部署,详细部署步骤请参考:
- macOS 用户:mac/项目部署手册_macOS.md
- Windows 用户:windows/项目部署手册_Windows.md
PC 端评论采集认证: 复制 weibo_auth.curl.example 为 weibo_auth.curl,将浏览器 F12 复制的 PC 端 curl 整段粘贴进去即可。
环境清理(保留业务数据): 交付他人或重置环境时,运行 mac/clear.sh 或 windows/clear.bat,会清理 venv 与缓存,保留 weibo_hot.db 和 data/ 目录;weibo_auth.curl 仅清空内容。
开发规范
API 响应格式
所有 API 接口统一返回格式:
{
"code": 200,
"data": {},
"msg": "操作成功"
}
代码风格
- Python 代码遵循 PEP 8 规范
- 函数和变量使用下划线命名法
- 类名使用驼峰命名法
- 注释清晰,文档完整
获取完整源码
技术分类
包含内容
适合方向
适合软件工程、大数据专业毕业设计中 Python Flask、网络爬虫、中文 NLP 与 ECharts 可视化方向;适合作为社交媒体舆情分析课题参考。
关于 AI源码
AI源码 整理计算机毕业设计、课程设计向的可运行项目参考,含说明文档与演示材料。完整源码请通过联系方式沟通获取。
相关推荐
查看全部 →
虚假新闻检测系统
基于 ConceptNN 概念神经网络的虚假新闻检测 FastAPI 服务,支持文本 Sentence-Transformer 与图像 ResNet18 双模态特征及增量学习,可对接 Java 后端实时预测,适合 NLP+CV 毕业设计。

基于 Python 的短视频用户行为分析系统
基于 KuaiRec/KuaiRand 数据集的短视频分析平台:行为漏斗、推荐偏差、KMeans 聚类、TF-IDF/t-SNE、LightGCN 图推荐与 A/B 实验,Flask 仪表盘一键重训,适合推荐系统大数据毕业设计。

城市交通流量预测与拥堵成因分析系统
城市交通拥堵 monorepo:data-pipeline 多源时空特征、STGNN Proxy 流量预测、归因分析与 Leaflet 地图可视化,FastAPI 加载离线产物,适合交通大数据与计算机设计毕业设计。

电商用户行为漏斗与CRO转化率优化分析
电商漏斗 CRO 分析平台:页面/事件双漏斗、渠道设备多维诊断、PIE 优先级矩阵、卡方检验与 XGBoost 购买预测,Flask+ECharts 仪表板,支持 Retailrocket 真实数据,适合电商数据分析毕业设计。

基于 Python 的汽车市场数据分析与可视化平台
Flask 汽车市场分析平台:整合 Cars24/UCI Automobile 等多源真实数据集(统一 CNY),含多维分析、随机森林二手车价格预测、品牌对比与销量统计,适合 Python 数据分析毕业设计。

中学生学业水平多维度分析与预警系统
Flask 中学生学业预警系统:UCI Student Performance 真实数据,规则引擎 40%+随机森林/GBDT 60% 融合考前评分,六维雷达与皮尔逊相关分析,教师/管理员双角色,适合教育数据挖掘毕业设计。