run.py 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. # -*- coding: utf-8 -*-
  2. # @Author: wangkun
  3. # @Time: 2022/4/18
  4. import datetime
  5. import os
  6. import random
  7. import sys
  8. import time
  9. sys.path.append(os.getcwd())
  10. from main.download_sendtime import DownloadSendtime
  11. from main.download_up import DownloadUp
  12. from main.common import Common
  13. from main.download_play import DownloadPlay
  14. from main.get_feeds import get_feeds
  15. class Main:
  16. @classmethod
  17. def download_play_job(cls):
  18. """
  19. 播放量脚本任务
  20. """
  21. while True:
  22. play_now = datetime.datetime.now()
  23. # 指定时间结束抓取视频
  24. if play_now.hour == 0:
  25. Common.logger().info("结束抓取播放量视频\n")
  26. time.sleep(3)
  27. break
  28. else:
  29. # 获取视频信息,并下载
  30. get_feeds()
  31. DownloadPlay.download_play_video("prod")
  32. # 请求随机间隔时间
  33. time.sleep(random.randint(31, 40))
  34. # 删除 charles 缓存文件
  35. Common.del_charles_files()
  36. # 删除多余日志
  37. Common.del_logs()
  38. @classmethod
  39. def download_up_job(cls):
  40. """
  41. 上升榜脚本任务
  42. """
  43. while True:
  44. up_now = datetime.datetime.now()
  45. # 指定时间结束抓取视频
  46. if up_now.hour > 19:
  47. Common.logger().info("结束抓取上升榜视频\n")
  48. time.sleep(3)
  49. break
  50. else:
  51. # 获取视频信息,并下载
  52. get_feeds()
  53. DownloadUp.download_up_video("prod")
  54. # 请求随机间隔时间
  55. time.sleep(random.randint(31, 40))
  56. # 删除 charles 缓存文件
  57. Common.del_charles_files()
  58. # 删除多余日志
  59. Common.del_logs()
  60. @classmethod
  61. def download_sendtime_job(cls):
  62. """
  63. 发布时间榜脚本任务
  64. """
  65. while True:
  66. sendtime_now = datetime.datetime.now()
  67. # 指定时间结束抓取视频
  68. if sendtime_now.hour > 9:
  69. Common.logger().info("结束抓取3天榜单视频\n")
  70. time.sleep(3)
  71. break
  72. else:
  73. # 获取视频信息,并下载
  74. get_feeds()
  75. DownloadSendtime.download_sendtime_video("prod")
  76. # 请求随机间隔时间
  77. time.sleep(random.randint(31, 40))
  78. # 删除 charles 缓存文件
  79. Common.del_charles_files()
  80. # 删除多余日志
  81. Common.del_logs()
  82. @classmethod
  83. def main(cls):
  84. """
  85. - 1.凌晨0点-10点 3日内播放大于2万 爬取
  86. - 2.早上10点-20点 内容上升榜 爬取
  87. - 3.晚上20点-24点 15万播放爬取
  88. """
  89. while True:
  90. while True:
  91. main_now = datetime.datetime.now()
  92. if 9 >= main_now.hour >= 0:
  93. Common.logger().info("开始抓取3天榜单视频\n")
  94. time.sleep(1)
  95. cls.download_sendtime_job()
  96. elif 19 >= main_now.hour >= 10:
  97. Common.logger().info("开始抓取上升榜视频\n")
  98. time.sleep(1)
  99. cls.download_up_job()
  100. elif 24 >= main_now.hour >= 20:
  101. Common.logger().info("开始抓取播放量视频\n")
  102. time.sleep(1)
  103. cls.download_play_job()
  104. else:
  105. Common.logger().info("结束今天抓取及上传任务\n")
  106. time.sleep(60)
  107. break
  108. if __name__ == "__main__":
  109. main = Main()
  110. main.main()