123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- # -*- coding: utf-8 -*-
- # @Author: wangkun
- # @Time: 2023/4/21
- from datetime import date, datetime
- from workalendar.asia import China
- import warnings
- import os
- import sys
- import time
- sys.path.append(os.getcwd())
- from common.common import Common
- from common.feishu import Feishu
- class WeixinzhishuBot:
- @classmethod
- def check_workday(cls):
- warnings.simplefilter("ignore", UserWarning)
- # 创建中国日历对象
- cal = China()
- # 判断日期是否为法定节假日
- is_workday = cal.is_working_day(date.today())
- return is_workday
- @classmethod
- def search_key_bot(cls, log_type, crawler):
- Common.logger(log_type, crawler).info("开始检测微信指数 Search_Key 抓取状态")
- sheet = Feishu.get_values_batch(log_type, crawler, sheetid="sVL74k")
- if sheet is None:
- Common.logger(log_type, crawler).info(f"Search_Key_sheet:{sheet}\n")
- first_key_time_str = sheet[1][0]
- if first_key_time_str is None:
- if 13 >= datetime.now().hour >= 11 and datetime.now().minute >= 20:
- # Feishu.bot(log_type, crawler, "微信指数 Search_Key is None ~")
- time.sleep(60)
- first_key_time_stamp = int(time.mktime(time.strptime(first_key_time_str, "%Y-%m-%d %H:%M:%S")))
- if int(time.time()) - first_key_time_stamp >= 60*3:
- if cls.check_workday() is True and 13 >= datetime.now().hour >= 11 and datetime.now().minute >= 20:
- Feishu.bot(log_type, crawler, "微信指数 Search_Key 过期啦 ~")
- time.sleep(3600*2)
- else:
- Common.logger(log_type, crawler).info("微信指数 Search_Key 正常")
- Common.logger(log_type, crawler).info("微信指数 Search_Key 抓取状态检测结束\n")
- if __name__ == "__main__":
- WeixinzhishuBot.search_key_bot("bot", "weixinzhishu")
- pass
|