|
@@ -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
|
|
|
|
|
|
|
|
|
|