start_hoopi.py 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. # -*- coding: utf-8 -*-
  2. # Author : Charley
  3. # Python : 3.10.8
  4. # Date : 2025/8/15 17:53
  5. import time
  6. import schedule
  7. import threading
  8. from loguru import logger
  9. from hoopi_login import login
  10. from hoopi_mall_card_spider import hoopi_mall_card_main
  11. from hoopi_mall_group_buy_spider import hoopi_mall_group_main
  12. from hoopi_auction_general_spider import hoopi_general_main
  13. from hoopi_auction_premier_spider import hoopi_premier_main
  14. from hoopi_box_spider import hoopi_box_main
  15. from in_auction_general_spider import in_general_main
  16. from in_box_spider import in_box_main
  17. from in_mall_card_spider import in_mall_card_main
  18. from sin_auction_general_spider import sin_general_main
  19. from sin_mall_card_spider import sin_mall_card_main
  20. logger.remove()
  21. logger.add("./logs/{time:YYYYMMDD}.log", encoding='utf-8', rotation="00:00",
  22. format="[{time:YYYY-MM-DD HH:mm:ss.SSS}] {level} {message}",
  23. level="DEBUG", retention="1 day")
  24. def run_threaded(job_func, *args, **kwargs):
  25. """
  26. 在新线程中运行给定的函数,并传递参数。
  27. :param job_func: 要运行的目标函数
  28. :param args: 位置参数
  29. :param kwargs: 关键字参数
  30. """
  31. job_thread = threading.Thread(target=job_func, args=args, kwargs=kwargs)
  32. job_thread.start()
  33. def schedule_task():
  34. """
  35. 两个爬虫模块的启动文件
  36. bidding_main
  37. weika_change_card_by_id_spider
  38. change_card_main
  39. """
  40. # 立即运行一次任务
  41. run_threaded(hoopi_general_main, log=logger)
  42. run_threaded(hoopi_premier_main, log=logger)
  43. #
  44. run_threaded(hoopi_box_main, log=logger)
  45. #
  46. run_threaded(hoopi_mall_card_main, log=logger)
  47. run_threaded(hoopi_mall_group_main, log=logger)
  48. # 每天登录
  49. # login(logger)
  50. schedule.every().day.at("00:00").do(run_threaded, login, log=logger)
  51. # 设置定时任务
  52. schedule.every().day.at("00:01").do(run_threaded, hoopi_general_main, log=logger)
  53. schedule.every().day.at("01:01").do(run_threaded, hoopi_premier_main, log=logger)
  54. schedule.every().day.at("02:01").do(run_threaded, hoopi_box_main, log=logger)
  55. schedule.every().day.at("03:01").do(run_threaded, hoopi_mall_card_main, log=logger)
  56. schedule.every().day.at("04:01").do(run_threaded, hoopi_mall_group_main, log=logger)
  57. schedule.every().day.at("04:01").do(run_threaded, in_general_main, log=logger)
  58. schedule.every().day.at("04:31").do(run_threaded, in_box_main, log=logger)
  59. schedule.every().day.at("05:01").do(run_threaded, in_mall_card_main, log=logger)
  60. schedule.every().day.at("05:31").do(run_threaded, sin_general_main, log=logger)
  61. schedule.every().day.at("06:01").do(run_threaded, sin_mall_card_main, log=logger)
  62. while True:
  63. schedule.run_pending()
  64. time.sleep(1)
  65. if __name__ == '__main__':
  66. schedule_task()