wangkun 2 rokov pred
rodič
commit
b02f3c3419
2 zmenil súbory, kde vykonal 112 pridanie a 201 odobranie
  1. 87 104
      main/demo.py
  2. 25 97
      main/gzh_recommend.py

+ 87 - 104
main/demo.py

@@ -93,47 +93,53 @@ class Demo:
 
             with open(charles_file_dir + new_file[0] + ".txt", encoding='utf-8-sig', errors='ignore') as f:
                 contents = json.load(f, strict=False)
-            print(f"\nnewfile:{new_file}\n")
-            # 定义需要返回的列表
-            request_info = []
             for content in contents:
                 if "mp.weixin.qq.com" in content['host']:
                     if content["path"] == r"/mp/getappmsgext":
+                        # query
+                        query = content["query"]
+                        Feishu.update_values("recommend", "gzh", "VzrN7E", "B9:B9", [[query]])
+
+                        # body
                         headers = content["request"]["header"]["headers"]
+                        body = content["request"]["body"]["text"]
+                        # time.sleep(1)
+                        Feishu.update_values("recommend", "gzh", "VzrN7E", "B8:B8", [[body]])
+
+                        # title / vid
                         title = content["request"]["body"]["text"].split("title=")[-1].split("&ct=")[0]
                         vid = content["request"]["body"]["text"].split("vid=")[-1].split("&is_pay_subscribe")[0]
-                        request_info.append(title)
-                        request_info.append(vid)
+                        # time.sleep(1)
                         Feishu.update_values("recommend", "gzh", "VzrN7E", "B1:B1", [[title]])
-                        time.sleep(1)
+                        # time.sleep(1)
                         Feishu.update_values("recommend", "gzh", "VzrN7E", "B2:B2", [[vid]])
+
                         for h in headers:
                             if h["name"] == "cookie" and "pass_ticket" in h["value"]:
                                 pass_ticket = h["value"].split("pass_ticket=")[-1]
                                 # print(f"pass_ticket:{pass_ticket}")
-                                request_info.append(pass_ticket)
                                 Feishu.update_values("recommend",  "gzh", "VzrN7E", "B5:B5", [[pass_ticket]])
 
+                            if h["name"] == "referer":
+                                referer = h["value"]
+                                # print(f"__biz:{referer}")
+                                Feishu.update_values("recommend", "gzh", "VzrN7E", "B7:B7", [[referer]])
+
                             if h["name"] == "referer":
                                 __biz = h["value"].split("__biz=")[-1].split("&mid=")[0]
                                 # print(f"__biz:{__biz}")
-                                request_info.append(__biz)
                                 Feishu.update_values("recommend", "gzh", "VzrN7E", "B3:B3", [[__biz]])
 
                             if h["name"] == "cookie" and "appmsg_token" in h["value"]:
                                 appmsg_token = h["value"].split("appmsg_token=")[-1]
                                 # print(f"appmsg_token:{appmsg_token}")
-                                request_info.append(appmsg_token)
                                 Feishu.update_values("recommend", "gzh", "VzrN7E", "B4:B4", [[appmsg_token]])
 
                             if h["name"] == "cookie" and "wap_sid2" in h["value"]:
                                 wap_sid2 = h["value"].split("wap_sid2=")[-1]
                                 # print(f"wap_sid2:{wap_sid2}")
-                                request_info.append(wap_sid2)
                                 Feishu.update_values("recommend", "gzh", "VzrN7E", "B6:B6", [[wap_sid2]])
 
-                        return request_info
-
     # 获取视频下载链接
     @classmethod
     def get_url(cls, url):
@@ -159,13 +165,14 @@ class Demo:
     def recommend(cls):
         token_sheet = Feishu.get_values_batch("recommend", "gzh", "VzrN7E")
         title = token_sheet[0][1]
-        # print(title)
-        # title = parse.urlencode(title)
         vid = token_sheet[1][1]
         __biz = token_sheet[2][1]
         appmsg_token = token_sheet[3][1]
         pass_ticket = token_sheet[4][1]
         wap_sid2 = token_sheet[5][1]
