这是一个基于Python和Flask的电商数据分析与价格预测系统。该系统可以爬取各大电商平台(如京东、淘宝)及二手车平台(如汽车之家、懂车帝)的商品信息,进行数据分析并提供价格和销量预测功能。
- 数据爬取:支持从主流电商平台和二手车平台爬取商品信息
- 数据可视化:通过图表直观展示商品价格趋势和销量分析
- 价格预测:使用机器学习算法预测未来商品价格变化
- 销量预测:预测商品未来销量趋势
- 用户管理:支持用户注册、登录和权限管理
- 二手车分析:专门的二手车数据分析模块
- 后端框架:Flask
- 数据库:SQLite (通过SQLAlchemy ORM)
- 用户认证:Flask-Login
- 数据爬取:Requests, BeautifulSoup4, Selenium, Scrapy
- 数据分析:Pandas, NumPy
- 机器学习:Scikit-learn
- 可视化:ECharts
├── app.py # 主应用程序文件
├── run.py # 应用程序启动文件
├── config.py # 配置文件
├── extensions.py # Flask扩展初始化
├── models.py # 数据库模型
├── crawler.py # 爬虫模块
├── prediction_service.py # 预测服务模块
├── requirements.txt # 依赖库列表
├── ecommerce.db # SQLite数据库
├── templates/ # HTML模板
│ ├── base.html # 基础模板
│ ├── index.html # 首页
│ ├── login.html # 登录页
│ ├── register.html # 注册页
│ ├── products.html # 商品列表页
│ ├── sales.html # 销售分析页
│ ├── sales_analysis.html # 销售详细分析页
│ ├── used_cars.html # 二手车分析页
│ └── users.html # 用户管理页
└── static/ # 静态资源文件夹
- Python 3.8+
- 虚拟环境 (推荐)
- 克隆仓库:
git clone https://github.com/你的用户名/电商分析与价格预测系统.git
cd 电商分析与价格预测系统- 创建并激活虚拟环境:
# Windows
python -m venv .venv
.\.venv\Scripts\activate
# Linux/MacOS
python -m venv .venv
source .venv/bin/activate- 安装依赖:
pip install -r requirements.txt- 初始化数据库:
python run.py- 启动应用:
python app.py- 访问应用:
在浏览器中访问 http://127.0.0.1:5000
- 首次使用需要注册账号
- 使用注册的账号和密码登录系统
- 在主界面中,输入要搜索的商品关键词
- 选择要爬取的平台(京东、淘宝等)
- 点击"开始爬取"按钮
- 等待爬取完成,系统会显示爬取结果
- 在商品列表中选择要预测的商品
- 点击"价格预测"或"销量预测"按钮
- 设置预测的时间范围
- 查看预测结果和可视化图表
- 点击导航栏中的"二手车分析"
- 可浏览已爬取的二手车数据
- 使用筛选功能查找特定车型
- 查看价格分布和趋势分析
系统使用SQLite数据库,主要包含以下数据模型:
- User: 用户信息
- Product: 商品信息
- SalesHistory: 销售历史记录
- Comment: 商品评论
- UsedCar: 二手车信息
- PricePrediction: 价格预测结果
- SalesPrediction: 销量预测结果
系统实现了多个爬虫类,支持不同平台的数据爬取:
- JDCrawler: 京东商城爬虫
- TaoBaoCrawler: 淘宝网爬虫
- AutoHomeUsedCarSpider: 汽车之家二手车爬虫
- DongCheDiUsedCarSpider: 懂车帝二手车爬虫
系统使用机器学习算法进行价格和销量预测:
- 使用RandomForestRegressor算法
- 考虑时间特征和历史数据
- 支持不同时间范围的预测
- 本系统仅用于学习和研究,请勿用于商业用途
- 爬虫使用请遵守相关网站的robots协议
- 首次运行可能需要等待一段时间以完成数据初始化
欢迎提交Pull Request或Issue来改进这个项目:
- Fork这个仓库
- 创建你的特性分支 (
git checkout -b feature/AmazingFeature) - 提交你的更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启一个Pull Request
本项目采用MIT许可证,详情请参见LICENSE文件