# 濒危动物信息爬虫系统 - 项目总结 --- ## 一、功能测试 | 功能 | 测试结果 | 备注 | |-----|---------|------| | 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 技术亮点 1. **架构设计合理**:采用MVC架构,实现关注点分离,代码结构清晰 2. **设计模式应用得当**: - **策略模式**:封装不同数据源的爬取逻辑,支持动态切换 - **Command模式**:将用户操作封装为独立命令,便于扩展 3. **异常体系完善**:定义了6个自定义异常类,覆盖网络、解析、存储、命令、数据源等各类异常场景 4. **代码可扩展性强**:通过接口定义实现松耦合,添加新数据源只需实现策略接口 5. **用户体验友好**:提供完善的命令帮助和错误提示 ### 2.4 运行方式 ```bash # 编译打包 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 项目价值 1. **教育意义**:展示了Java面向对象编程的核心概念(封装、继承、多态、抽象类、接口) 2. **设计模式实践**:完整实现了MVC、策略模式、Command模式 3. **实用功能**:提供濒危动物信息的爬取、管理和可视化能力 4. **可扩展性**:架构设计支持后续功能扩展和数据源增加 ### 2.7 后续改进方向 1. **增加真实爬虫**:对接真实API或网页爬取(需处理反爬机制) 2. **数据库持久化**:引入数据库存储数据 3. **GUI界面**:开发图形化用户界面 4. **数据统计分析**:增加数据统计和分析功能 5. **命令撤销功能**:利用Command模式实现操作撤销 --- ## 三、项目验收 ### 3.1 验收标准 | 验收项 | 要求 | 完成情况 | |-------|------|---------| | CLI界面 | 实现交互式命令行 | ✅ 已完成 | | MVC架构 | 三层分离 | ✅ 已完成 | | 策略模式 | 支持多数据源切换 | ✅ 已完成 | | Command模式 | 命令封装与执行 | ✅ 已完成 | | 异常体系 | 完整异常处理 | ✅ 已完成 | | 数据源数量 | ≥ 3个 | ✅ 已完成(3个) | | 数据保存 | 保存到文件 | ✅ 已完成 | | 可视化 | 生成图表 | ✅ 已完成(2种图表) | | 程序运行 | 完整运行不出错 | ✅ 已完成 | ### 3.2 验收结论 本项目已完成所有预定目标,实现了CLI+MVC+Command模式+策略模式+异常体系的完整架构,成功爬取3个数据源的数据并生成可视化图表,程序运行稳定。 --- **项目状态**:✅ 已完成 **完成日期**:2026年5月 **版本**:v1.0