+        referer = token_sheet[6][1]
+        body = token_sheet[7][1]
+        query = token_sheet[8][1]
 
         # title = "%25E8%25BF%2599%25E4%25B8%25AA%25E5%25BC%259F%25E6%2591%258A%25E4%25B8%258A%25E8%25BF%2599%25E4%25B8%25AA%25E5%2593%25A5%25E4%25B8%258D%25E7%259F%25A5%25E9%2581%2593%25E6%2598%25AF%25E5%25B9%25B8%25E8%25BF%2590%25E8%25BF%2598%25E6%2598%25AF%25E5%2599%25A9%25E6%25A2%25A6%25E7%259A%2584%25E5%25BC%2580%25E5%25A7%258B"
         # vid = "wxv_2512850656278560768"
@@ -174,12 +181,12 @@ class Demo:
         # pass_ticket = "1VEraA4AwklrT95KI+7WK09zHoybkPgSDgYX/Fw3ArRKYh+QnkI1NXGFHvZ0naeD"
         # wap_sid2 = "CNSn5r4HEooBeV9ISXFxZ1FWX1JPazhCVXlfWW5UU0dSbXpza0lHZnlKSDVUVF9aUndjeDhvbDctc0tfUGlWd09uOTVwcTVxWGVkenB5Nld2YkRKNFBKVk9jZVpJZTZGU2hXUkpnZlB5OTMwSEJXQVpTNS13NnJXY0hiTjJibkJ6U3Z3WllaRkNmcEwzWVNBQUF+MOzurZcGOA1AAQ=="
 
-        print(f"title:{title}")
-        print(f"vid:{vid}")
-        print(f"__biz:{__biz}")
-        print(f"appmsg_token:{appmsg_token}")
-        print(f"pass_ticket:{pass_ticket}")
-        print(f"wap_sid2:{wap_sid2}\n")
+        # print(f"title:{title}")
+        # print(f"vid:{vid}")
+        # print(f"__biz:{__biz}")
+        # print(f"appmsg_token:{appmsg_token}")
+        # print(f"pass_ticket:{pass_ticket}")
+        # print(f"wap_sid2:{wap_sid2}\n")
 
         url = "https://mp.weixin.qq.com/mp/getappmsgext?"
         headers = {
@@ -193,46 +200,22 @@ class Demo:
             "user-agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 "
                           "(KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.26(0x18001a29)"
                           " NetType/WIFI Language/zh_CN",
-            "referer": "https://mp.weixin.qq.com/s?"
-                       "__biz=" + __biz +
-                       "&mid=2247483669"
-                       "&idx=1"
-                       "&sn=b290af5fe2d28a02bf93721a10ce5106"
-                       "&chksm=c0a70b0ef7d0821846725445dfe838e64886f3a4ae12b8277be45f7977fcccc37591c63a526b"
-                       "&sessionid=1659598372"
-                       "&channel_session_id="
-                       "&scene=136"
-                       "&subscene=126"
-                       "&exptype="
-                       "&reloadid=1659598294"
-                       "&reloadseq=4"
-                       "&related_video_source=10"
-                       "&ascene=3"
-                       "&devicetype=iOS14.7.1"
-                       "&version=18001a29"
-                       "&nettype=WIFI"
-                       "&abtest_cookie=AAACAA%3D%3D"
-                       "&lang=zh_CN"
-                       "&session_us=gh_7364edd0ca9f"
-                       "&fontScale=100"
-                       "&exportkey=AQIwyyA%2BcjsvSOsvHeccwiE%3D"
-                       "&pass_ticket=" + pass_ticket +
-                       "&wx_header=3",
-        }
-        query_string = {
-            "f": "json",
-            "mock": "",
-            "uin": "777",
-            "key": "777",
-            "pass_ticket": pass_ticket,
-            "wxtoken": "",
-            "devicetype": "iOS14.7.1",
-            "clientversion": "18001a29",
-            "__biz": __biz,
-            "appmsg_token": appmsg_token,
-            "x5": "0",
-            # "f": "json"
+            "referer": referer,
         }
