Browse Source

增加异常处理

zhangyong 9 months ago
parent
commit
62d79fa849
1 changed files with 57 additions and 54 deletions
  1. 57 54
      channel_ks/ks_feed_list.py

+ 57 - 54
channel_ks/ks_feed_list.py

@@ -235,61 +235,64 @@ class KsFeedVideo:
     @classmethod
     def get_data(cls):
         for category_id, category_name in cls.CATEGORY_IDS.items():
-            feed_data = cls.get_feed_list()
-            feed_data = json.loads(feed_data)
-            feeds = feed_data['feeds']
-            for feed in feeds:
-                photo_id = feed["photo_id"]  # 视频ID
-                status = sqlCollect.is_used(photo_id)
-                if status:
-                    continue
-                user_name = feed["user_name"]  # 用户名
-                user_sex = feed["user_sex"]  # 性别 F为女,U为男
-                time_data = feed["time"]  # 发布时间
-                caption = feed["caption"]  # 标题
-                view_count = feed["view_count"]  # 浏览数
-                like_count = feed["like_count"]  # 点赞数
-                share_count = feed["share_count"]  # 分享数
-                duration = feed["duration"]  # 时长/秒
-                duration = cls.milliseconds_to_seconds(duration)
-                main_mv_url = feed["main_mv_url"]  # 视频链接
-                thumbnail_url = feed["thumbnail_url"]  # 视频封面
-                user_id = feed["user_id"]  # 用户id非用户主页id
-                time_status = cls.get_video_data(time_data)
-                if time_status:
-                    sqlCollect.insert_ks_data(user_name, user_sex, time_data, caption, view_count, like_count, share_count, duration, main_mv_url, thumbnail_url, user_id, '1', photo_id, category_name, age=None, oss_object=None, video_uid=None)
-                    continue
-                video_percent = '%.2f' % (share_count / like_count)
-                special = float(0.2)
-                if float(video_percent) < special or share_count < 2000 or duration < 30 or duration > 6000:
-                    sqlCollect.insert_ks_data(user_name, user_sex, time_data, caption, view_count, like_count, share_count, duration, main_mv_url, thumbnail_url, user_id, '1', photo_id, category_name, age=None, oss_object=None, video_uid=None)
-                    continue
-                value, age = cls.analyze_photo(photo_id)
-                if value:
-                    sqlCollect.insert_ks_data(user_name, user_sex, time_data, caption, view_count, like_count,
-                                              share_count, duration, main_mv_url, thumbnail_url, user_id, '1',
-                                              photo_id, category_name, age=None, oss_object=None, video_uid=None)
-
-                    continue
-                oss_object_key = Oss.channel_upload_oss(main_mv_url, photo_id)
-                time.sleep(2)
-                oss_object = oss_object_key.get("oss_object_key")
-                pq_id = cls.get_id_by_category(category_name)
-                if pq_id:
-                    video_uid = cls.insert_piaoquantv(oss_object, caption, pq_id, thumbnail_url)
-                    sqlCollect.insert_ks_data(user_name, user_sex, time_data, caption, view_count,
-                                              like_count, share_count, duration, main_mv_url, thumbnail_url,
-                                              user_id, '0', photo_id, category_name, age, oss_object, video_uid)
-                    current_time = datetime.now()
-                    formatted_time = current_time.strftime("%Y-%m-%d %H:%M:%S")
-                    values = [
-                        [category_name, user_name, user_sex, caption, view_count, like_count, share_count, duration,
-                         main_mv_url, thumbnail_url, user_id, age, pq_id, video_uid, time_data, formatted_time]]
-                    Feishu.insert_columns("PlcisKhObhzmBothRutc65sJnph", "823f74", "ROWS", 1, 2)
-                    time.sleep(0.5)
-                    Feishu.update_values("PlcisKhObhzmBothRutc65sJnph", "823f74", "A2:Z2", values)
-            time.sleep(80)
+            try:
+                feed_data = cls.get_feed_list()
+                feed_data = json.loads(feed_data)
+                feeds = feed_data['feeds']
+                for feed in feeds:
+                    photo_id = feed["photo_id"]  # 视频ID
+                    status = sqlCollect.is_used(photo_id)
+                    if status:
+                        continue
+                    user_name = feed["user_name"]  # 用户名
+                    user_sex = feed["user_sex"]  # 性别 F为女,U为男
+                    time_data = feed["time"]  # 发布时间
+                    caption = feed["caption"]  # 标题
+                    view_count = feed["view_count"]  # 浏览数
+                    like_count = feed["like_count"]  # 点赞数
+                    share_count = feed["share_count"]  # 分享数
+                    duration = feed["duration"]  # 时长/秒
+                    duration = cls.milliseconds_to_seconds(duration)
+                    main_mv_url = feed["main_mv_url"]  # 视频链接
+                    thumbnail_url = feed["thumbnail_url"]  # 视频封面
+                    user_id = feed["user_id"]  # 用户id非用户主页id
+                    time_status = cls.get_video_data(time_data)
+                    if time_status:
+                        sqlCollect.insert_ks_data(user_name, user_sex, time_data, caption, view_count, like_count, share_count, duration, main_mv_url, thumbnail_url, user_id, '1', photo_id, category_name, age=None, oss_object=None, video_uid=None)
+                        continue
+                    video_percent = '%.2f' % (share_count / like_count)
+                    special = float(0.2)
+                    if float(video_percent) < special or share_count < 2000 or duration < 30 or duration > 6000:
+                        sqlCollect.insert_ks_data(user_name, user_sex, time_data, caption, view_count, like_count, share_count, duration, main_mv_url, thumbnail_url, user_id, '1', photo_id, category_name, age=None, oss_object=None, video_uid=None)
+                        continue
+                    value, age = cls.analyze_photo(photo_id)
+                    if value:
+                        sqlCollect.insert_ks_data(user_name, user_sex, time_data, caption, view_count, like_count,
+                                                  share_count, duration, main_mv_url, thumbnail_url, user_id, '1',
+                                                  photo_id, category_name, age=None, oss_object=None, video_uid=None)
 
+                        continue
+                    oss_object_key = Oss.channel_upload_oss(main_mv_url, photo_id)
+                    time.sleep(2)
+                    oss_object = oss_object_key.get("oss_object_key")
+                    pq_id = cls.get_id_by_category(category_name)
+                    if pq_id:
+                        video_uid = cls.insert_piaoquantv(oss_object, caption, pq_id, thumbnail_url)
+                        sqlCollect.insert_ks_data(user_name, user_sex, time_data, caption, view_count,
+                                                  like_count, share_count, duration, main_mv_url, thumbnail_url,
+                                                  user_id, '0', photo_id, category_name, age, oss_object, video_uid)
+                        current_time = datetime.now()
+                        formatted_time = current_time.strftime("%Y-%m-%d %H:%M:%S")
+                        values = [
+                            [category_name, user_name, user_sex, caption, view_count, like_count, share_count, duration,
+                             main_mv_url, thumbnail_url, user_id, age, pq_id, video_uid, time_data, formatted_time]]
+                        Feishu.insert_columns("PlcisKhObhzmBothRutc65sJnph", "823f74", "ROWS", 1, 2)
+                        time.sleep(0.5)
+                        Feishu.update_values("PlcisKhObhzmBothRutc65sJnph", "823f74", "A2:Z2", values)
+                time.sleep(80)
+            except Exception as exc:
+                print(f"异常信息: {exc}")
+                continue