食谱数据分析与可视化系统
一、介绍
此系统使用下厨房数据,对数据进行分析展示,应用Python爬虫、Flask框架、Echarts等技术实现。
二、系统功能
1、数据概览
使用本周最受欢迎
数据,对数据进行分页展示,支持用标题、食材进行模糊搜索。
2、食材使用top30
使用食材数据(tbl_top_yongliao),对食材进行分组查询,用echarts饼图和柱状图展示排名前30的数据。
3、食材词云
分析食材数据, 使用wordcloud库生成词云图,进行展示![在这里插入图片描述](https://img-blog.csdnimg.cn/2e95f9573ad046beb4fccd4da224112a.png
4、月度最佳
使用月度最佳
数据,对各期数据进行分页展示,支持用标题、食材进行模糊搜索,支持期数切换。
5、评分排名
使用月度最佳
数据,对数据的评分进行排序展示。支持查询所有期别数据评分排名及各个期别评分排名。
6、使用排名
使用月度最佳
数据,对菜谱使用人数进行排序展示。支持查询所有期别数据评分排名及各个期别评分排名。
7、评论词云
分析评论数据, 使用wordcloud库生成词云图,进行展示
8、分类评分
9、修改密码
用户登录后可修改密码
9、登录注册
用户登录注册
![在这里插入图片描述](https://img-blog.csdnimg.cn/659809f23b6a4208869bb57556710693.png
10、用户管理
管理员功能,管理用户信息
三、软件架构
后端
- python
- flask
前端
- vue
- iview
python库
# 升级pip库,如果已升级可忽略
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
python -m pip install --upgrade pip
# flask库
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple Flask
# pymysql
pip install pymysql
#requests
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
#xlwt
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple xlwt
#jieba
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple jieba
#wordcloud
pip --default-timeout=100 install wordcloud
#lxml
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple lxml
#BeautifulSoup4
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple BeautifulSoup4
#fake_useragent
pip install fake_useragent
四、安装教程
- 安装上述所有python库
- 启动flask
# 启动flask命令
python app.py
- 安装node.js
- 安装vue库
- 启动vue
# 安装vue库
npm i
# 启动vue
npm run serve
- 访问
http://localhost:8099/
五、工程目录结构
|canyin
|-- canyin_server
|-- app.py Flask启动类
|-- bus_home.py 接口-业务相关
|-- bus_index.py 接口-系统管理
|-- data_detail.py 爬虫-本周最受欢迎详情
|-- data_month.py 爬虫-月度最佳数据
|-- data_top.py 爬虫-本周最受欢迎数据
|-- data_type.py 爬虫-菜谱分类
|-- data_type_list.py 爬虫-菜谱分类数据
|-- handle_cloud_comment.py 词云-评论
|-- handle_getCloud.py 词云-食材
|-- ip_get.py 爬虫-ip池(没用到,可删除)
|-- mysqlHelper.py 工具类-数据库连接
|-- zhongweishu.py 工具类-获取中位数
|-- canyin_web
|-- node_modules node包
|-- public 结构文件
|-- src
|--api 接口
|--assets 静态文件
|--components 系统组件
|--router 路由
|--store 路由
|--utils 工具类
|--views 页面
|-- tests 测试类
|-- vue.config.js vue配置类
六、表结构
|p_canyin
|-- month 期数表
|-- tbl_ip ip表(未用,可删除)
|-- tbl_month 月度最佳数据表
|-- tbl_top 最受欢迎数据表
|-- tbl_top_comment 最受欢迎数据-评论表
|-- tbl_top_detail 最受欢迎数据-详情表
|-- tbl_top_step 最受欢迎数据-制作步骤表
|-- tbl_top_yongliao 最受欢迎数据-用料表
|-- tbl_type 菜谱分类表
|-- tbl_type_data 分类菜谱表
|-- tbl_user 用户表
七、特别说明
此系统爬虫脚本仅可用户学习交流,切勿爬取大量数据,对网站服务器施压!!!
爬虫说明:
- data_month.py
该爬虫爬取了网站月度最佳数据
# 具体目标地址
https://www.xiachufang.com/explore/monthhonor/
# 防反爬设置
由于测试中发现爬取大量数据会导致ip被封,所以使用代理ip进行爬取,具体步骤请参考:
https://blog.csdn.net/qq_25990967/article/details/122095316
此网站不是免费的,后续需要换别的网站或者使用免费代理
如果不爬取所有月份数据(可以设置爬取个别月份的数据),可以取消此设置
# 参数设置
mian方法中 startTime和stoptime代表爬取开始月份和结束月份,程序会自动爬取两个月份中间所有月份数据
- data_top.py
改目标爬取了本周最受欢迎数据
# 具体网址
https://www.xiachufang.com/explore/
# 参数设置
无
# 放反爬设置
暂无,可使用代理ip
- data_detail.py
爬取本周最受欢饮数据的详情
# 放反爬设置
爬取数据较少,不需要
- data_type.py
爬取菜谱分类
# 具体网址
https://www.xiachufang.com/category/
# 放反爬设置
爬取数据较少,不需要
- data_type_list.py
根据菜谱分类爬取相关菜谱
# 放反爬设置
建议使用ip代理