run.py 3.5 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 19 >= Common.now.hour >= 0:
  23. # time.sleep(60)
  24. # break
  25. # else:
  26. # 获取视频信息,并下载
  27. get_feeds()
  28. DownloadPlay.download_play_video("prod")
  29. # 请求随机间隔时间
  30. time.sleep(random.randint(31, 40))
  31. # 删除 charles 缓存文件
  32. Common.del_charles_files()
  33. # 删除多余日志
  34. Common.del_logs()
  35. # 统计累计下载数量
  36. Common.kanyikan_download_count()
  37. @classmethod
  38. def download_up_job(cls):
  39. """
  40. 上升榜脚本任务
  41. """
  42. # while True:
  43. # # 指定时间结束抓取视频
  44. # if 9 >= Common.now.hour >= 0 or 24 >= Common.now.hour >= 20:
  45. # time.sleep(60)
  46. # break
  47. # else:
  48. # 获取视频信息,并下载
  49. get_feeds()
  50. DownloadUp.download_up_video("prod")
  51. # 请求随机间隔时间
  52. time.sleep(random.randint(31, 40))
  53. # 删除 charles 缓存文件
  54. Common.del_charles_files()
  55. # 删除多余日志
  56. Common.del_logs()
  57. # 统计累计下载数量
  58. Common.kanyikan_download_count()
  59. @classmethod
  60. def download_sendtime_job(cls):
  61. """
  62. 发布时间榜脚本任务
  63. """
  64. # while True:
  65. # # 指定时间结束抓取视频
  66. # if 24 >= Common.now.hour >= 10:
  67. # time.sleep(60)
  68. # break
  69. # else:
  70. # 获取视频信息,并下载
  71. get_feeds()
  72. DownloadSendtime.download_sendtime_video("prod")
  73. # 请求随机间隔时间
  74. time.sleep(random.randint(31, 40))
  75. # 删除 charles 缓存文件
  76. Common.del_charles_files()
  77. # 删除多余日志
  78. Common.del_logs()
  79. # 统计累计下载数量
  80. Common.kanyikan_download_count()
  81. @classmethod
  82. def main(cls):
  83. """
  84. - 1.凌晨0点-10点 3日内播放大于2万 爬取
  85. - 2.早上10点-20点 内容上升榜 爬取
  86. - 3.晚上20点-24点 15万播放爬取
  87. """
  88. while True:
  89. while True:
  90. if 9 >= Common.now.hour >= 0:
  91. Common.crawler_log().info("开始抓取3天榜单视频\n")
  92. time.sleep(1)
  93. cls.download_sendtime_job()
  94. elif 19 >= Common.now.hour >= 10:
  95. Common.crawler_log().info("开始抓取上升榜视频\n")
  96. time.sleep(1)
  97. cls.download_up_job()
  98. elif 24 >= Common.now.hour >= 20:
  99. Common.crawler_log().info("开始抓取播放量视频\n")
  100. time.sleep(1)
  101. cls.download_play_job()
  102. else:
  103. Common.crawler_log().info("结束今天抓取及上传任务\n")
  104. time.sleep(60)
  105. break
  106. if __name__ == "__main__":
  107. main = Main()
  108. main.main()