# -*- coding: utf-8 -*- # @Author: wangkun # @Time: 2022/4/18 import datetime import os import random import sys import time sys.path.append(os.getcwd()) from main.download_sendtime import DownloadSendtime from main.download_up import DownloadUp from main.common import Common from main.download_play import DownloadPlay from main.get_feeds import get_feeds class Main: @classmethod def download_play_job(cls): """ 播放量脚本任务 """ while True: play_now = datetime.datetime.now() # 指定时间结束抓取视频 if play_now.hour == 0: Common.crawler_log().info("结束抓取播放量视频\n") time.sleep(3) break else: # 获取视频信息,并下载 get_feeds() DownloadPlay.download_play_video("prod") # 请求随机间隔时间 time.sleep(random.randint(31, 40)) # 删除 charles 缓存文件 Common.del_charles_files() # 删除多余日志 Common.del_logs() # 统计累计下载数量 Common.kanyikan_download_count() @classmethod def download_up_job(cls): """ 上升榜脚本任务 """ while True: up_now = datetime.datetime.now() # 指定时间结束抓取视频 if up_now.hour > 19: Common.crawler_log().info("结束抓取上升榜视频\n") time.sleep(3) break else: # 获取视频信息,并下载 get_feeds() DownloadUp.download_up_video("prod") # 请求随机间隔时间 time.sleep(random.randint(31, 40)) # 删除 charles 缓存文件 Common.del_charles_files() # 删除多余日志 Common.del_logs() # 统计累计下载数量 Common.kanyikan_download_count() @classmethod def download_sendtime_job(cls): """ 发布时间榜脚本任务 """ while True: sendtime_now = datetime.datetime.now() # 指定时间结束抓取视频 if sendtime_now.hour > 9: Common.crawler_log().info("结束抓取3天榜单视频\n") time.sleep(3) break else: # 获取视频信息,并下载 get_feeds() DownloadSendtime.download_sendtime_video("prod") # 请求随机间隔时间 time.sleep(random.randint(31, 40)) # 删除 charles 缓存文件 Common.del_charles_files() # 删除多余日志 Common.del_logs() # 统计累计下载数量 Common.kanyikan_download_count() @classmethod def main(cls): """ - 1.凌晨0点-10点 3日内播放大于2万 爬取 - 2.早上10点-20点 内容上升榜 爬取 - 3.晚上20点-24点 15万播放爬取 """ while True: while True: main_now = datetime.datetime.now() if 9 >= main_now.hour >= 0: Common.crawler_log().info("开始抓取3天榜单视频\n") time.sleep(1) cls.download_sendtime_job() elif 19 >= main_now.hour >= 10: Common.crawler_log().info("开始抓取上升榜视频\n") time.sleep(1) cls.download_up_job() elif 24 >= main_now.hour >= 20: Common.crawler_log().info("开始抓取播放量视频\n") time.sleep(1) cls.download_play_job() else: Common.crawler_log().info("结束今天抓取及上传任务\n") time.sleep(60) break if __name__ == "__main__": main = Main() main.main()