run.py 3.8 KB

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