本项目基于东南大学软件学院2021年暑期大数据实训第五组项目进行二次开发
agri-analysis-client
前端项目,由 Vue 开发。agri-analysis-server
后端项目,由 Python + Flask 开发。agri-analysis-spider
爬虫项目,由 Python + Scrapy 开发。
以下各依赖版本为推荐配置。
-
node 14.17.3 LTS
-
npm 7.20.0
-
python 3.8.16
-
MySQL 8.0.25 (必须为 MySQL 8)
-
JDK 8u301 (必须为 JDK 8)
-
hadoop 2.7.7 (必须为 hadoop 2.7.x)
-
spark-3.0.3-bin-hadoop2.7 (必须)
-
nginx 1.20.1 (可选,部署需要)
第一次运行需要以下步骤进行初始化:
- 运行后端项目。运行后将自动进行数据库建表,并添加一个超级管理员用户,用户名与密码均为“admin”。
- 运行爬虫项目。首先爬取区域数据(省、市和市场数据)以及农产品种类数据(种类和品种),然后正是爬取农产品价格和售卖行情数据。
- 运行前端项目。
之后运行只需要将运行前后端项目,并按需要爬取某一时间段农产品价格和售卖行情数据即可。
在 Linux 操作系统下,详细初始化流程如下(Windows 操作系统类似):
先确保 MySQL Server 服务处于运行状态,并创建名为 agri_analysis
的空数据库。
在 agri-analysis-server/app/config/
目录下
- 在同一文件夹复制
database.example.yml
文件命名为database.secret.yml
,修改development.database.password
配置项为 MySQL 数据库密码 - 在同一文件夹复制
auth.example.yml
文件命名为auth.example.yml
,修改development.auth.secret
配置项为一复杂密码,该配置项用于密码加密
在 agri-analysis-server
目录下:
-
建立 python 虚拟环境:
python3.8 -m venv venv
-
启用虚拟环境:
source venv/bin/activate
-
安装依赖:
python3.8 -m pip install -r requirements.txt
-
运行:
./run.sh
后端项目将监听 5050 端口。
确保 MySQL 中 agri_analysis
数据库已生成了七张表 t_admin
、t_city
、t_market
、t_product
、t_province
、t_type
和 t_variety
。
在agri-analysis-spider/app/config
目录下,复制database.example.yml
文件命名为 database.secret.yml
,修改development.database.password
配置项为 MySQL 数据库密码。
在 agri-analysis-spider
目录下:
-
建立 python 虚拟环境:
python3.8 -m venv venv
-
启用虚拟环境:
source venv/bin/activate
-
安装依赖:
python3.8 -m pip install -r requirements.txt
-
爬取区域数据和农产品种类数据:
scrapy crawl city & scrapy crawl market & scrapy crawl variety
-
爬取段农产品价格和售卖行情数据:
scrapy crawl all_product -a start=2023-05-01 -a end=2023-06-23
其中
start
参数为爬取起始日期,为空则默认为2014-01-01
;end
参数为爬虫终止日期,为空则默认为程序运行日期。
在 agri_analysis-client
目录下:
-
安装依赖:
npm install
-
运行:
npm run serve
项目将在运行在:http://localhost:8080/
- 大数据处理最忌讳 ==关系型数据库==
- 爬虫项目的时间比较久,后台数据不够明晰
- 数据没有提前做==预处理==,即没有 hadoop 清理数据集的过程
虚拟机打包如下【推荐通过IDM+直链方式免去下载客户端】 https://cloud.189.cn/t/Bb6JVvERnq6j (访问码:go1c)