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.
5.2 KiB
5.2 KiB
濒危动物信息爬虫系统 - 项目总结
一、功能测试
| 功能 | 测试结果 | 备注 |
|---|---|---|
| CLI命令行界面 | ✅ 通过 | 成功实现交互式命令行界面,支持8种命令 |
| 多数据源切换 | ✅ 通过 | 支持china/wwf/iucn三个数据源动态切换 |
| 数据爬取功能 | ✅ 通过 | 每个数据源可爬取5条以上动物数据 |
| 数据列表展示 | ✅ 通过 | 格式化展示动物名称、学名、类别、保护状态、栖息地、种群数量 |
| 数据文件保存 | ✅ 通过 | 支持将数据保存为文本文件,格式清晰 |
| 保护状态饼图生成 | ✅ 通过 | 生成PNG格式饼图,展示各保护等级分布 |
| 种群数量柱状图生成 | ✅ 通过 | 生成PNG格式柱状图,展示各动物种群数量 |
| 异常处理机制 | ✅ 通过 | 完整异常体系,错误提示清晰 |
| 策略模式实现 | ✅ 通过 | 策略接口+上下文+三个实现类,符合设计模式 |
| Command模式实现 | ✅ 通过 | 命令接口+六个命令实现类,支持命令扩展 |
| MVC架构实现 | ✅ 通过 | Controller、View、Model三层分离 |
| 程序打包运行 | ✅ 通过 | 生成包含依赖的可执行JAR包,运行正常 |
二、项目总结
2.1 项目概述
本项目实现了一个基于Java的濒危动物信息爬虫系统,采用CLI命令行界面,结合MVC架构、策略模式、Command模式和完整异常体系,实现了多数据源爬取、数据管理和可视化展示功能。
2.2 完成的功能
| 模块 | 功能 | 状态 |
|---|---|---|
| 架构设计 | MVC三层架构 | ✅ 已完成 |
| 设计模式 | 策略模式(多数据源切换) | ✅ 已完成 |
| 设计模式 | Command模式(命令封装) | ✅ 已完成 |
| 异常处理 | 自定义异常体系(6个异常类) | ✅ 已完成 |
| 数据源 | 中国濒危动物红色名录 | ✅ 已完成 |
| 数据源 | WWF世界自然基金会 | ✅ 已完成 |
| 数据源 | IUCN红色名录 | ✅ 已完成 |
| 可视化 | 保护状态分布饼图 | ✅ 已完成 |
| 可视化 | 种群数量柱状图 | ✅ 已完成 |
| 数据持久化 | 文本文件保存 | ✅ 已完成 |
2.3 技术亮点
-
架构设计合理:采用MVC架构,实现关注点分离,代码结构清晰
-
设计模式应用得当:
- 策略模式:封装不同数据源的爬取逻辑,支持动态切换
- Command模式:将用户操作封装为独立命令,便于扩展
-
异常体系完善:定义了6个自定义异常类,覆盖网络、解析、存储、命令、数据源等各类异常场景
-
代码可扩展性强:通过接口定义实现松耦合,添加新数据源只需实现策略接口
-
用户体验友好:提供完善的命令帮助和错误提示
2.4 运行方式
# 编译打包
cd /Users/thea/Desktop/大一/下学期/java/AnimalCrawler
mvn clean package
# 运行程序
java -jar target/AnimalCrawler-1.0-SNAPSHOT-jar-with-dependencies.jar
# 命令示例
set china # 切换数据源
crawl # 爬取数据
list # 查看数据
save data.txt # 保存数据
visualize # 生成图表
exit # 退出程序
2.5 输出文件
| 文件类型 | 文件名 | 说明 |
|---|---|---|
| 可执行JAR | AnimalCrawler-1.0-SNAPSHOT-jar-with-dependencies.jar |
项目主程序 |
| 数据文件 | animals.txt(用户自定义) |
动物数据报告 |
| 图表文件 | status_distribution.png |
保护状态分布饼图 |
| 图表文件 | population_chart.png |
种群数量柱状图 |
2.6 项目价值
- 教育意义:展示了Java面向对象编程的核心概念(封装、继承、多态、抽象类、接口)
- 设计模式实践:完整实现了MVC、策略模式、Command模式
- 实用功能:提供濒危动物信息的爬取、管理和可视化能力
- 可扩展性:架构设计支持后续功能扩展和数据源增加
2.7 后续改进方向
- 增加真实爬虫:对接真实API或网页爬取(需处理反爬机制)
- 数据库持久化:引入数据库存储数据
- GUI界面:开发图形化用户界面
- 数据统计分析:增加数据统计和分析功能
- 命令撤销功能:利用Command模式实现操作撤销
三、项目验收
3.1 验收标准
| 验收项 | 要求 | 完成情况 |
|---|---|---|
| CLI界面 | 实现交互式命令行 | ✅ 已完成 |
| MVC架构 | 三层分离 | ✅ 已完成 |
| 策略模式 | 支持多数据源切换 | ✅ 已完成 |
| Command模式 | 命令封装与执行 | ✅ 已完成 |
| 异常体系 | 完整异常处理 | ✅ 已完成 |
| 数据源数量 | ≥ 3个 | ✅ 已完成(3个) |
| 数据保存 | 保存到文件 | ✅ 已完成 |
| 可视化 | 生成图表 | ✅ 已完成(2种图表) |
| 程序运行 | 完整运行不出错 | ✅ 已完成 |
3.2 验收结论
本项目已完成所有预定目标,实现了CLI+MVC+Command模式+策略模式+异常体系的完整架构,成功爬取3个数据源的数据并生成可视化图表,程序运行稳定。
项目状态:✅ 已完成
完成日期:2026年5月
版本:v1.0