+        # query_string = {
+        #     "f": "json",
+        #     "mock": "",
+        #     "uin": "777",
+        #     "key": "777",
+        #     "pass_ticket": pass_ticket,
+        #     "wxtoken": "",
+        #     "devicetype": "iOS14.7.1",
+        #     "clientversion": "18001a29",
+        #     "__biz": __biz,
+        #     "appmsg_token": appmsg_token,
+        #     "x5": "0",
+        #     # "f": "json"
+        # }
         cookies = {
             "appmsg_token": appmsg_token,
             "devicetype": "iOS14.7.1",
@@ -244,51 +227,51 @@ class Demo:
             "wxtokenkey": "777",
             "wxuin": "2010747860"
         }
-        form = {
-            "r": "0.7399955678811934",
-            "__biz": __biz,
-            "appmsg_type": "9",
-            "mid": "2247483669",
-            "sn": "b290af5fe2d28a02bf93721a10ce5106",
-            "idx": "1",
-            "scene": "136",
-            "title": title,
-            "ct": "1659387788",
-            "abtest_cookie": "AAACAA==",
-            "devicetype": "iOS14.7.1",
-            "version": "18001a29",
-            "is_need_ticket": "0",
-            "is_need_ad": "1",
-            "comment_id": "0",
-            "is_need_reward": "0",
-            "both_ad": "0",
-            "reward_uin_count": "0",
-            "send_time": "",
-            "msg_daily_idx": "1",
-            "is_original": "0",
-            "is_only_read": "1",
-            "req_id": "0415gcfdToRrDu1wXSkK8VcK",
-            "pass_ticket": pass_ticket,
-            "is_temp_url": "0",
-            "item_show_type": "5",
-            "tmp_version": "1",
-            "more_read_type": "0",
-            "appmsg_like_type": "2",
-            "related_video_sn": "",
-            "related_video_num": "5",
-            "vid": vid,
-            "is_pay_subscribe": "0",
-            "pay_subscribe_uin_count": "0",
-            "has_red_packet_cover": "0",
-            "album_id": "1296223588617486300",
-            "album_video_num": "5",
-            "cur_album_id": "",
-            "is_public_related_video": "0",
-            "encode_info_by_base64": "0",
-            "exptype": ""
-        }
-
-        response = requests.post(url=url, headers=headers, cookies=cookies, params=query_string, data=form)
+        # form = {
+        #     "r": "0.7399955678811934",
+        #     "__biz": __biz,
+        #     "appmsg_type": "9",
+        #     "mid": "2247483669",
+        #     "sn": "b290af5fe2d28a02bf93721a10ce5106",
+        #     "idx": "1",
+        #     "scene": "136",
+        #     "title": title,
+        #     "ct": "1659387788",
+        #     "abtest_cookie": "AAACAA==",
+        #     "devicetype": "iOS14.7.1",
+        #     "version": "18001a29",
+        #     "is_need_ticket": "0",
+        #     "is_need_ad": "1",
+        #     "comment_id": "0",
+        #     "is_need_reward": "0",
+        #     "both_ad": "0",
+        #     "reward_uin_count": "0",
+        #     "send_time": "",
+        #     "msg_daily_idx": "1",
+        #     "is_original": "0",
+        #     "is_only_read": "1",
+        #     "req_id": "0415gcfdToRrDu1wXSkK8VcK",
+        #     "pass_ticket": pass_ticket,
+        #     "is_temp_url": "0",
+        #     "item_show_type": "5",
+        #     "tmp_version": "1",
+        #     "more_read_type": "0",
+        #     "appmsg_like_type": "2",
+        #     "related_video_sn": "",
+        #     "related_video_num": "5",
+        #     "vid": vid,
+        #     "is_pay_subscribe": "0",
+        #     "pay_subscribe_uin_count": "0",
+        #     "has_red_packet_cover": "0",
+        #     "album_id": "1296223588617486300",
+        #     "album_video_num": "5",
+        #     "cur_album_id": "",
+        #     "is_public_related_video": "0",
+        #     "encode_info_by_base64": "0",
+        #     "exptype": ""
+        # }
+
+        response = requests.post(url=url, headers=headers, cookies=cookies, params=query, data=body)
         if "related_tag_video" not in response.json():
             print(f"response:{response.text}\n")
         elif len(response.json()["related_tag_video"]) == 0:

+ 25 - 97
main/gzh_recommend.py

