wangkun 1 year ago
parent
commit
87295ad60c
1 changed files with 39 additions and 36 deletions
  1. 39 36
      shipinhao/shipinhao_recommend/shipinhao_recommend.py

+ 39 - 36
shipinhao/shipinhao_recommend/shipinhao_recommend.py

@@ -94,40 +94,40 @@ class ShipinhaoRecommend:
             pass
 
         for i in range(scan_count):
-            # try:
-                    Common.logger(log_type, crawler).info(f"第{i + 1}条视频")
-                    Common.logging(log_type, crawler, env, f"第{i + 1}条视频")
-                    if len(driver.find_elements(By.ID, "com.tencent.mm:id/dkf")) != 0:
-                        Common.logger(log_type, crawler).info("这是一个直播间,滑动至下一个视频\n")
-                        Common.logging(log_type, crawler, env, "这是一个直播间,滑动至下一个视频\n")
-                        driver.swipe(10, 1600, 10, 300, 200)
-                        continue
-                    video_dict = cls.get_video_info(driver)
-                    for k, v in video_dict.items():
-                        Common.logger(log_type, crawler).info(f"{k}:{v}")
-                    Common.logging(log_type, crawler, env, f"video_dict:{video_dict}")
-
-                    if video_dict["video_title"] is None:
-                        Common.logger(log_type, crawler).info("无效视频")
-                        Common.logging(log_type, crawler, env, "无效视频")
-                    elif download_rule(log_type=log_type, crawler=crawler, video_dict=video_dict, rule_dict=rule_dict) is False:
-                        Common.logger(log_type, crawler).info("不满足抓取规则")
-                        Common.logging(log_type, crawler, env, "不满足抓取规则\n")
-                    elif cls.repeat_out_video_id(log_type, crawler, video_dict["video_id"], env) != 0:
-                        Common.logger(log_type, crawler).info('视频已下载')
-                        Common.logging(log_type, crawler, env, '视频已下载\n')
-                    else:
-                        cls.download_video_list.append(video_dict)
-                    if i+1 == scan_count:
-                        Common.logger(log_type, crawler).info("扫描一轮结束\n")
-                        Common.logging(log_type, crawler, env, "扫描一轮结束\n")
-                        return
-                    Common.logger(log_type, crawler).info(f"已抓取符合规则视频{len(cls.download_video_list)}条,滑动至下一个视频\n")
-                    Common.logging(log_type, crawler, env, f"已抓取符合规则视频{len(cls.download_video_list)}条,滑动至下一个视频\n")
+            try:
+                Common.logger(log_type, crawler).info(f"第{i + 1}条视频")
+                Common.logging(log_type, crawler, env, f"第{i + 1}条视频")
+                if len(driver.find_elements(By.ID, "com.tencent.mm:id/dkf")) != 0:
+                    Common.logger(log_type, crawler).info("这是一个直播间,滑动至下一个视频\n")
+                    Common.logging(log_type, crawler, env, "这是一个直播间,滑动至下一个视频\n")
                     driver.swipe(10, 1600, 10, 300, 200)
-            # except Exception as e:
-            #     Common.logger(log_type, crawler).info(f"扫描单条视频时异常:{e}\n")
-            #     Common.logging(log_type, crawler, env, f"扫描单条视频时异常:{e}\n")
+                    continue
+                video_dict = cls.get_video_info(driver)
+                for k, v in video_dict.items():
+                    Common.logger(log_type, crawler).info(f"{k}:{v}")
+                Common.logging(log_type, crawler, env, f"video_dict:{video_dict}")
+
+                if video_dict["video_title"] is None:
+                    Common.logger(log_type, crawler).info("无效视频")
+                    Common.logging(log_type, crawler, env, "无效视频")
+                elif download_rule(log_type=log_type, crawler=crawler, video_dict=video_dict, rule_dict=rule_dict) is False:
+                    Common.logger(log_type, crawler).info("不满足抓取规则")
+                    Common.logging(log_type, crawler, env, "不满足抓取规则\n")
+                elif cls.repeat_out_video_id(log_type, crawler, video_dict["video_id"], env) != 0:
+                    Common.logger(log_type, crawler).info('视频已下载')
+                    Common.logging(log_type, crawler, env, '视频已下载\n')
+                else:
+                    cls.download_video_list.append(video_dict)
+                if i+1 == scan_count:
+                    Common.logger(log_type, crawler).info("扫描一轮结束\n")
+                    Common.logging(log_type, crawler, env, "扫描一轮结束\n")
+                    return
+                Common.logger(log_type, crawler).info(f"已抓取符合规则视频{len(cls.download_video_list)}条,滑动至下一个视频\n")
+                Common.logging(log_type, crawler, env, f"已抓取符合规则视频{len(cls.download_video_list)}条,滑动至下一个视频\n")
+                driver.swipe(10, 1600, 10, 300, 200)
+            except Exception as e:
+                Common.logger(log_type, crawler).info(f"扫描单条视频时异常:{e}\n")
+                Common.logging(log_type, crawler, env, f"扫描单条视频时异常:{e}\n")
 
 
     @classmethod
@@ -146,9 +146,12 @@ class ShipinhaoRecommend:
             pause_elements = driver.find_elements(By.ID, "com.tencent.mm:id/gpx")
             if len(pause_elements) != 0:
                 pause_elements[0].click()
-                duration_str = driver.find_element(By.ID, "com.tencent.mm:id/l7i").text
-                duration = int(duration_str.split(":")[0]) * 60 + int(duration_str.split(":")[-1])
-                break
+                try:
+                    duration_str = driver.find_element(By.ID, "com.tencent.mm:id/l7i").text
+                    duration = int(duration_str.split(":")[0]) * 60 + int(duration_str.split(":")[-1])
+                    break
+                except NoSuchElementException:
+                    duration = 0
             else:
                 duration = 0