# 数据爬虫系统 - 期末作业项目 ## 项目概述 这是一个完整的 Java 爬虫项目,实现了 MVC 架构、Command 模式、Strategy 模式,包含自定义异常体系,提供了数据爬取、存储和可视化功能。 ## 快速开始 ### 1. 进入项目目录 ```bash cd d:\期末作业 ``` ### 2. 编译运行(简化版) ```bash javac SimpleCrawler.java java SimpleCrawler ``` ### 3. 操作 1. 输入 `4` 爬取所有数据 2. 输入 `6` 生成可视化页面 3. 打开浏览器查看 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 请求) ## 许可证 本项目用于期末作业演示。 --- **祝使用愉快!** 🎉