You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.6 KiB
2.6 KiB
数据爬虫系统 - 期末作业项目
项目概述
这是一个完整的 Java 爬虫项目,实现了 MVC 架构、Command 模式、Strategy 模式,包含自定义异常体系,提供了数据爬取、存储和可视化功能。
快速开始
1. 进入项目目录
cd d:\期末作业
2. 编译运行(简化版)
javac SimpleCrawler.java
java SimpleCrawler
3. 操作
- 输入
4爬取所有数据 - 输入
6生成可视化页面 - 打开浏览器查看 visualization/ 目录下的 HTML 文件
项目特性
已实现的功能
- ✅ 完整的 MVC 架构
- ✅ Command 模式设计
- ✅ Strategy 模式实现
- ✅ CSV 数据存储
- ✅ HTML 可视化图表
- ✅ 命令行交互界面
- ✅ 模拟数据生成
设计模式
- MVC架构:Model-View-Controller 分离
- Command模式:所有操作封装为命令对象
- Strategy模式:不同数据源使用不同策略
文件结构
简化版(推荐)
期末作业/
├── SimpleCrawler.java # 完整程序(一个文件)
├── data/ # CSV 数据文件
└── visualization/ # HTML 可视化页面
完整版(按包结构)
期末作业/
├── Main.java # 主程序入口
├── command/ # 命令模式
├── controller/ # 控制器
├── model/ # 数据模型
├── strategy/ # 策略模式
├── repository/ # 数据访问
├── exception/ # 自定义异常
└── view/ # 视图层
数据文件
1. 长沙天气 (changsha_weather_2026.csv)
- 日期、天气、最高温、最低温、风力
2. 地震数据 (earthquake_2026.csv)
- 时间、震级、纬度、经度、深度、地点
3. 新闻排行榜 (news_rank_202605.csv)
- 排名、标题、热度、链接
可视化页面
weather.html
- 温度趋势折线图
- 渐变背景色设计
earthquake.html
- 震级柱状图
- 详细数据表格
news.html
- 新闻热度横向柱状图
- 详细列表展示
文档
- 使用说明.md - 详细使用说明和开发指南
- 项目说明.md - 项目详细介绍和类说明
技术栈
- Java 8+
- Chart.js (图表库)
- HTML + CSS + JavaScript
开发建议
如需集成真实的爬虫功能,请下载:
- Jsoup (HTML 解析)
- Apache HttpClient (HTTP 请求)
许可证
本项目用于期末作业演示。
祝使用愉快! 🎉