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

数据爬虫系统 - 期末作业项目

项目概述

这是一个完整的 Java 爬虫项目,实现了 MVC 架构、Command 模式、Strategy 模式,包含自定义异常体系,提供了数据爬取、存储和可视化功能。

快速开始

1. 进入项目目录

cd d:\期末作业

2. 编译运行(简化版)

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 请求)

许可证

本项目用于期末作业演示。


祝使用愉快! 🎉