Files
intelligence_system/doc
2025-08-05 17:13:19 +08:00
..
2025-08-05 17:13:19 +08:00

情报收集系统设计

程序框架

intelligence_system/
├── config/               # 配置管理
│   ├── __init__.py
│   ├── settings.py       # 全局参数
│   └── logging.conf      # 日志配置
├── collectors/           # 数据采集
│   ├── news_api.py
│   └── complaint_spider.py
├── processors/           # 数据处理
│   ├── text_processor.py
│   └── image_processor.py
├── storage/              # 数据存储
│   ├── database.py
│   └── cache_manager.py
├── applications/         # 应用层
│   ├── reporter/
│   │   ├── daily.py
│   │   └── monthly.py
│   └── alert.py
├── utils/                # 工具类
│   ├── logger.py
│   └── network.py
└── main.py               # 调度入口

程序设计原则

  1. 所有程序尽可能在py文件中运行,尽量避免使用命令行执行
  2. 配置需要在配置类中定义
  3. 密钥等信息直接放在配置类中

主程序设计

主程序需要一次启动,一直运行,启动时运行一次(在代码中可取消),之后每天定时生成一次报告

主程序包含爬虫/api调度器。该调度器通过查询mysql中任务调度情况按需执行,db文件中应包含任务名称、 任务路径、任务执行频率(支持按天、按周,按分钟)、上次执行时间、下次执行时间等信息

主程序应包含数据处理调度器,根据数据类别分别处理,如文本数据处理调度器、图片数据处理调度器等, 每天定时拉取db获取到的原始数据,分别进行处理,处理完成后将结果保存到mysql中

主程序应包含日报、周报等生成,根据时间定时生成报告

日志设计

日志系统应兼容多个平台,如win、mac和linux,日志需要保存为log文件,并且在日志大于20mb时自动压缩

数据库链接设计

数据存储放在数据库中,数据库类型为mysql,数据库名称为intelligence_system

数据库表的命名规则与目录一致,数据采集类以collector_为开头,数据处理类以processor_为开头,数据存储类以storage_为开头,应用层类以application_为开头 依次类推。

数据库链接为通用配置,要求数据采集或处理类等,可以直接调用封装好的数据库链接,不必每次都重新些, 该链接包含表的增删改查功能,以及执行sql语句功能

数据库结构:

  1. collector_news_api:新闻api数据表
  2. collector_complaint_spider:投诉数据表
  3. processor_text_processor:文本处理数据表
  4. processor_image_processor:图片处理数据表
  5. main_task 任务调度表
  6. application_reporter_daily:日报数据表
  7. application_reporter_monthly:周报数据表

数据采集设计

每一个数据采集均为独立python文件,里面执行主程序均为main,以方便调度 每一个数据采集均会根据规则创建数据库表,数据处理类以processor_为开头

数据处理

从多个数据库库表中获取数据,对数据进行处理,处理完成后将结果保存到数据库中,处理结果可能存储在多个表中 数据处理数据库表以processor_为开头