@@ -22,6 +22,7 @@ class Recommend:
     def get_token(cls, log_type):
         # charles 抓包文件保存目录
         charles_file_dir = "./crawler-kanyikan-recommend/chlsfiles/"
+        # charles_file_dir = "../chlsfiles/"
 
         if int(len(os.listdir(charles_file_dir))) == 1:
             Common.logger(log_type).info("未找到chlsfile文件,等待60s")
@@ -43,46 +44,53 @@ class Recommend:
 
                 with open(charles_file_dir + new_file[0] + ".txt", encoding='utf-8-sig', errors='ignore') as f:
                     contents = json.load(f, strict=False)
-                # 定义需要返回的列表
-                request_info = []
                 for content in contents:
                     if "mp.weixin.qq.com" in content['host']:
                         if content["path"] == r"/mp/getappmsgext":
+                            # query
+                            query = content["query"]
+                            Feishu.update_values("recommend", "gzh", "VzrN7E", "B9:B9", [[query]])
+
+                            # body
                             headers = content["request"]["header"]["headers"]
+                            body = content["request"]["body"]["text"]
+                            # time.sleep(1)
+                            Feishu.update_values("recommend", "gzh", "VzrN7E", "B8:B8", [[body]])
+
+                            # title / vid
                             title = content["request"]["body"]["text"].split("title=")[-1].split("&ct=")[0]
                             vid = content["request"]["body"]["text"].split("vid=")[-1].split("&is_pay_subscribe")[0]
-                            request_info.append(title)
-                            request_info.append(vid)
+                            # time.sleep(1)
                             Feishu.update_values("recommend", "gzh", "VzrN7E", "B1:B1", [[title]])
-                            time.sleep(1)
+                            # time.sleep(1)
                             Feishu.update_values("recommend", "gzh", "VzrN7E", "B2:B2", [[vid]])
+
                             for h in headers:
                                 if h["name"] == "cookie" and "pass_ticket" in h["value"]:
                                     pass_ticket = h["value"].split("pass_ticket=")[-1]
                                     # print(f"pass_ticket:{pass_ticket}")
-                                    request_info.append(pass_ticket)
                                     Feishu.update_values("recommend", "gzh", "VzrN7E", "B5:B5", [[pass_ticket]])
 
+                                if h["name"] == "referer":
+                                    referer = h["value"]
+                                    # print(f"__biz:{referer}")
+                                    Feishu.update_values("recommend", "gzh", "VzrN7E", "B7:B7", [[referer]])
+
                                 if h["name"] == "referer":
                                     __biz = h["value"].split("__biz=")[-1].split("&mid=")[0]
                                     # print(f"__biz:{__biz}")
-                                    request_info.append(__biz)
                                     Feishu.update_values("recommend", "gzh", "VzrN7E", "B3:B3", [[__biz]])
 
                                 if h["name"] == "cookie" and "appmsg_token" in h["value"]:
                                     appmsg_token = h["value"].split("appmsg_token=")[-1]
                                     # print(f"appmsg_token:{appmsg_token}")
-                                    request_info.append(appmsg_token)
                                     Feishu.update_values("recommend", "gzh", "VzrN7E", "B4:B4", [[appmsg_token]])
 
                                 if h["name"] == "cookie" and "wap_sid2" in h["value"]:
                                     wap_sid2 = h["value"].split("wap_sid2=")[-1]
                                     # print(f"wap_sid2:{wap_sid2}")
-                                    request_info.append(wap_sid2)
                                     Feishu.update_values("recommend", "gzh", "VzrN7E", "B6:B6", [[wap_sid2]])
 
-                            return request_info
-
             except Exception as e:
                 Common.logger(log_type).error("获取session异常,30s后重试:{}", e)
                 time.sleep(30)
@@ -98,12 +106,13 @@ class Recommend:
                 time.sleep(30)
                 cls.get_recommend(log_type)
             else:
-                title = token_sheet[0][1]
-                vid = token_sheet[1][1]
-                __biz = token_sheet[2][1]
+                # __biz = token_sheet[2][1]
                 appmsg_token = token_sheet[3][1]
                 pass_ticket = token_sheet[4][1]
                 wap_sid2 = token_sheet[5][1]
