前言
在前面六篇系列的文章中,我们已经初步搭建了一个企业基本信息采集框架,但是从可配置性以及可视化方面还有很多地方需要去完善。这篇文章我们对schedule.py这个文件做一些整体的修改,使其看上去更加符合我们的平常需求。
正文
我在原有的框架上面,又建立了一个start_crawl.py这个文件来启动全局,主要是想在启动之前做一个更加合理划的配置和判断,下面是具体的实现部分
# -*- coding: utf-8 -*-
from crawl_basicinfo import EpregAppCollect
from schedule import Scheduler
from db_connect import RedisDbConn,DbCollect
import sys
import io
from loguru import logger
from config import *
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding="utf-8")
def main(keywords_list):
"""
开始运行整个工商采集
:return:
"""
count = RedisDbConn().get_count(INIT_STATUS)
if count == 0:
if DELETE_REDIS_KEYWORDS and DELETE_REDIS_PARAMS:
RedisDbConn().del_db(KEYWORDS_REDIS_DB)
RedisDbConn().del_db(PARAMS_REDIS_DB)
if SQL_INPUT:
EpregAppCollect().entry_data()
else:
EpregAppCollect().add_keywords(keywords_list)
else:
logger.info("源redis库内已经有未采集的keywords.....")
try:
s = Scheduler()
s.run()
except Exception as e:
logger.debug("开始采集出现问题--" + str(e.args))
# main(keywords_list)
if __name__ == '__main__':
keywords_list = ["天堂","建材"]
main(keywords_list)
我们在config.py文件内定义了一些字段,需要查看的请到github完整项目去查看github。这边就不过于阐述了,主要是DELETE_REDIS_KEYWORDS和DELETE_REDIS_PARAMS,这两个变量是用来配置采集信息,如果都为true,说明两个信息都要采集,可以自行配置,在下面我们定义了一个keywords_list,以方便我们通过手动的方式输入关键词,进行测试采集,按道理来说,这个脚本会无穷无尽的采集下去。在config中配置了每五分钟从redis内取出数据,这样子就达到了可配置性,后面还有些功能可能需要完善,自己可以自行添加,可能后面还有一期使用sanic进行keywords调度的脚本,敬请期待。