Selaa lähdekoodia

吉祥幸福取消人工更换token

zhangyong 1 vuosi sitten
vanhempi
commit
33f428c0f1
1 muutettua tiedostoa jossa 54 lisäystä ja 3 poistoa
  1. 54 3
      spider/crawler_online/jixiangxingfu.py

+ 54 - 3
spider/crawler_online/jixiangxingfu.py

@@ -50,12 +50,59 @@ class JXXFRecommend(object):
                 token = data_json.get("token")
                 return token
 
+    def logic(self):
+        for i in range(10):
+            app_id = 'wx6692a24ad2a88bfb'
+            js_code = self.get_js_code(app_id)
+            token = self.get_search_params(app_id, js_code)
+            if token:
+                return token
+
+
+    def get_js_code(self, app_id: str) -> str:
+        js_code = ''
+        try:
+            url = 'http://61.48.133.26:30001/GetMiniAppCode'
+            data = {
+                "appid": app_id
+            }
+            response =requests.request(method='POST', url=url, json=data)
+            body = response.content.decode()
+            res_data = json.loads(body)
+            js_code = res_data['GetMiniAppCode']
+
+        except Exception as e:
+            pass
+        return js_code
+
+    def get_search_params(self, app_id: str, js_code: str) -> dict:
+        try:
+            url = f"https://api.huanqiwl.top/index.php?s=mobile/Login/loginToken&code={js_code}&appid={app_id}"
+
+            headers = {
+                'Connection': 'keep-alive',
+                'content-type': 'application/json',
+                'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.48(0x18003030) NetType/WIFI Language/zh_CN',
+                'Referer': 'https://servicewechat.com/wx6692a24ad2a88bfb/5/page-frame.html'
+            }
+
+            response =requests.request(method='GET', headers=headers, url=url, data={})
+            body = response.content.decode()
+            body_json = json.loads(body)
+            data = body_json.get("data")
+            token = data['token']
+
+        except Exception as e:
+            return ''
+
+        return token
+
+
     def get_recommend_list(self):
         """
         获取推荐页视频
         """
-        token = self.get_cookie()
-
+        token = self.logic()
         headers = {
             'Host': 'api.huanqiwl.top',
             'Content-Type': 'application/json',
@@ -71,7 +118,10 @@ class JXXFRecommend(object):
             payload = {}
             response = requests.request("GET", url, headers=headers, data=payload, proxies=tunnel_proxies())
             if "未登录" in response.text:
-                Feishu.bot(self.platform, 'jixiangxingfu', f'吉祥幸福token失效,请及时更换~')
+                self.aliyun_log.logging(
+                    code="3000",
+                    message="抓取单条视频失败, token 失效"
+                    ),
                 break
             for index, video_obj in enumerate(response.json()['data']['list'], 1):
                 try:
@@ -160,3 +210,4 @@ if __name__ == '__main__':
 
     )
     J.get_recommend_list()
+    # J.logic()