- 基础调度框架:celery
- 号池,抓取记录存储:redis
- 实现语言:Python + 异步多线程
详细设计:
4. redis 作为celery的消息队列,存储任务,以及结果
5. 通过celery 定时向redis中写入任务,并且由celery多个消费进程进行定时调度,消费任务(抓取数据)
6. 号池机制:包括定时检测被购买账号可用性(账号可能因为请求次数过多被临时风控问题,不仅需要检测登陆,还需要检测能否正常抓取推文,从而综合判定账号可用性)。每个插入到可用号池的账号都是预登陆过的,号池中以auth_token为key,存储的是cookies+headers,并且账号每次被获取使用都会增加相应的被使用次数,每次从号池中获取新账号使用,都是获取使用次数最少的账号(每次从号池获取的账号不经检测,默认直接可用【为了保证抓取效率,同时提供定时轮训检测可用号池中的账号可用性,最大限度保证号池中的账号可用性】)
7. 消息推送机制:默认支持通过Telegram 机器人自定义配置webhook地址推送消息,以及向telegram指定用户/指定群组推送消息
8. 除了推送结果,还会向Telegram 推送当前可用账号数量,