Browse Source

add shipinhao bot

wangkun 2 years ago
parent
commit
5359f32bd7
3 changed files with 48 additions and 23 deletions
  1. 27 23
      README.md
  2. 7 0
      main/feishu_lib.py
  3. 14 0
      main/run_bot.py

+ 27 - 23
README.md

@@ -1,33 +1,37 @@
 # 爬虫监控
+https://git.yishihui.com/Server/crawler_bot.git
 
-https://wangkun@git.yishihui.com/Server/crawler_bot.git
 
+#### 增加监控渠道
+1. feishu_lib:
+   1. 增加爬虫表链接
+   2. 增加飞书路径token: feishu_lib.spreadsheettoken
+   3. 增加机器人消息: feishu_lib.bot
+2. run_bot:
+   1. 增加爬虫最新数据抓取时间: run_bot.get_first_time
+   2. 增加触发机器人报警机制: run_bot.robot_download_sheet
+   3. 主函数增加渠道: run_bot.main
 
-# 依赖库文件
+#### 软件架构
+1. python==3.10 
+2. loguru==0.6.0 
+3. oss2==2.15.0 
+4. requests==2.27.1 
+5. urllib3==1.26.9
 
-python==3.10
-loguru==0.6.0
-oss2==2.15.0
-requests==2.27.1
-urllib3==1.26.9
 
+#### 使用说明
+1. cd ./crawler_bot 
+2. python3 ./main/run_bot.py 
 
-# 执行入口
 
-cd ./crawler_bot
+#### 需求
+2022/9/13
+1. 增加监控渠道: 视频号
 
-python3 ./main/run_bot.py 
+2022/8/19
+1. 增加监控渠道: 公众号 / 微视
 
-
-# 需求
-
-==========2022/8/19===========
-
-增加监控渠道: 公众号 / 微视
-
-
-==========2022/8/10===========
-
-每隔六小时,检查一次已下载表
-
-已下载表的最新一条数据抓取时间,距当前时间超过 24 小时,则触发机器人报警,发送飞书报警消息
+2022/8/10
+1. 每隔六小时,检查一次已下载表 
+2. 已下载表的最新一条数据抓取时间,距当前时间超过 24 小时,则触发机器人报警,发送飞书报警消息

+ 7 - 0
main/feishu_lib.py

@@ -31,6 +31,8 @@ class Feishu:
     crawler_monitor = "https://w42nne6hzg.feishu.cn/sheets/shtcnlZWYazInhf7Z60jkbLRJyd?"
     # 微群视频爬虫表
     crawler_weiqun_video = "https://w42nne6hzg.feishu.cn/sheets/shtcnoKThNquYRweaylMFVyo9Hc?"
+    # 视频号爬虫表
+    crawler_shipinhao = 'https://w42nne6hzg.feishu.cn/sheets/shtcn9rOdZRAGFbRkWpn7hqEHGc?'
 
     # 手机号
     wangkun = "13426262515"
@@ -63,6 +65,8 @@ class Feishu:
             return "shtcnexNXnpDLHhARw0QdiwbYuA"
         elif crawler == "weiqun":
             return "shtcnoKThNquYRweaylMFVyo9Hc"
+        elif crawler == 'shipinhao':
+            return 'shtcn9rOdZRAGFbRkWpn7hqEHGc'
 
     # 获取飞书api token
     @classmethod
@@ -378,6 +382,9 @@ class Feishu:
             elif crawler == "weishi":
                 content = "微视爬虫表"
                 sheet_url = "https://w42nne6hzg.feishu.cn/sheets/shtcn5YSWg91JfVGzj0SFZIRRPh"
+            elif crawler == "shipinhao":
+                content = "视频号爬虫表"
+                sheet_url = "https://w42nne6hzg.feishu.cn/sheets/shtcn9rOdZRAGFbRkWpn7hqEHGc"
             else:
                 content = "小年糕爬虫表"
                 sheet_url = "https://w42nne6hzg.feishu.cn/sheets/shtcnYxiyQ1wLklo1W5Kdqc9cGh"

+ 14 - 0
main/run_bot.py

@@ -65,6 +65,12 @@ class Bot:
                 # 已下载表,最新一条视频抓取时间
                 first_download_time = sheet[1][5]
                 first_download_time = int(time.mktime(time.strptime(first_download_time, "%Y/%m/%d %H:%M:%S")))
+            elif crawler == "shipinhao":
+                sheet = Feishu.get_values_batch(log_type, "shipinhao", "c77cf9")
+                # print(sheet[1])
+                # 已下载表,最新一条视频抓取时间
+                first_download_time = sheet[1][5]
+                first_download_time = int(time.mktime(time.strptime(first_download_time, "%Y/%m/%d %H:%M:%S")))
             else:
                 sheet = Feishu.get_values_batch(log_type, "xiaoniangao", "yatRv2")
                 # 已下载表,最新一条视频抓取时间
@@ -196,6 +202,11 @@ class Bot:
                 Feishu.bot(log_type, crawler, "微视已下载表,超过24小时没有新视频入库了😤")
                 Common.logger(log_type).info("微视已下载表,超过24小时没有新视频入库了😤\n")
 
+            # 视频号爬虫报警
+            elif crawler == "shipinhao" and (int(time.time()) - cls.get_first_time(log_type, crawler) > int(duration)):
+                Feishu.bot(log_type, crawler, "视频号已下载表,超过24小时没有新视频入库了😤")
+                Common.logger(log_type).info("视频号已下载表,超过24小时没有新视频入库了😤\n")
+
         except Exception as e:
             Common.logger(log_type).error("robot_alarm异常:{}", e)
 
@@ -233,6 +244,9 @@ class Bot:
                 Common.logger("bot").info("监控音乐相册已下载表")
                 Bot.robot_download_sheet("bot", "music_album", duration)
 
+                Common.logger("bot").info("监控视频号已下载表")
+                Bot.robot_download_sheet("bot", "shipinhao", duration)
+
                 # Common.logger("bot").info("监控微群视频已下载表")
                 # Bot.robot_download_sheet("bot", "weiqun", duration)