wangkun 2 years ago
parent
commit
dc7ea455b9
2 changed files with 86 additions and 18 deletions
  1. 0 0
      main/demo.py
  2. 86 18
      main/gzh_recommend.py

File diff suppressed because it is too large
+ 0 - 0
main/demo.py


+ 86 - 18
main/gzh_recommend.py

@@ -129,26 +129,75 @@ class Recommend:
                 # Common.logger(log_type).info("chlsfile:{}\n", new_file)
                 for content in contents:
                     if content["host"] == "mp.weixin.qq.com" and content["path"] == r"/mp/getappmsgext":
+                        # Common.logger(log_type).info("content:{}\n", content)
                         # query
                         query = content["query"]
+                        # Common.logger(log_type).info("query:{}\n", query)
                         Feishu.update_values("recommend", "gzh", "VzrN7E", "B9:B9", [[query]])
                         Common.logger(log_type).info("保存query成功\n")
 
-                        headers = content["request"]["header"]["headers"]
-
                         # body
                         body = content["request"]["body"]["text"]
                         # Common.logger(log_type).info("body:{}", body)
                         Feishu.update_values("recommend", "gzh", "VzrN7E", "B8:B8", [[body]])
                         Common.logger(log_type).info("保存body成功\n")
 
-                        # x-wechat-key
+                        # referer
+                        headers = content["request"]["header"]["headers"]
+                        # Common.logger(log_type).info("headers:{}", headers)
                         for header in headers:
-                            if header["name"] == "x-wechat-key":
-                                x_wechat_key = header["value"]
-                                Feishu.update_values("recommend", "gzh", "VzrN7E", "B10:B10", [[x_wechat_key]])
-                                Common.logger(log_type).info("保存x_wechat_key成功\n")
+                            # referer
+                            if header["name"] == "referer":
+                                referer = header["value"]
+                                # Common.logger(log_type).info("referer:{}\n", referer)
+                                Feishu.update_values("recommend", "gzh", "VzrN7E", "B7:B7", [[referer]])
+                                Common.logger(log_type).info("保存referer成功\n")
+
+                            # wxuin
+                            if header["name"] == "cookie" and "wxuin" in header["value"]:
+                                wxuin = header["value"].split("wxuin=")[-1]
+                                # Common.logger(log_type).info("wxuin:{}\n", wxuin)
+                                Feishu.update_values("recommend", "gzh", "VzrN7E", "B10:B10", [[wxuin]])
+                                Common.logger(log_type).info("保存wxuin成功\n")
+
+                            # version
+                            if header["name"] == "cookie" and "version" in header["value"]:
+                                version = header["value"].split("version=")[-1]
+                                Common.logger(log_type).info("version:{}\n", version)
+                                Feishu.update_values("recommend", "gzh", "VzrN7E", "B11:B11", [[version]])
+                                Common.logger(log_type).info("保存version成功\n")
+
+                            # pass_ticket
+                            if header["name"] == "cookie" and "pass_ticket" in header["value"]:
+                                pass_ticket = header["value"].split("pass_ticket=")[-1]
+                                Common.logger(log_type).info("pass_ticket:{}\n", pass_ticket)
+                                Feishu.update_values("recommend", "gzh", "VzrN7E", "B5:B5", [[pass_ticket]])
+                                Common.logger(log_type).info("保存pass_ticket成功\n")
+
+                            # appmsg_token
+                            if header["name"] == "cookie" and "appmsg_token" in header["value"]:
+                                appmsg_token = header["value"].split("appmsg_token=")[-1]
+                                Common.logger(log_type).info("appmsg_token:{}\n", appmsg_token)
+                                Feishu.update_values("recommend", "gzh", "VzrN7E", "B4:B4", [[appmsg_token]])
+                                Common.logger(log_type).info("保存appmsg_token成功\n")
+
+                            # appmsg_token
+                            if header["name"] == "cookie" and "wap_sid2" in header["value"]:
+                                wap_sid2 = header["value"].split("wap_sid2=")[-1]
+                                Common.logger(log_type).info("wap_sid2:{}\n", wap_sid2)
+                                Feishu.update_values("recommend", "gzh", "VzrN7E", "B6:B6", [[wap_sid2]])
+                                Common.logger(log_type).info("保存wap_sid2成功\n")
+
                                 return True
+
+                        # x-wechat-key
+                        # for header in headers:
+                        #     if header["name"] == "x-wechat-key":
+                        #         x_wechat_key = header["value"]
+                        #         Common.logger(log_type).info("x_wechat_key:{}\n", x_wechat_key)
+                        #         Feishu.update_values("recommend", "gzh", "VzrN7E", "B12:B12", [[x_wechat_key]])
+                        #         Common.logger(log_type).info("保存x_wechat_key成功\n")
+                        #         return True
             except Exception as e:
                 Common.logger(log_type).error("get_token_v2异常:{}", e)
 
@@ -348,23 +397,42 @@ class Recommend:
             else:
                 # 获取公众号token
                 token_sheet = Feishu.get_values_batch(log_type, "gzh", "VzrN7E")
+                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]
-                x_wechat_key = token_sheet[9][1]
+                wxuin = token_sheet[9][1]
+                version = token_sheet[10][1]
+                # x_wechat_key = token_sheet[11][1]
 
                 url = "https://mp.weixin.qq.com/mp/getappmsgext?"
                 headers = {
+                    "origin": "https://mp.weixin.qq.com",
+                    "x-requested-with": "XMLHttpRequest",
                     "content-type": "application/x-www-form-urlencoded",
-                    "x-wechat-uin": "MjAxMDc0Nzg2MA%3D%3D",
                     "accept": "*/*",
+                    "sec-fetch-site": "same-origin",
+                    "sec-fetch-mode": "cors",
+                    "sec-fetch-dest": "empty",
                     "accept-encoding": "gzip, deflate, br",
-                    "x-wechat-key": x_wechat_key,
-                    "x-wechat-acctmode": "0",
-                    "exportkey": "ASgNaiqfqTTPeQ%2BQ7X3yqzA%3D",
-                    "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(0x18001a2b) NetType/WIFI Language/zh_CN",
-                    "accept-language": "zh-cn"
+                    "user-agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) "
+                                  "Chrome/81.0.4044.138 Safari/537.36 NetType/WIFI "
+                                  "MicroMessenger/7.0.20.1781(0x6700143B) WindowsWechat(0x6307001e)",
+                    "accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
+                    "referer": referer
+                }
+                cookies = {
+                    "rewardsn": "",
+                    "wxtokenkey": "777",
+                    "devicetype": "Windows10x64",
+                    "lang": "zh_CN",
+                    "wxuin": wxuin,
+                    "version": version,
+                    "pass_ticket": pass_ticket,
+                    "appmsg_token": appmsg_token,
+                    "wap_sid2": wap_sid2
                 }
                 # query_string = {
                 #     "f": "json",
@@ -427,8 +495,8 @@ class Recommend:
                 # }
 
                 urllib3.disable_warnings()
-                response = requests.post(url=url, headers=headers, params=query, data=body, proxies=proxies,
-                                         verify=False)
+                response = requests.post(url=url, headers=headers, cookies=cookies, params=query, data=body,
+                                         proxies=proxies, verify=False)
                 if "related_tag_video" not in response.json():
                     Common.logger(log_type).warning("response:{}\n", response.text)
                 elif len(response.json()["related_tag_video"]) == 0:

Some files were not shown because too many files changed in this diff