2.1 KiB
2.1 KiB
系统架构说明
整体架构
本项目采用分层架构设计:
┌─────────────────────────────────────┐
│ CLI Interface │ 命令行入口
└──────────────┬──────────────────────┘
│
┌──────────────▼──────────────────────┐
│ Crawler Layer │ 爬虫层
│ (StaticCrawler / DynamicCrawler) │
└──────────────┬──────────────────────┘
│
┌──────────────▼──────────────────────┐
│ Parser Layer │ 解析层
│ (NeteaseParser / Kr36Parser) │
└──────────────┬──────────────────────┘
│
┌──────────────▼──────────────────────┐
│ Database Layer │ 数据层
│ (Connection Pool / Repository) │
└─────────────────────────────────────┘
核心模块
1. 配置管理 (config/)
- 使用YAML格式存储配置
- 支持环境变量覆盖
- 类型安全的配置访问
2. 爬虫基类 (src/base/)
BaseCrawler: 抽象基类StaticCrawler: 静态页面爬虫DynamicCrawler: 动态页面爬虫(Selenium)Article: 数据模型
3. 数据库优化 (src/database/)
- 连接池管理
- 上下文管理器
- 统一的CRUD接口
4. 工具模块 (src/utils/)
- 日志系统
- HTTP客户端
- Selenium驱动管理
设计模式
- 模板方法模式: 爬虫基类定义算法框架,子类实现具体步骤
- 单例模式: 配置管理器、连接池
- 上下文管理器: 数据库连接管理
- 工厂模式: 动态创建爬虫实例