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.5 KiB

濒危动物信息爬虫系统 - 功能目标与预期效果


一、项目目标

1.1 功能目标

项目名称:濒危动物信息爬虫系统
项目定位:基于Java的CLI爬虫应用,实现濒危动物信息的多数据源爬取、数据管理和可视化展示

功能模块 功能名称 描述 优先级
爬虫核心 多数据源爬取 支持从中国红色名录、WWF、IUCN三个数据源爬取濒危动物信息
爬虫核心 策略模式切换 通过策略模式实现数据源的动态切换,无需修改代码即可扩展新数据源
命令交互 CLI命令行界面 提供交互式命令行界面,支持多种操作命令
命令交互 Command模式封装 将各类操作封装为独立命令,支持命令扩展和管理
数据管理 数据展示 以列表形式展示爬取到的濒危动物数据
数据管理 数据持久化 将爬取的数据保存到本地文件,支持文本格式输出
可视化 保护状态分布饼图 生成展示各保护等级动物数量分布的饼图
可视化 种群数量柱状图 生成展示各动物种群数量的柱状图
异常处理 完整异常体系 定义爬虫相关的各类异常,提供清晰的错误提示

1.2 预期效果

1.2.1 功能效果

序号 效果描述 实现方式
1 用户通过命令行输入 crawl 命令,系统自动从当前数据源爬取濒危动物数据 CLI命令 + 策略模式
2 用户输入 set china/set wwf/set iucn 命令,可切换不同数据源 策略模式动态切换
3 用户输入 list 命令,系统以格式化表格展示动物信息(名称、学名、类别、保护状态、栖息地、种群数量) Controller + View协作
4 用户输入 save <文件名> 命令,系统将数据保存为文本文件 文件IO操作
5 用户输入 visualize 命令,系统自动生成两个可视化图表(PNG格式) JFreeChart图表生成
6 系统对无效命令、网络异常、文件操作异常等场景给出清晰的错误提示 自定义异常体系

1.2.2 输出物

输出类型 文件名 内容说明
数据文件 animals.txt(用户自定义) 包含动物名称、学名、类别、保护状态、栖息地、描述、种群数量的文本报告
图表文件 status_distribution.png 濒危动物保护状态分布饼图
图表文件 population_chart.png 濒危动物种群数量柱状图
可执行文件 AnimalCrawler-1.0-SNAPSHOT-jar-with-dependencies.jar 包含所有依赖的可执行JAR包

1.2.3 技术指标

指标 预期值 说明
支持数据源数量 ≥ 3个 中国红色名录、WWF、IUCN
单次爬取数据量 ≥ 5条/数据源 每个数据源至少爬取5条动物记录
图表分辨率 800×600/1000×600 饼图800×600,柱状图1000×600
命令响应时间 ≤ 1秒 除爬取操作外的命令响应
异常捕获率 100% 所有可预见异常均有捕获和提示

1.2.4 用户体验

体验点 预期效果
易用性 提供 help 命令查看所有可用命令,提供 sources 命令查看可用数据源
交互友好 命令输入后立即反馈执行结果,错误信息清晰易懂
信息展示 数据列表格式化展示,便于阅读和理解
扩展性 支持通过添加新策略类扩展数据源,无需修改核心代码

二、功能用例

2.1 典型使用流程

用户启动程序 → 查看帮助信息 → 选择数据源 → 爬取数据 → 查看数据 → 保存数据 → 生成可视化图表 → 退出程序

2.2 命令列表

命令 语法 功能说明
help help 显示所有可用命令及说明
sources sources 显示所有可用数据源列表
set set <数据源> 切换数据源(china/wwf/iucn)
crawl crawl 从当前数据源爬取数据
list list 显示已爬取的动物数据列表
save save <文件名> 将数据保存到指定文件
visualize visualize 生成可视化图表
exit exit 退出程序

三、架构设计目标

3.1 设计模式应用

设计模式 应用位置 目的
MVC Controller/View/Model分离 实现关注点分离,提高代码可维护性
策略模式 CrawlerStrategy接口及实现类 封装不同数据源的爬取逻辑,支持动态切换
Command模式 Command接口及实现类 封装用户操作,支持命令扩展和撤销(预留)
异常体系 CrawlerException及子类 统一异常处理,提供清晰的错误分类

3.2 代码质量目标

  • 可读性:代码结构清晰,命名规范,关键位置有注释说明
  • 可扩展性:通过接口定义实现松耦合,便于添加新功能
  • 健壮性:完善的异常处理,确保程序稳定运行
  • 可测试性:模块化设计,便于单元测试和集成测试

四、运行环境要求

环境 要求
JDK版本 ≥ 11
Maven版本 ≥ 3.6.0
操作系统 Windows/Linux/macOS
网络要求 爬取真实数据源时需联网