weika_spider.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. # -*- coding: utf-8 -*-
  2. # Author : Charley
  3. # Python : 3.8.10
  4. # Date: 2024-09-13 10:46
  5. import time
  6. import schedule
  7. import threading
  8. from loguru import logger
  9. from weika_bidding_spider import bidding_main
  10. from weika_change_card_by_id_spider import change_card_main
  11. from weika_sold_spider import sold_main
  12. logger.remove()
  13. logger.add("./logs/{time:YYYYMMDD}.log", encoding='utf-8', rotation="00:00",
  14. format="[{time:YYYY-MM-DD HH:mm:ss.SSS}] {level} {message}",
  15. level="DEBUG", retention="1 day")
  16. def run_threaded(job_func, *args, **kwargs):
  17. """
  18. 在新线程中运行给定的函数,并传递参数。
  19. :param job_func: 要运行的目标函数
  20. :param args: 位置参数
  21. :param kwargs: 关键字参数
  22. """
  23. job_thread = threading.Thread(target=job_func, args=args, kwargs=kwargs)
  24. job_thread.start()
  25. def schedule_task():
  26. """
  27. 两个爬虫模块的启动文件
  28. bidding_main
  29. weika_change_card_by_id_spider
  30. change_card_main
  31. """
  32. # 立即运行一次任务
  33. # run_threaded(bidding_main, log=logger)
  34. # run_threaded(change_card_main, log=logger)
  35. # run_threaded(sold_main, log=logger)
  36. # bidding_main(log=logger)
  37. # change_card_main(log=logger)
  38. # sold_main(log=logger)
  39. # 设置定时任务
  40. # schedule.every().day.at("00:00").do(run_threaded,clean_logs)
  41. schedule.every().day.at("08:01").do(run_threaded, bidding_main, log=logger)
  42. schedule.every().day.at("00:01").do(run_threaded, change_card_main, log=logger)
  43. schedule.every().day.at("10:01").do(run_threaded, sold_main, log=logger)
  44. while True:
  45. schedule.run_pending()
  46. time.sleep(1)
  47. if __name__ == '__main__':
  48. schedule_task()