data_assign_main.py 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. from common import Material
  2. from extract_data.douyin.douyin_author import douyinAuthor
  3. from extract_data.kuaishou.kuaishou_author import kuaishouAuthor
  4. from extract_data.zhannei.zhannei_author import ZhanNeiAuthor
  5. import schedule
  6. import time
  7. import concurrent.futures
  8. def douyin_start(user_data):
  9. print(f"执行抖音数据抓取{user_data}")
  10. douyinAuthor.get_videoList(user_data)
  11. def kuaishou_start(user_data):
  12. print(f"执行快手数据抓取{user_data}")
  13. kuaishouAuthor.get_kuaishou_videoList(user_data)
  14. def zhannei_start(user_data):
  15. print(f"执行站内数据抓取{user_data}")
  16. ZhanNeiAuthor.get_zhannei_videoList(user_data)
  17. # data = Material.get_all_gs_user("douyin")
  18. # douyin_start(data[0])
  19. # 定义定时任务
  20. def zhannei_task():
  21. data = Material.get_all_gs_user("zhannei")
  22. # 创建一个线程池
  23. valid_data = [user_data for user_data in data if user_data['sheet'] is None]
  24. with concurrent.futures.ThreadPoolExecutor() as executor:
  25. futures = [executor.submit(zhannei_start, user_data) for user_data in valid_data]
  26. # 等待所有任务执行完成
  27. for future in concurrent.futures.as_completed(futures):
  28. # 获取每个任务的执行结果
  29. result = future.result()
  30. print("处理结果:", result)
  31. print("站内数据抓取定时任务执行完成")
  32. # 定义定时任务
  33. def douyin_task():
  34. data = Material.get_all_gs_user("douyin")
  35. # 创建一个线程池
  36. valid_data = [user_data for user_data in data if user_data['sheet'] is not None]
  37. with concurrent.futures.ThreadPoolExecutor() as executor:
  38. futures = [executor.submit(douyin_start, user_data) for user_data in valid_data]
  39. # 等待所有任务执行完成
  40. for future in concurrent.futures.as_completed(futures):
  41. # 获取每个任务的执行结果
  42. result = future.result()
  43. print("处理结果:", result)
  44. print("抖音数据抓取定时任务执行完成")
  45. # 定义定时任务
  46. def kuanshou_task():
  47. data = Material.get_all_gs_user("kuaishou")
  48. # 创建一个线程池
  49. valid_data = [user_data for user_data in data if user_data['sheet'] is not None]
  50. with concurrent.futures.ThreadPoolExecutor() as executor:
  51. futures = [executor.submit(kuaishou_start, user_data) for user_data in valid_data]
  52. # 等待所有任务执行完成
  53. for future in concurrent.futures.as_completed(futures):
  54. # 获取每个任务的执行结果
  55. result = future.result()
  56. print("处理结果:", result)
  57. print("快手数据抓取定时任务执行完成.")
  58. schedule.every().day.at("19:20").do(kuanshou_task)
  59. schedule.every().day.at("19:30").do(douyin_task)
  60. schedule.every().day.at("18:00").do(zhannei_task)
  61. # 持续运行,直到手动终止
  62. while True:
  63. schedule.run_pending()
  64. time.sleep(1)