# -*- coding: utf-8 -*- # @Author: wangkun # @Time: 2023/3/15 import argparse import datetime import os import random import sys sys.path.append(os.getcwd()) from common.scheduling_db import MysqlHelper from common.common import Common from common.public import task_fun from xiaoniangao.xiaoniangao_hour.xiaoniangao_hour_scheduling import XiaoniangaoHourScheduling def main(log_type, crawler, task, env): task_dict = task_fun(task)['task_dict'] rule_dict = task_fun(task)['rule_dict'] task_id = task_dict['task_id'] select_user_sql = f"""select * from crawler_user_v3 where task_id={task_id}""" user_list = MysqlHelper.get_values(log_type, crawler, select_user_sql, env, action="") our_uid_list = [] for user in user_list: our_uid_list.append(user["uid"]) our_uid = random.choice(our_uid_list) Common.logger(log_type, crawler).info(f"调度任务:\n{task_dict}") Common.logger(log_type, crawler).info(f"抓取规则:\n{rule_dict}") Common.logger(log_type, crawler).info(f'开始抓取 {task_dict["task_name"]}\n') # 获取符合规则的视频,写入小时级数据_feeds for i in range(1, 101): try: Common.logger(log_type, crawler).info(f"正在抓取第{i}页") XiaoniangaoHourScheduling.get_videoList(log_type, crawler, rule_dict, env) except Exception as e: Common.logger(log_type, crawler).info(f"抓取第{i}页时异常:{e}\n") now = datetime.datetime.now() if now.hour == 10 and 0 <= now.minute <= 10: Common.logger(log_type, crawler).info("开始更新/下载上升榜") XiaoniangaoHourScheduling.update_videoList(log_type=log_type, crawler=crawler, rule_dict=rule_dict, our_uid=our_uid, env=env) elif now.hour == 15 and now.minute <= 10: Common.logger(log_type, crawler).info("开始更新/下载上升榜") XiaoniangaoHourScheduling.update_videoList(log_type=log_type, crawler=crawler, rule_dict=rule_dict, our_uid=our_uid, env=env) elif now.hour == 20 and now.minute <= 10: Common.logger(log_type, crawler).info("开始更新/下载上升榜") XiaoniangaoHourScheduling.update_videoList(log_type=log_type, crawler=crawler, rule_dict=rule_dict, our_uid=our_uid, env=env) Common.del_logs(log_type, crawler) Common.logger(log_type, crawler).info("抓取完一轮\n") if __name__ == "__main__": parser = argparse.ArgumentParser() ## 新建参数解释器对象 parser.add_argument('--log_type', type=str) ## 添加参数,注明参数类型 parser.add_argument('--crawler') ## 添加参数 parser.add_argument('--task') ## 添加参数 parser.add_argument('--env') ## 添加参数 args = parser.parse_args() ### 参数赋值,也可以通过终端赋值 main(log_type=args.log_type, crawler=args.crawler, task=args.task, env=args.env)