+                referer = token_sheet[6][1]
+                body = token_sheet[7][1]
+                query = token_sheet[8][1]
 
                 url = "https://mp.weixin.qq.com/mp/getappmsgext?"
                 headers = {
@@ -117,45 +126,7 @@ class Recommend:
                     "user-agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 "
                                   "(KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.26(0x18001a29)"
                                   " NetType/WIFI Language/zh_CN",
-                    "referer": "https://mp.weixin.qq.com/s?"
-                               "__biz=Mzg5MDY2NzY5Nw=="
-                               "&mid=2247484710"
-                               "&idx=1"
-                               "&sn=657a341da42ed071aaa4d3ce853f64f2"
-                               "&chksm=cfd852f8f8afdbeef513340dec8702433bd78137e7b4afb665d1de5014dc6837ed4dcc979684"
-                               "&sessionid=1659509075"
-                               "&channel_session_id="
-                               "&scene=136"
-                               "&subscene="
-                               "&exptype="
-                               "&reloadid=1659509075"
-                               "&reloadseq=2"
-                               "&related_video_source=10"
-                               "&ascene=1"
-                               "&devicetype=iOS14.7.1"
-                               "&version=18001a29"
-                               "&nettype=WIFI"
-                               "&abtest_cookie=AAACAA%3D%3D"
-                               "&lang=zh_CN"
-                               "&session_us=gh_7364edd0ca9f"
-                               "&fontScale=100"
-                               "&exportkey=AdT9lhjADCG9r69d1meNZ5c%3D"
-                               "&pass_ticket=" + pass_ticket +
-                               "&wx_header=3",
-                }
-                query_string = {
-                    "f": "json",
-                    "mock": "",
-                    "uin": "777",
-                    "key": "777",
-                    "pass_ticket": pass_ticket,
-                    "wxtoken": "",
-                    "devicetype": "iOS14.7.1",
-                    "clientversion": "18001a29",
-                    "__biz": __biz,
-                    "appmsg_token": appmsg_token,
-                    "x5": "0",
-                    # "f": "json"
+                    "referer": referer
                 }
                 cookies = {
                     "appmsg_token": appmsg_token,
@@ -168,51 +139,8 @@ class Recommend:
                     "wxtokenkey": "777",
                     "wxuin": "2010747860"
                 }
-                form = {
-                    "r": "0.13440037781889225",
-                    "__biz": __biz,
-                    "appmsg_type": "9",
-                    "mid": "2247484710",
-                    "sn": "657a341da42ed071aaa4d3ce853f64f2",
-                    "idx": "1",
-                    "scene": "136",
-                    "title": title,
-                    "ct": "1654824718",
-                    "abtest_cookie": "AAACAA==",
-                    "devicetype": "iOS14.7.1",
-                    "version": "18001a29",
-                    "is_need_ticket": "0",
-                    "is_need_ad": "1",
-                    "comment_id": "0",
-                    "is_need_reward": "0",
-                    "both_ad": "0",
-                    "reward_uin_count": "0",
-                    "send_time": "",
-                    "msg_daily_idx": "1",
-                    "is_original": "0",
-                    "is_only_read": "1",
-                    "req_id": "0314yH9rphN660ejUCz1hRVD",
-                    "pass_ticket": pass_ticket,
-                    "is_temp_url": "0",
-                    "item_show_type": "5",
-                    "tmp_version": "1",
-                    "more_read_type": "0",
-                    "appmsg_like_type": "2",
-                    "related_video_sn": "",
-                    "related_video_num": "5",
-                    "vid": vid,
-                    "is_pay_subscribe": "0",
-                    "pay_subscribe_uin_count": "0",
-                    "has_red_packet_cover": "0",
-                    "album_id": "1296223588617486300",
-                    "album_video_num": "5",
-                    "cur_album_id": "",
-                    "is_public_related_video": "0",
-                    "encode_info_by_base64": "0",
-                    "exptype": ""
-                }
                 urllib3.disable_warnings()
-                response = requests.post(url=url, headers=headers, cookies=cookies, params=query_string, data=form,
+                response = requests.post(url=url, headers=headers, cookies=cookies, params=query, data=body,
                                          verify=False, proxies=proxies)
 
                 if "related_tag_video" not in response.json():