# -*- coding: utf-8 -*- # Author : Charley # Python : 3.10.8 # Date : 2025/8/15 17:53 import time import schedule import threading from loguru import logger from hoopi_login import login from hoopi_mall_card_spider import hoopi_mall_card_main from hoopi_mall_group_buy_spider import hoopi_mall_group_main from hoopi_auction_general_spider import hoopi_general_main from hoopi_auction_premier_spider import hoopi_premier_main from hoopi_box_spider import hoopi_box_main from in_auction_general_spider import in_general_main from in_box_spider import in_box_main from in_mall_card_spider import in_mall_card_main from sin_auction_general_spider import sin_general_main from sin_mall_card_spider import sin_mall_card_main logger.remove() logger.add("./logs/{time:YYYYMMDD}.log", encoding='utf-8', rotation="00:00", format="[{time:YYYY-MM-DD HH:mm:ss.SSS}] {level} {message}", level="DEBUG", retention="1 day") def run_threaded(job_func, *args, **kwargs): """ 在新线程中运行给定的函数,并传递参数。 :param job_func: 要运行的目标函数 :param args: 位置参数 :param kwargs: 关键字参数 """ job_thread = threading.Thread(target=job_func, args=args, kwargs=kwargs) job_thread.start() def schedule_task(): """ 两个爬虫模块的启动文件 bidding_main weika_change_card_by_id_spider change_card_main """ # 立即运行一次任务 run_threaded(hoopi_general_main, log=logger) run_threaded(hoopi_premier_main, log=logger) # run_threaded(hoopi_box_main, log=logger) # run_threaded(hoopi_mall_card_main, log=logger) run_threaded(hoopi_mall_group_main, log=logger) # 每天登录 # login(logger) schedule.every().day.at("00:00").do(run_threaded, login, log=logger) # 设置定时任务 schedule.every().day.at("00:01").do(run_threaded, hoopi_general_main, log=logger) schedule.every().day.at("01:01").do(run_threaded, hoopi_premier_main, log=logger) schedule.every().day.at("02:01").do(run_threaded, hoopi_box_main, log=logger) schedule.every().day.at("03:01").do(run_threaded, hoopi_mall_card_main, log=logger) schedule.every().day.at("04:01").do(run_threaded, hoopi_mall_group_main, log=logger) schedule.every().day.at("04:01").do(run_threaded, in_general_main, log=logger) schedule.every().day.at("04:31").do(run_threaded, in_box_main, log=logger) schedule.every().day.at("05:01").do(run_threaded, in_mall_card_main, log=logger) schedule.every().day.at("05:31").do(run_threaded, sin_general_main, log=logger) schedule.every().day.at("06:01").do(run_threaded, sin_mall_card_main, log=logger) while True: schedule.run_pending() time.sleep(1) if __name__ == '__main__': schedule_task()