| 
														
															@@ -15,18 +15,40 @@ from hashlib import md5 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import requests 
														 | 
														
														 | 
														
															 import requests 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import urllib3 
														 | 
														
														 | 
														
															 import urllib3 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 from requests.adapters import HTTPAdapter 
														 | 
														
														 | 
														
															 from requests.adapters import HTTPAdapter 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 sys.path.append(os.getcwd()) 
														 | 
														
														 | 
														
															 sys.path.append(os.getcwd()) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-from common.scheduling_db import  MysqlHelper 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+from common.scheduling_db import MysqlHelper 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 from common.common import Common 
														 | 
														
														 | 
														
															 from common.common import Common 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 from common.feishu import Feishu 
														 | 
														
														 | 
														
															 from common.feishu import Feishu 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 from common.publish import Publish 
														 | 
														
														 | 
														
															 from common.publish import Publish 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+from common.public import get_user_from_mysql, get_config_from_mysql, download_rule 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-class SchedulingFollow: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+class ScheduleXiguaFollow: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     # 个人主页视频翻页参数 
														 | 
														
														 | 
														
															     # 个人主页视频翻页参数 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     offset = 0 
														 | 
														
														 | 
														
															     offset = 0 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     platform = "西瓜视频" 
														 | 
														
														 | 
														
															     platform = "西瓜视频" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    @classmethod 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    def download_rule(cls, video_info_dict, rule_dict): 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        if video_info_dict['play_cnt'] >= rule_dict['play_cnt']['min']: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            if video_info_dict['comment_cnt'] >= rule_dict['comment_cnt']['min']: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                if video_info_dict['like_cnt'] >= rule_dict['like_cnt']['min']: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    if video_info_dict['duration'] >= rule_dict['duration']['min']: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        if video_info_dict['video_width'] >= rule_dict['width']['min'] \ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                or video_info_dict['video_height'] >= rule_dict['height']['min']: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            return True 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        else: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            return False 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    else: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        return False 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                else: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    return False 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            else: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                return False 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        else: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            return False 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     @classmethod 
														 | 
														
														 | 
														
															     @classmethod 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     def get_users(cls, log_type, crawler, task, env): 
														 | 
														
														 | 
														
															     def get_users(cls, log_type, crawler, task, env): 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         link_list = task['spider_link'] 
														 | 
														
														 | 
														
															         link_list = task['spider_link'] 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -50,64 +72,6 @@ class SchedulingFollow: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         Common.logger(log_type, crawler).info(f"user_list:{user_list}") 
														 | 
														
														 | 
														
															         Common.logger(log_type, crawler).info(f"user_list:{user_list}") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         return user_list 
														 | 
														
														 | 
														
															         return user_list 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    # 下载规则 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    @classmethod 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    def download_rule_scheduling(cls, video_info_dict, task): 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        try: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            play_cnt_min = int(task['play_cnt']['min']) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        except: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            play_cnt_min = 0 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        try: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            video_like_min = int(task['video_like']['min']) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        except: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            video_like_min = 0 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        try: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            share_cnt_min = int(task['share_cnt']['min']) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        except: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            share_cnt_min = 0 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        try: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            video_width_min = int(task['video_width']['min']) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        except: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            video_width_min = 0 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        try: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            video_height_min = task['video_height']['min'] 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        except: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            video_height_min = 0 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        try: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            duration_min = int(task['duration_min']) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        except: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            duration_min = 0 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        try: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            duration_max = int(task['duration_max']) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        except: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            duration_max = 1000000000 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        if int(video_info_dict['play_cnt']) >= play_cnt_min: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            if int(video_info_dict['like_cnt']) >= video_like_min: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                if int(video_info_dict['share_cnt']) >= share_cnt_min: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    if duration_max >= int(video_info_dict['duration']) >= duration_min: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        if int(video_info_dict['video_width']) >= video_width_min: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            if int(video_info_dict['video_height']) >= video_height_min: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                return True 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            else: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                return False 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        else: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            return False 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    else: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        return False 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                else: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    return False 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            else: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                return False 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        else: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            return False 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     # 过滤词库 
														 | 
														
														 | 
														
															     # 过滤词库 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     @classmethod 
														 | 
														
														 | 
														
															     @classmethod 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     def filter_words(cls, log_type, crawler): 
														 | 
														
														 | 
														
															     def filter_words(cls, log_type, crawler): 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -197,7 +161,8 @@ class SchedulingFollow: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             # max_retries=3 重试3次 
														 | 
														
														 | 
														
															             # max_retries=3 重试3次 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             s.mount('http://', HTTPAdapter(max_retries=3)) 
														 | 
														
														 | 
														
															             s.mount('http://', HTTPAdapter(max_retries=3)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             s.mount('https://', HTTPAdapter(max_retries=3)) 
														 | 
														
														 | 
														
															             s.mount('https://', HTTPAdapter(max_retries=3)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            response = s.get(url=url, headers=headers, params=params, cookies=cookies, verify=False, proxies=Common.tunnel_proxies(), timeout=5) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            response = s.get(url=url, headers=headers, params=params, cookies=cookies, verify=False, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                             proxies=Common.tunnel_proxies(), timeout=5) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             response.close() 
														 | 
														
														 | 
														
															             response.close() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if 'data' not in response.json() or response.json()['data'] == '': 
														 | 
														
														 | 
														
															             if 'data' not in response.json() or response.json()['data'] == '': 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 Common.logger(log_type, crawler).warning('get_video_info: response: {}', response) 
														 | 
														
														 | 
														
															                 Common.logger(log_type, crawler).warning('get_video_info: response: {}', response) 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -212,7 +177,8 @@ class SchedulingFollow: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     video_url_dict["video_height"] = 0 
														 | 
														
														 | 
														
															                     video_url_dict["video_height"] = 0 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 elif 'dash_120fps' in video_info['videoResource']: 
														 | 
														
														 | 
														
															                 elif 'dash_120fps' in video_info['videoResource']: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    if "video_list" in video_info['videoResource']['dash_120fps'] and 'video_4' in video_info['videoResource']['dash_120fps']['video_list']: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    if "video_list" in video_info['videoResource']['dash_120fps'] and 'video_4' in \ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            video_info['videoResource']['dash_120fps']['video_list']: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         video_url = video_info['videoResource']['dash_120fps']['video_list']['video_4']['backup_url_1'] 
														 | 
														
														 | 
														
															                         video_url = video_info['videoResource']['dash_120fps']['video_list']['video_4']['backup_url_1'] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         audio_url = video_info['videoResource']['dash_120fps']['video_list']['video_4']['backup_url_1'] 
														 | 
														
														 | 
														
															                         audio_url = video_info['videoResource']['dash_120fps']['video_list']['video_4']['backup_url_1'] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         if len(video_url) % 3 == 1: 
														 | 
														
														 | 
														
															                         if len(video_url) % 3 == 1: 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -231,7 +197,8 @@ class SchedulingFollow: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         video_url_dict["audio_url"] = audio_url 
														 | 
														
														 | 
														
															                         video_url_dict["audio_url"] = audio_url 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         video_url_dict["video_width"] = video_width 
														 | 
														
														 | 
														
															                         video_url_dict["video_width"] = video_width 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         video_url_dict["video_height"] = video_height 
														 | 
														
														 | 
														
															                         video_url_dict["video_height"] = video_height 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    elif "video_list" in video_info['videoResource']['dash_120fps'] and 'video_3' in video_info['videoResource']['dash_120fps']['video_list']: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    elif "video_list" in video_info['videoResource']['dash_120fps'] and 'video_3' in \ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            video_info['videoResource']['dash_120fps']['video_list']: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         video_url = video_info['videoResource']['dash_120fps']['video_list']['video_3']['backup_url_1'] 
														 | 
														
														 | 
														
															                         video_url = video_info['videoResource']['dash_120fps']['video_list']['video_3']['backup_url_1'] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         audio_url = video_info['videoResource']['dash_120fps']['video_list']['video_3']['backup_url_1'] 
														 | 
														
														 | 
														
															                         audio_url = video_info['videoResource']['dash_120fps']['video_list']['video_3']['backup_url_1'] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         if len(video_url) % 3 == 1: 
														 | 
														
														 | 
														
															                         if len(video_url) % 3 == 1: 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -250,7 +217,8 @@ class SchedulingFollow: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         video_url_dict["audio_url"] = audio_url 
														 | 
														
														 | 
														
															                         video_url_dict["audio_url"] = audio_url 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         video_url_dict["video_width"] = video_width 
														 | 
														
														 | 
														
															                         video_url_dict["video_width"] = video_width 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         video_url_dict["video_height"] = video_height 
														 | 
														
														 | 
														
															                         video_url_dict["video_height"] = video_height 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    elif "video_list" in video_info['videoResource']['dash_120fps'] and 'video_2' in video_info['videoResource']['dash_120fps']['video_list']: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    elif "video_list" in video_info['videoResource']['dash_120fps'] and 'video_2' in \ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            video_info['videoResource']['dash_120fps']['video_list']: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         video_url = video_info['videoResource']['dash_120fps']['video_list']['video_2']['backup_url_1'] 
														 | 
														
														 | 
														
															                         video_url = video_info['videoResource']['dash_120fps']['video_list']['video_2']['backup_url_1'] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         audio_url = video_info['videoResource']['dash_120fps']['video_list']['video_2']['backup_url_1'] 
														 | 
														
														 | 
														
															                         audio_url = video_info['videoResource']['dash_120fps']['video_list']['video_2']['backup_url_1'] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         if len(video_url) % 3 == 1: 
														 | 
														
														 | 
														
															                         if len(video_url) % 3 == 1: 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -269,7 +237,8 @@ class SchedulingFollow: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         video_url_dict["audio_url"] = audio_url 
														 | 
														
														 | 
														
															                         video_url_dict["audio_url"] = audio_url 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         video_url_dict["video_width"] = video_width 
														 | 
														
														 | 
														
															                         video_url_dict["video_width"] = video_width 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         video_url_dict["video_height"] = video_height 
														 | 
														
														 | 
														
															                         video_url_dict["video_height"] = video_height 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    elif "video_list" in video_info['videoResource']['dash_120fps'] and 'video_1' in video_info['videoResource']['dash_120fps']['video_list']: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    elif "video_list" in video_info['videoResource']['dash_120fps'] and 'video_1' in \ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            video_info['videoResource']['dash_120fps']['video_list']: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         video_url = video_info['videoResource']['dash_120fps']['video_list']['video_1']['backup_url_1'] 
														 | 
														
														 | 
														
															                         video_url = video_info['videoResource']['dash_120fps']['video_list']['video_1']['backup_url_1'] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         audio_url = video_info['videoResource']['dash_120fps']['video_list']['video_1']['backup_url_1'] 
														 | 
														
														 | 
														
															                         audio_url = video_info['videoResource']['dash_120fps']['video_list']['video_1']['backup_url_1'] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         if len(video_url) % 3 == 1: 
														 | 
														
														 | 
														
															                         if len(video_url) % 3 == 1: 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -292,11 +261,17 @@ class SchedulingFollow: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     elif 'dynamic_video' in video_info['videoResource']['dash_120fps'] \ 
														 | 
														
														 | 
														
															                     elif 'dynamic_video' in video_info['videoResource']['dash_120fps'] \ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             and 'dynamic_video_list' in video_info['videoResource']['dash_120fps']['dynamic_video'] \ 
														 | 
														
														 | 
														
															                             and 'dynamic_video_list' in video_info['videoResource']['dash_120fps']['dynamic_video'] \ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             and 'dynamic_audio_list' in video_info['videoResource']['dash_120fps']['dynamic_video'] \ 
														 | 
														
														 | 
														
															                             and 'dynamic_audio_list' in video_info['videoResource']['dash_120fps']['dynamic_video'] \ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            and len(video_info['videoResource']['dash_120fps']['dynamic_video']['dynamic_video_list']) != 0 \ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            and len(video_info['videoResource']['dash_120fps']['dynamic_video']['dynamic_audio_list']) != 0: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        video_url = video_info['videoResource']['dash_120fps']['dynamic_video']['dynamic_video_list'][-1]['backup_url_1'] 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        audio_url = video_info['videoResource']['dash_120fps']['dynamic_video']['dynamic_audio_list'][-1]['backup_url_1'] 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            and len( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        video_info['videoResource']['dash_120fps']['dynamic_video']['dynamic_video_list']) != 0 \ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            and len( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        video_info['videoResource']['dash_120fps']['dynamic_video']['dynamic_audio_list']) != 0: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        video_url = \ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            video_info['videoResource']['dash_120fps']['dynamic_video']['dynamic_video_list'][-1][ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                'backup_url_1'] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        audio_url = \ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            video_info['videoResource']['dash_120fps']['dynamic_video']['dynamic_audio_list'][-1][ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                'backup_url_1'] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         if len(video_url) % 3 == 1: 
														 | 
														
														 | 
														
															                         if len(video_url) % 3 == 1: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             video_url += '==' 
														 | 
														
														 | 
														
															                             video_url += '==' 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         elif len(video_url) % 3 == 2: 
														 | 
														
														 | 
														
															                         elif len(video_url) % 3 == 2: 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -307,8 +282,12 @@ class SchedulingFollow: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             audio_url += '=' 
														 | 
														
														 | 
														
															                             audio_url += '=' 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         video_url = base64.b64decode(video_url).decode('utf8') 
														 | 
														
														 | 
														
															                         video_url = base64.b64decode(video_url).decode('utf8') 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         audio_url = base64.b64decode(audio_url).decode('utf8') 
														 | 
														
														 | 
														
															                         audio_url = base64.b64decode(audio_url).decode('utf8') 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        video_width = video_info['videoResource']['dash_120fps']['dynamic_video']['dynamic_video_list'][-1]['vwidth'] 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        video_height = video_info['videoResource']['dash_120fps']['dynamic_video']['dynamic_video_list'][-1]['vheight'] 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        video_width = \ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            video_info['videoResource']['dash_120fps']['dynamic_video']['dynamic_video_list'][-1][ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                'vwidth'] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        video_height = \ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            video_info['videoResource']['dash_120fps']['dynamic_video']['dynamic_video_list'][-1][ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                'vheight'] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         video_url_dict["video_url"] = video_url 
														 | 
														
														 | 
														
															                         video_url_dict["video_url"] = video_url 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         video_url_dict["audio_url"] = audio_url 
														 | 
														
														 | 
														
															                         video_url_dict["audio_url"] = audio_url 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         video_url_dict["video_width"] = video_width 
														 | 
														
														 | 
														
															                         video_url_dict["video_width"] = video_width 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -320,7 +299,8 @@ class SchedulingFollow: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         video_url_dict["video_height"] = 0 
														 | 
														
														 | 
														
															                         video_url_dict["video_height"] = 0 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 elif 'dash' in video_info['videoResource']: 
														 | 
														
														 | 
														
															                 elif 'dash' in video_info['videoResource']: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    if "video_list" in video_info['videoResource']['dash'] and 'video_4' in video_info['videoResource']['dash']['video_list']: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    if "video_list" in video_info['videoResource']['dash'] and 'video_4' in \ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            video_info['videoResource']['dash']['video_list']: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         video_url = video_info['videoResource']['dash']['video_list']['video_4']['backup_url_1'] 
														 | 
														
														 | 
														
															                         video_url = video_info['videoResource']['dash']['video_list']['video_4']['backup_url_1'] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         audio_url = video_info['videoResource']['dash']['video_list']['video_4']['backup_url_1'] 
														 | 
														
														 | 
														
															                         audio_url = video_info['videoResource']['dash']['video_list']['video_4']['backup_url_1'] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         if len(video_url) % 3 == 1: 
														 | 
														
														 | 
														
															                         if len(video_url) % 3 == 1: 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -339,7 +319,8 @@ class SchedulingFollow: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         video_url_dict["audio_url"] = audio_url 
														 | 
														
														 | 
														
															                         video_url_dict["audio_url"] = audio_url 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         video_url_dict["video_width"] = video_width 
														 | 
														
														 | 
														
															                         video_url_dict["video_width"] = video_width 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         video_url_dict["video_height"] = video_height 
														 | 
														
														 | 
														
															                         video_url_dict["video_height"] = video_height 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    elif "video_list" in video_info['videoResource']['dash'] and 'video_3' in video_info['videoResource']['dash']['video_list']: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    elif "video_list" in video_info['videoResource']['dash'] and 'video_3' in \ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            video_info['videoResource']['dash']['video_list']: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         video_url = video_info['videoResource']['dash']['video_list']['video_3']['backup_url_1'] 
														 | 
														
														 | 
														
															                         video_url = video_info['videoResource']['dash']['video_list']['video_3']['backup_url_1'] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         audio_url = video_info['videoResource']['dash']['video_list']['video_3']['backup_url_1'] 
														 | 
														
														 | 
														
															                         audio_url = video_info['videoResource']['dash']['video_list']['video_3']['backup_url_1'] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         if len(video_url) % 3 == 1: 
														 | 
														
														 | 
														
															                         if len(video_url) % 3 == 1: 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -358,7 +339,8 @@ class SchedulingFollow: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         video_url_dict["audio_url"] = audio_url 
														 | 
														
														 | 
														
															                         video_url_dict["audio_url"] = audio_url 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         video_url_dict["video_width"] = video_width 
														 | 
														
														 | 
														
															                         video_url_dict["video_width"] = video_width 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         video_url_dict["video_height"] = video_height 
														 | 
														
														 | 
														
															                         video_url_dict["video_height"] = video_height 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    elif "video_list" in video_info['videoResource']['dash'] and 'video_2' in video_info['videoResource']['dash']['video_list']: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    elif "video_list" in video_info['videoResource']['dash'] and 'video_2' in \ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            video_info['videoResource']['dash']['video_list']: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         video_url = video_info['videoResource']['dash']['video_list']['video_2']['backup_url_1'] 
														 | 
														
														 | 
														
															                         video_url = video_info['videoResource']['dash']['video_list']['video_2']['backup_url_1'] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         audio_url = video_info['videoResource']['dash']['video_list']['video_2']['backup_url_1'] 
														 | 
														
														 | 
														
															                         audio_url = video_info['videoResource']['dash']['video_list']['video_2']['backup_url_1'] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         if len(video_url) % 3 == 1: 
														 | 
														
														 | 
														
															                         if len(video_url) % 3 == 1: 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -377,7 +359,8 @@ class SchedulingFollow: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         video_url_dict["audio_url"] = audio_url 
														 | 
														
														 | 
														
															                         video_url_dict["audio_url"] = audio_url 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         video_url_dict["video_width"] = video_width 
														 | 
														
														 | 
														
															                         video_url_dict["video_width"] = video_width 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         video_url_dict["video_height"] = video_height 
														 | 
														
														 | 
														
															                         video_url_dict["video_height"] = video_height 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    elif "video_list" in video_info['videoResource']['dash'] and 'video_1' in video_info['videoResource']['dash']['video_list']: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    elif "video_list" in video_info['videoResource']['dash'] and 'video_1' in \ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            video_info['videoResource']['dash']['video_list']: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         video_url = video_info['videoResource']['dash']['video_list']['video_1']['backup_url_1'] 
														 | 
														
														 | 
														
															                         video_url = video_info['videoResource']['dash']['video_list']['video_1']['backup_url_1'] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         audio_url = video_info['videoResource']['dash']['video_list']['video_1']['backup_url_1'] 
														 | 
														
														 | 
														
															                         audio_url = video_info['videoResource']['dash']['video_list']['video_1']['backup_url_1'] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         if len(video_url) % 3 == 1: 
														 | 
														
														 | 
														
															                         if len(video_url) % 3 == 1: 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -403,8 +386,10 @@ class SchedulingFollow: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             and len(video_info['videoResource']['dash']['dynamic_video']['dynamic_video_list']) != 0 \ 
														 | 
														
														 | 
														
															                             and len(video_info['videoResource']['dash']['dynamic_video']['dynamic_video_list']) != 0 \ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             and len(video_info['videoResource']['dash']['dynamic_video']['dynamic_audio_list']) != 0: 
														 | 
														
														 | 
														
															                             and len(video_info['videoResource']['dash']['dynamic_video']['dynamic_audio_list']) != 0: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        video_url = video_info['videoResource']['dash']['dynamic_video']['dynamic_video_list'][-1]['backup_url_1'] 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        audio_url = video_info['videoResource']['dash']['dynamic_video']['dynamic_audio_list'][-1]['backup_url_1'] 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        video_url = video_info['videoResource']['dash']['dynamic_video']['dynamic_video_list'][-1][ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            'backup_url_1'] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        audio_url = video_info['videoResource']['dash']['dynamic_video']['dynamic_audio_list'][-1][ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            'backup_url_1'] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         if len(video_url) % 3 == 1: 
														 | 
														
														 | 
														
															                         if len(video_url) % 3 == 1: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             video_url += '==' 
														 | 
														
														 | 
														
															                             video_url += '==' 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         elif len(video_url) % 3 == 2: 
														 | 
														
														 | 
														
															                         elif len(video_url) % 3 == 2: 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -415,8 +400,10 @@ class SchedulingFollow: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             audio_url += '=' 
														 | 
														
														 | 
														
															                             audio_url += '=' 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         video_url = base64.b64decode(video_url).decode('utf8') 
														 | 
														
														 | 
														
															                         video_url = base64.b64decode(video_url).decode('utf8') 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         audio_url = base64.b64decode(audio_url).decode('utf8') 
														 | 
														
														 | 
														
															                         audio_url = base64.b64decode(audio_url).decode('utf8') 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        video_width = video_info['videoResource']['dash']['dynamic_video']['dynamic_video_list'][-1]['vwidth'] 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        video_height = video_info['videoResource']['dash']['dynamic_video']['dynamic_video_list'][-1]['vheight'] 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        video_width = video_info['videoResource']['dash']['dynamic_video']['dynamic_video_list'][-1][ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            'vwidth'] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        video_height = video_info['videoResource']['dash']['dynamic_video']['dynamic_video_list'][-1][ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            'vheight'] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         video_url_dict["video_url"] = video_url 
														 | 
														
														 | 
														
															                         video_url_dict["video_url"] = video_url 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         video_url_dict["audio_url"] = audio_url 
														 | 
														
														 | 
														
															                         video_url_dict["audio_url"] = audio_url 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         video_url_dict["video_width"] = video_width 
														 | 
														
														 | 
														
															                         video_url_dict["video_width"] = video_width 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -555,7 +542,7 @@ class SchedulingFollow: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             Common.logger(log_type, crawler).error(f'get_video_url:{e}\n') 
														 | 
														
														 | 
														
															             Common.logger(log_type, crawler).error(f'get_video_url:{e}\n') 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     @classmethod 
														 | 
														
														 | 
														
															     @classmethod 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    def get_videolist(cls, log_type, crawler, task, our_uid, out_uid, oss_endpoint, env): 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    def get_videolist(cls, log_type, crawler, strategy, task, our_uid, out_uid, oss_endpoint, env): 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         try: 
														 | 
														
														 | 
														
															         try: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             signature = cls.random_signature() 
														 | 
														
														 | 
														
															             signature = cls.random_signature() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             while True: 
														 | 
														
														 | 
														
															             while True: 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -567,6 +554,8 @@ class SchedulingFollow: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     'maxBehotTime': '0', 
														 | 
														
														 | 
														
															                     'maxBehotTime': '0', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     'order': 'new', 
														 | 
														
														 | 
														
															                     'order': 'new', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     'isHome': '0', 
														 | 
														
														 | 
														
															                     'isHome': '0', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    # 'msToken': 'G0eRzNkw189a8TLaXjc6nTHVMQwh9XcxVAqTbGKi7iPJdQcLwS3-XRrJ3MZ7QBfqErpxp3EX1WtvWOIcZ3NIgr41hgcd-v64so_RRj3YCRw1UsKW8mIssNLlIMspsg==', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    # 'X-Bogus': 'DFSzswVuEkUANjW9ShFTgR/F6qHt', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     '_signature': signature, 
														 | 
														
														 | 
														
															                     '_signature': signature, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 } 
														 | 
														
														 | 
														
															                 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 headers = { 
														 | 
														
														 | 
														
															                 headers = { 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -578,7 +567,8 @@ class SchedulingFollow: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 # max_retries=3 重试3次 
														 | 
														
														 | 
														
															                 # max_retries=3 重试3次 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 s.mount('http://', HTTPAdapter(max_retries=3)) 
														 | 
														
														 | 
														
															                 s.mount('http://', HTTPAdapter(max_retries=3)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 s.mount('https://', HTTPAdapter(max_retries=3)) 
														 | 
														
														 | 
														
															                 s.mount('https://', HTTPAdapter(max_retries=3)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                response = s.get(url=url, headers=headers, params=params, proxies=Common.tunnel_proxies(), verify=False, timeout=5) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                response = s.get(url=url, headers=headers, params=params, proxies=Common.tunnel_proxies(), verify=False, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                 timeout=5) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 response.close() 
														 | 
														
														 | 
														
															                 response.close() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 cls.offset += 30 
														 | 
														
														 | 
														
															                 cls.offset += 30 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 if response.status_code != 200: 
														 | 
														
														 | 
														
															                 if response.status_code != 200: 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -589,7 +579,7 @@ class SchedulingFollow: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     Common.logger(log_type, crawler).warning(f"get_videolist_response:{response.text}\n") 
														 | 
														
														 | 
														
															                     Common.logger(log_type, crawler).warning(f"get_videolist_response:{response.text}\n") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     cls.offset = 0 
														 | 
														
														 | 
														
															                     cls.offset = 0 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     return 
														 | 
														
														 | 
														
															                     return 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                elif 'videoList' not in response.json()["data"]: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                elif not response.json()["data"]['videoList']: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     Common.logger(log_type, crawler).warning(f"get_videolist_response:{response.json()}\n") 
														 | 
														
														 | 
														
															                     Common.logger(log_type, crawler).warning(f"get_videolist_response:{response.json()}\n") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     cls.offset = 0 
														 | 
														
														 | 
														
															                     cls.offset = 0 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     return 
														 | 
														
														 | 
														
															                     return 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -601,7 +591,7 @@ class SchedulingFollow: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             video_title = 0 
														 | 
														
														 | 
														
															                             video_title = 0 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         else: 
														 | 
														
														 | 
														
															                         else: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             video_title = videoList[i]['title'].strip().replace('手游', '') \ 
														 | 
														
														 | 
														
															                             video_title = videoList[i]['title'].strip().replace('手游', '') \ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                .replace('/', '').replace('\/', '').replace('\n', '') 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                .replace('/', '').replace('\/', '').replace('\n', '').replace('"', '').replace("'", '') 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         # video_id 
														 | 
														
														 | 
														
															                         # video_id 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         if 'video_id' not in videoList[i]: 
														 | 
														
														 | 
														
															                         if 'video_id' not in videoList[i]: 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -690,64 +680,44 @@ class SchedulingFollow: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         elif 'url' in videoList[i]['video_detail_info']['detail_video_large_image']: 
														 | 
														
														 | 
														
															                         elif 'url' in videoList[i]['video_detail_info']['detail_video_large_image']: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             cover_url = videoList[i]['video_detail_info']['detail_video_large_image']['url'] 
														 | 
														
														 | 
														
															                             cover_url = videoList[i]['video_detail_info']['detail_video_large_image']['url'] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         else: 
														 | 
														
														 | 
														
															                         else: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            cover_url = videoList[i]['video_detail_info']['detail_video_large_image']['url_list'][0]['url'] 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        min_publish_time = int(task["min_publish_time"]) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        min_publish_day = int(task["min_publish_day"]) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        min_publish_day = (date.today() + timedelta(days=-min_publish_day)).strftime("%Y-%m-%d") 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        min_publish_day = int(time.mktime(time.strptime(min_publish_day, "%Y-%m-%d"))) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        if min_publish_time > 0 and min_publish_day > 0: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            publish_time_rule = min_publish_time 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        elif min_publish_time > 0: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            publish_time_rule = min_publish_time 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        else: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            publish_time_rule = min_publish_day 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        if gid == 0 or video_id == 0 or cover_url == 0: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            Common.logger(log_type, crawler).info('无效视频\n') 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        elif is_top is True and int(publish_time) < publish_time_rule: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            Common.logger(log_type, crawler).info(f'置顶视频,且发布时间超过抓取时间\n') 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        elif int(publish_time) < publish_time_rule: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            Common.logger(log_type, crawler).info(f'发布时间超过抓取时间\n') 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            cls.offset = 0 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            return 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        else: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            video_url_dict = cls.get_video_url(log_type, crawler, gid) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            video_url = video_url_dict["video_url"] 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            audio_url = video_url_dict["audio_url"] 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            video_width = video_url_dict["video_width"] 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            video_height = video_url_dict["video_height"] 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            video_dict = {'video_title': video_title, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                          'video_id': video_id, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                          'gid': gid, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                          'play_cnt': play_cnt, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                          'comment_cnt': comment_cnt, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                          'like_cnt': like_cnt, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                          'share_cnt': share_cnt, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                          'video_width': video_width, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                          'video_height': video_height, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                          'duration': video_duration, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                          'publish_time_stamp': publish_time, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                          'publish_time_str': publish_time_str, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                          'is_top': is_top, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                          'user_name': user_name, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                          'user_id': user_id, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                          'avatar_url': avatar_url, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                          'cover_url': cover_url, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                          'audio_url': audio_url, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                          'video_url': video_url, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                          'session': signature} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            for k, v in video_dict.items(): 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                Common.logger(log_type, crawler).info(f"{k}:{v}") 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            cls.download_publish(log_type=log_type, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                                 crawler=crawler, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                                 video_dict=video_dict, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                                 task=task, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                                 strategy=task["task_name"], 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                                 our_uid=our_uid, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                                 oss_endpoint=oss_endpoint, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                                 env=env) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            cover_url = videoList[i]['video_detail_info']['detail_video_large_image']['url_list'][0][ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                'url'] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        video_url_dict = cls.get_video_url(log_type, crawler, gid) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        video_url = video_url_dict["video_url"] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        audio_url = video_url_dict["audio_url"] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        video_width = video_url_dict["video_width"] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        video_height = video_url_dict["video_height"] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        video_dict = {'video_title': video_title, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                      'video_id': video_id, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                      'gid': gid, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                      'play_cnt': play_cnt, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                      'comment_cnt': comment_cnt, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                      'like_cnt': like_cnt, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                      'share_cnt': share_cnt, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                      'video_width': video_width, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                      'video_height': video_height, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                      'duration': video_duration, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                      'publish_time_stamp': publish_time, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                      'publish_time_str': publish_time_str, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                      'is_top': is_top, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                      'user_name': user_name, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                      'user_id': user_id, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                      'avatar_url': avatar_url, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                      'cover_url': cover_url, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                      'audio_url': audio_url, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                      'video_url': video_url, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                      'session': signature} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        for k, v in video_dict.items(): 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            Common.logger(log_type, crawler).info(f"{k}:{v}") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        cls.download_publish(log_type=log_type, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                             crawler=crawler, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                             strategy=strategy, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                             video_dict=video_dict, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                             task=task, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                             our_uid=our_uid, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                             oss_endpoint=oss_endpoint, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                             env=env) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         except Exception as e: 
														 | 
														
														 | 
														
															         except Exception as e: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             Common.logger(log_type, crawler).error(f"get_videolist:{e}\n") 
														 | 
														
														 | 
														
															             Common.logger(log_type, crawler).error(f"get_videolist:{e}\n") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -761,19 +731,26 @@ class SchedulingFollow: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     @classmethod 
														 | 
														
														 | 
														
															     @classmethod 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     def download_publish(cls, log_type, crawler, strategy, video_dict, task, our_uid, oss_endpoint, env): 
														 | 
														
														 | 
														
															     def download_publish(cls, log_type, crawler, strategy, video_dict, task, our_uid, oss_endpoint, env): 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         try: 
														 | 
														
														 | 
														
															         try: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            if cls.download_rule_scheduling(video_dict, task) is False: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            filter_words = get_config_from_mysql(log_type, crawler, env, text='filter') 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            for filter_word in filter_words: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                if filter_word in video_dict['video_title']: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    Common.logger(log_type, crawler).info('标题已中过滤词:{}\n', video_dict['video_title']) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    return 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            if download_rule(log_type, crawler, video_dict, task['rule_dict']) is False: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 Common.logger(log_type, crawler).info('不满足抓取规则\n') 
														 | 
														
														 | 
														
															                 Common.logger(log_type, crawler).info('不满足抓取规则\n') 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            elif any(word if word in video_dict['video_title'] else False for word in cls.filter_words(log_type, crawler)) is True: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                Common.logger(log_type, crawler).info('标题已中过滤词:{}\n', video_dict['video_title']) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             elif cls.repeat_video(log_type, crawler, video_dict['video_id'], env) != 0: 
														 | 
														
														 | 
														
															             elif cls.repeat_video(log_type, crawler, video_dict['video_id'], env) != 0: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 Common.logger(log_type, crawler).info('视频已下载\n') 
														 | 
														
														 | 
														
															                 Common.logger(log_type, crawler).info('视频已下载\n') 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             else: 
														 | 
														
														 | 
														
															             else: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 # 下载视频 
														 | 
														
														 | 
														
															                 # 下载视频 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                Common.download_method(log_type=log_type, crawler=crawler, text='xigua_video', title=video_dict['video_title'], url=video_dict['video_url']) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                Common.download_method(log_type=log_type, crawler=crawler, text='xigua_video', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                       title=video_dict['video_title'], url=video_dict['video_url']) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 # 下载音频 
														 | 
														
														 | 
														
															                 # 下载音频 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                Common.download_method(log_type=log_type, crawler=crawler, text='xigua_audio', title=video_dict['video_title'], url=video_dict['audio_url']) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                Common.download_method(log_type=log_type, crawler=crawler, text='xigua_audio', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                       title=video_dict['video_title'], url=video_dict['audio_url']) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 # 合成音视频 
														 | 
														
														 | 
														
															                 # 合成音视频 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                Common.video_compose(log_type=log_type, crawler=crawler, video_dir=f"./{crawler}/videos/{video_dict['video_title']}") 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                Common.video_compose(log_type=log_type, crawler=crawler, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                     video_dir=f"./{crawler}/videos/{video_dict['video_title']}") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 md_title = md5(video_dict['video_title'].encode('utf8')).hexdigest() 
														 | 
														
														 | 
														
															                 md_title = md5(video_dict['video_title'].encode('utf8')).hexdigest() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 if os.path.getsize(f"./{crawler}/videos/{md_title}/video.mp4") == 0: 
														 | 
														
														 | 
														
															                 if os.path.getsize(f"./{crawler}/videos/{md_title}/video.mp4") == 0: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     # 删除视频文件夹 
														 | 
														
														 | 
														
															                     # 删除视频文件夹 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -787,7 +764,8 @@ class SchedulingFollow: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 #     shutil.rmtree(f"./{crawler}/videos/{video_dict['video_title']}") 
														 | 
														
														 | 
														
															                 #     shutil.rmtree(f"./{crawler}/videos/{video_dict['video_title']}") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 #     return 
														 | 
														
														 | 
														
															                 #     return 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 # 下载封面 
														 | 
														
														 | 
														
															                 # 下载封面 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                Common.download_method(log_type=log_type, crawler=crawler, text='cover', title=video_dict['video_title'], url=video_dict['cover_url']) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                Common.download_method(log_type=log_type, crawler=crawler, text='cover', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                       title=video_dict['video_title'], url=video_dict['cover_url']) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 # 保存视频信息至txt 
														 | 
														
														 | 
														
															                 # 保存视频信息至txt 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 Common.save_video_info(log_type=log_type, crawler=crawler, video_dict=video_dict) 
														 | 
														
														 | 
														
															                 Common.save_video_info(log_type=log_type, crawler=crawler, video_dict=video_dict) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -884,29 +862,26 @@ class SchedulingFollow: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     @classmethod 
														 | 
														
														 | 
														
															     @classmethod 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     def get_follow_videos(cls, log_type, crawler, task, oss_endpoint, env): 
														 | 
														
														 | 
														
															     def get_follow_videos(cls, log_type, crawler, task, oss_endpoint, env): 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        try: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            user_list = cls.get_users(log_type=log_type, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                      crawler=crawler, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                      task=task, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                      env=env) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            for user in user_list: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                out_uid = user["out_uid"] 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                our_uid = int(user["our_uid"]) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                if our_uid == 0: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    pass 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                else: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    Common.logger(log_type, crawler).info(f"开始抓取 {out_uid} 用户主页视频\n") 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    cls.get_videolist(log_type=log_type, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                      crawler=crawler, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                      task=task, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                      our_uid=our_uid, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                      out_uid=out_uid, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                      oss_endpoint=oss_endpoint, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                      env=env) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    cls.offset = 0 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    time.sleep(1) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        except Exception as e: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            Common.logger(log_type, crawler).error(f"get_follow_videos:{e}\n") 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        user_list = get_user_from_mysql(log_type, crawler, crawler, env) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        strategy = '定向抓取策略' 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        for user in user_list: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            try: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                spider_link = user["link"] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                out_uid = spider_link.split('/')[-1] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                user_name = user["nick_name"] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                our_uid = user["uid"] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                Common.logger(log_type, crawler).info(f"开始抓取 {user_name} 用户主页视频\n") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                cls.get_videolist(log_type=log_type, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                  crawler=crawler, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                  strategy=strategy, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                  task=task, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                  our_uid=our_uid, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                  out_uid=out_uid, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                  oss_endpoint=oss_endpoint, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                  env=env) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                cls.offset = 0 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            except Exception as e: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                Common.logger(log_type, crawler).error(f"get_follow_videos:{e}\n") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 if __name__ == '__main__': 
														 | 
														
														 | 
														
															 if __name__ == '__main__': 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -916,5 +891,5 @@ if __name__ == '__main__': 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     #                            env="dev", 
														 | 
														
														 | 
														
															     #                            env="dev", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     #                            machine="local") 
														 | 
														
														 | 
														
															     #                            machine="local") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    print(SchedulingFollow.repeat_video("follow", "xigua", "v0201ag10000ce3jcjbc77u8jsplpgrg", "dev")) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    print(ScheduleXiguaFollow.repeat_video("follow", "xigua", "v0201ag10000ce3jcjbc77u8jsplpgrg", "dev")) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     pass 
														 | 
														
														 | 
														
															     pass 
														 |