瀏覽代碼

发送etl增加三次重试

zhangliang 3 周之前
父節點
當前提交
b58bb4da4b
共有 2 個文件被更改,包括 23 次插入8 次删除
  1. 0 1
      application/common/messageQueue/mq.py
  2. 23 7
      spider/crawler_online/zhongqingkandian.py

+ 0 - 1
application/common/messageQueue/mq.py

@@ -19,7 +19,6 @@ class MQ(object):
                                   "nEbq3xWNQd1qLpdy2u71qFweHkZjSG")
         topic_name = topic_name+"_v2"
         self.producer = self.mq_client.get_producer(self.instance_id, topic_name)
-        self.aliyun_log = AliyunLogger(mode=self.mode, platform=self.platform)
 
     def send_msg(self, video_dict, max_retries = 3):
         """

+ 23 - 7
spider/crawler_online/zhongqingkandian.py

@@ -329,14 +329,30 @@ class ZhongQingKanDianRecommend:
             )
             self.LocalLog.error(f"处理视频对象时发生异常: {e}\n{tb_info}")
 
-
     def convert_number(self, s):
-        if not isinstance(s, str):
+        """解析数字字符串,处理包含'万'的情况"""
+        if isinstance(s, int):  # 如果已经是int,直接返回
             return s
-        try:
-            return float(s.strip('万')) * 10000 if '万' in s else int(s)
-        except ValueError:
-            self.LocalLog.info(f"无法将 '{s}' 转换为有效的数字。")
+        elif isinstance(s, str):  # 如果是字符串,处理'万'
+            if '万' in s:
+                try:
+                    num = float(s.strip('万')) * 10000
+                    return int(num) if num.is_integer() else num  # 整数返回int,小数返回float
+                except ValueError:
+                    print(f"无法将 '{s}' 转换为有效的数字。")
+                    return 0  # 默认返回0或其他默认值
+            else:
+                try:
+                    return int(s)  # 尝试转换为int
+                except ValueError:
+                    try:
+                        return float(s)  # 尝试转换为float
+                    except ValueError:
+                        print(f"'{s}' 不是有效的数字格式。")
+                        return 0  # 默认返回0或其他默认值
+        else:
+            print(f"不支持的类型: {type(s).__name__}")
+            return 0  # 非int/str类型返回默认值
 
 
     def run(self):
@@ -357,6 +373,6 @@ if __name__ == '__main__':
     ZhongQingKanDianRecommend(
         platform="zhongqingkandian",
         mode="recommend",
-        rule_dict={'videos_cnt': {'min': 2, 'max': 0}, 'duration': {'min': 30, 'max': 1200}},
+        rule_dict={'videos_cnt': {'min': 200, 'max': 0}, 'duration': {'min': 30, 'max': 1200}},
         user_list=[{"uid": 81522822, "link": "中青看点推荐", "nick_name": "免不了俗"}]
     ).run()