| 
					
				 | 
			
			
				@@ -120,12 +120,47 @@ class Dy_KS: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             logger.error(f"[+] 快手{url}获取视频链接失败,失败信息{e}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return None, None,None 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @classmethod 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    def get_text_hksp_video(cls, url): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            parsed_url = urlparse(url) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            query_params = parse_qs(parsed_url.query) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            video_id = query_params.get('vid')[0] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            url = "http://8.217.192.46:8889/crawler/hao_kan_shi_pin/detail" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if not video_id or not video_id.strip(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return None, None, None 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            payload = json.dumps({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                "content_id": str(video_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            headers = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                'Content-Type': 'application/json' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            time.sleep(random.uniform(10, 50)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            response = requests.request("POST", url, headers=headers, data=payload, timeout=30) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            response = response.json() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            code = response["code"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if code == 0: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                data = response["data"]["data"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                content_type = data['content_type'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if content_type == 'note': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    return "note", "note" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                video_url = data["video_url_list"][0]["video_url"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                original_title = data["title"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return video_url, original_title, video_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            elif code == 27006: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if "作品不存在" in response['msg'] or "内容不存在" in response['msg'] or "私密作品" in response[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    'msg'] or "该作品仅允许关注者查看" in response['msg']: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    return "作品不存在", None, None 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        except Exception as e: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            logger.error(f"[+] 好看视频{url}获取视频信息失败,失败信息{e}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return None, None, None 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @classmethod 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def get_video_url(cls, data, principal): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             url = data['video_url'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             logger.info(f"[+] url=={url}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if "&vid=" in url or "?modal_id=" in url: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if "&vid=" in url or "?modal_id=" in url or "?vid=" in url: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 host = urlparse(url).netloc 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 logger.info(f"[+] host=={host}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             else: 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -148,11 +183,15 @@ class Dy_KS: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 tag_transport_channel = "快手" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 logger.info(f"[+] {url}开始获取快手视频链接") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 url, original_title, video_id = cls.get_text_ks_video(url=url) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            elif host in ['haokan.baidu.com']: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                tag_transport_channel = "好看视频" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                logger.info(f"[+] {url}开始获取好看视频链接") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                url, original_title, video_id = cls.get_text_hksp_video(url=url) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                logger.error(f"[+] {url}该链接不是抖/快 不做处理") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                logger.error(f"[+] {url}该链接不是抖/快/好看视频 不做处理") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 AliyunLogger.logging(data["name"], principal, "", data["video_url"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                     "不是抖/快不做处理", "1001", str(data)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return "链接不是抖/快",None,None,None 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                     "不是抖/快/好看视频 不做处理", "1001", str(data)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return "链接不是抖/快/好看视频",None,None,None 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if url == "作品不存在": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 return "作品不存在",None,None,None 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return url, original_title, video_id, tag_transport_channel 
			 |