基于 Python 的美妆销售数据分析 Web 系统
一、项目简介
本系统以淘宝美妆商品数据为分析对象,集成数据采集、数据清洗、数据管理与多维可视化分析能力。Web 版本采用 Flask、Vue、ECharts 与 MySQL,项目同时保留爬虫、数据库、数据分析、可视化和本地 GUI 相关模块,可对口红、粉底液、眼影等美妆类目数据进行统计分析。
实际功能文件包括crawler_module.py数据采集、data_analysis.py分析处理、database.py数据库访问、user_auth.py用户认证和visualization.py图表生成;Vue 前端包含数据获取、预处理、商品列表、类目统计、价格区间、销量占比、销量价格对比与店铺排行等页面。
二、系统功能
1.1 用户端功能
注册登录与访问控制
用户通过登录页面进入分析系统。后端使用 JWT 对接口进行访问控制,未登录用户不能访问需要权限的数据管理和分析页面,保证采集数据和个人操作记录的安全性。
数据概览与类目统计
用户可在类目数量、类目销量、类目平均价格等页面查看不同美妆品类的商品数量、累计销量和在售均价。CategoryCount.vue、CategorySales.vue、CategoryPrice.vue分别呈现对应的分类对比图表。
销量、价格与店铺分析
用户可查看商品销量 Top10、淘宝平台销量排行和店铺销量 Top10。SalesTop10.vue、TaobaoTop.vue、ShopTop10.vue从商品、平台和店铺维度展示销售表现。
价格区间与销量关联分析
PriceRange.vue展示不同价格段的商品分布,SalesRatio.vue使用占比图展示品类销量结构,SalesVsPrice.vue使用双轴图对比销量和均价,使用户能够观察价格与销量的关联情况。
1.2 数据管理端功能
数据采集与进度查看
管理员在DataFetch.vue配置采集类别、页数和淘宝 Cookie 后发起爬取。crawler_module.py负责请求与解析,后台任务采集商品数据并反馈每个类别的页数进度和已获取商品数量。
数据清洗与预处理
DataPreprocess.vue和data_analysis.py对采集后的价格、销量等字段进行清洗与数值标准化,剔除无效或重复记录,为后续统计图表和商品查询提供可用数据。
商品数据列表管理
管理员可在ProductList.vue分页浏览全部商品,按商品名称、店铺名称和类别筛选,也可执行新增、编辑、删除或清空等数据维护操作。
三、技术栈
| 层级 | 技术 | 说明 |
|---|---|---|
| 后端 | Python 3.9、Flask、Flask-CORS | API 服务与跨域支持 |
| 数据库 | MySQL、PyMySQL | 商品数据持久化 |
| 身份认证 | PyJWT、SHA-256 加盐哈希 | 令牌鉴权和密码存储 |
| 数据采集 | Requests、BeautifulSoup4 | 淘宝美妆数据请求与解析 |
| 数据处理 | Pandas | 数据清洗和统计 |
| 前端 | Vue 2、Element UI、Axios | 页面、表格与交互 |
| 数据可视化 | ECharts 5 | 销量、价格、品类和店铺图表 |
四、项目结构
c164/ ├── crawler_module.py# 数据采集模块├── data_analysis.py# 数据清洗和分析模块├── database.py# 数据库访问模块├── visualization.py# 图表相关逻辑├── user_auth.py# 用户认证模块├── main.py、run.py# 本地程序入口├── backend/ │ ├── app.py# Flask Web 服务入口│ ├── config.py# Web 配置│ ├── extensions.py# Flask 扩展初始化│ └── requirements.txt ├── frontend/src/ │ ├── views/DataFetch.vue# 数据采集页面│ ├── views/DataPreprocess.vue# 数据预处理页面│ ├── views/ProductList.vue# 商品管理页面│ └── views/# 各类统计与分析图表页面└── README.md五、环境要求
- Python 3.9+
- MySQL 5.7+
- Node.js 16+
- pip、npm
六、数据库初始化
根据config.py中的数据源参数创建 MySQL 数据库并配置本机连接。项目可通过数据采集模块写入商品数据,或按项目现有数据文件导入基础数据;中文数据库建议使用utf8mb4。
七、后端启动
cdbackend pipinstall-rrequirements.txt python app.py八、前端启动
cdfrontendnpminstallnpmrun serve九、默认账号
项目未提供可确认的默认账号,请以用户初始化数据或现有账号数据为准。
十、业务流程说明
9.1 美妆数据采集与处理流程
管理员在数据获取页面配置 Cookie、商品类别和爬取页数后提交任务。爬虫模块逐页获取商品信息,系统记录采集进度;采集完成后,预处理模块清洗价格、销量等字段并写入数据库。
管理员可在商品列表中检查、筛选或修正数据,保证后续图表分析的数据基础可靠。
9.2 数据分析与图表展示流程
分析模块读取已清洗的商品数据,按品类、销量、价格、店铺和价格区间进行聚合。前端各图表页面调用对应统计接口,将结果展示为柱状图、饼图、条形图和双轴图,用户据此了解美妆市场结构和销售表现。
十一、交付内容
- 爬虫、数据清洗、分析、Flask Web 后端与 Vue 前端完整源码。
- 数据库配置、数据文件与项目依赖清单。
- 项目说明文档,包含功能说明、运行环境与启动步骤。
本项目为个人原创,结构清晰,功能完整,适合课程设计、毕业设计和项目演示使用。有定制化需求可以评论或私信作者。
个人网址:https://michael-jay.pages.dev/