|
@@ -1,7 +1,9 @@
|
|
|
# -*- coding: utf-8 -*-
|
|
|
# @Author: wangkun
|
|
|
# @Time: 2023/4/21
|
|
|
-import datetime
|
|
|
+from datetime import date, datetime
|
|
|
+from workalendar.asia import China
|
|
|
+import warnings
|
|
|
import os
|
|
|
import sys
|
|
|
import time
|
|
@@ -11,6 +13,15 @@ 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 抓取状态")
|
|
@@ -21,13 +32,13 @@ class WeixinzhishuBot:
|
|
|
|
|
|
first_key_time_str = sheet[1][0]
|
|
|
if first_key_time_str is None:
|
|
|
- if 13 >= datetime.datetime.now().hour >= 11 and datetime.datetime.now().minute >= 20:
|
|
|
+ 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 13 >= datetime.datetime.now().hour >= 11 and datetime.datetime.now().minute >= 20:
|
|
|
+ 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:
|
|
@@ -37,5 +48,4 @@ class WeixinzhishuBot:
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
WeixinzhishuBot.search_key_bot("bot", "weixinzhishu")
|
|
|
-
|
|
|
pass
|