start_pokemon_spider.py 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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 jian_pokemon_card_spider import jz_pokemon_main
  10. from tcg_jp_pokemon_spider import jp_pokemon_main
  11. from tcg_us_pokemon_spider import us_pokemon_main
  12. from fan_pokemon_card_spider import fz_pokemon_main
  13. logger.remove()
  14. logger.add("./logs/{time:YYYYMMDD}.log", encoding='utf-8', rotation="00:00",
  15. format="[{time:YYYY-MM-DD HH:mm:ss.SSS}] {level} {message}",
  16. level="DEBUG", retention="1 day")
  17. def run_threaded(job_func, *args, **kwargs):
  18. """
  19. 在新线程中运行给定的函数,并传递参数。
  20. :param job_func: 要运行的目标函数
  21. :param args: 位置参数
  22. :param kwargs: 关键字参数
  23. """
  24. job_thread = threading.Thread(target=job_func, args=args, kwargs=kwargs)
  25. job_thread.start()
  26. def schedule_task():
  27. """
  28. 两个爬虫模块的启动文件
  29. bidding_main
  30. weika_change_card_by_id_spider
  31. change_card_main
  32. """
  33. # 立即运行一次任务
  34. # jp_spider = JPPokemonCardSpider(log=logger)
  35. # run_threaded(jp_spider.run)
  36. # tcg jp/us pokemon 立即运行
  37. run_threaded(jp_pokemon_main(log=logger))
  38. run_threaded(us_pokemon_main(log=logger))
  39. # 设置定时任务
  40. # schedule.every().day.at("02:01").do(run_threaded, JPPokemonCardSpider(log=logger).run)
  41. # schedule.every().day.at("01:01").do(run_threaded, us_pokemon_main, log=logger)
  42. # 20260327重启pokemon任务, jp和us的爬虫任务, 改为从tcg网站获取
  43. # 20260409 tcg jp/us 改为每周一运行
  44. schedule.every().monday.at("02:01").do(run_threaded, jp_pokemon_main, log=logger)
  45. schedule.every().monday.at("01:01").do(run_threaded, us_pokemon_main, log=logger)
  46. schedule.every().day.at("03:01").do(run_threaded, fz_pokemon_main, log=logger)
  47. # schedule.every().day.at("04:01").do(run_threaded, jz_pokemon_main, log=logger)
  48. while True:
  49. schedule.run_pending()
  50. time.sleep(1)
  51. if __name__ == '__main__':
  52. schedule_task()