From 3a19a9bd4e301fa7e0d081e9c2aada3ac77700c1 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期二, 26 十二月 2023 18:10:29 +0800 Subject: [PATCH] bug修复 --- third_data/kpl_api.py | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 106 insertions(+), 9 deletions(-) diff --git a/third_data/kpl_api.py b/third_data/kpl_api.py index e23fc69..3bd6925 100644 --- a/third_data/kpl_api.py +++ b/third_data/kpl_api.py @@ -1,9 +1,10 @@ import json +import time import requests +import constant from utils import middle_api_protocol - # 绔炰环 DABAN_TYPE_BIDDING = 8 @@ -17,7 +18,7 @@ DABAN_TYPE_EVER_LIMIT_DOWN = 5 -def __base_request(url, data): +def __base_request(url, data, timeout=60): DELEGATE = True if not DELEGATE: headers = { @@ -26,7 +27,8 @@ } # proxies={'https': '192.168.3.251:9002'} # 绂佹浠g悊锛屼笉鐒朵細璧版湰鍦颁唬鐞� - response = requests.post(url, data=data, headers=headers, proxies={"http": None, "https": None}) + response = requests.post(url, data=data, headers=headers, proxies={"http": None, "https": None}, + timeout=timeout) if response.status_code != 200: raise Exception("璇锋眰鍑洪敊") return response.text @@ -35,12 +37,29 @@ return middle_api_protocol.request(fdata) -def daBanList(pidType): - data = "Order=1&a=DaBanList&st=50&c=HomeDingPan&PhoneOSNew=1&DeviceID=a38adabd-99ef-3116-8bb9-6d893c846e23" \ - f"&VerSion=5.8.0.2&Index=0&Is_st=1&PidType={pidType}&apiv=w32&Type=4&FilterMotherboard=0&Filter=0&FilterTIB=0" \ +def daBanList(pidType, page_size=50, index=0): + data = f"Order=1&a=DaBanList&st={page_size}&c=HomeDingPan&PhoneOSNew=1&DeviceID=a38adabd-99ef-3116-8bb9-6d893c846e23" \ + f"&VerSion=5.8.0.2&Index={index}&Is_st=1&PidType={pidType}&apiv=w32&Type=4&FilterMotherboard=0&Filter=0&FilterTIB=0" \ "&FilterGem=0 " result = __base_request("https://apphq.longhuvip.com/w1/api/index.php", data=data) return result + + +def getLimitUpInfo(): + list_ = [] + page_size = 50 + MAX_SIZE = 150 + for i in range(0, 10): + result_str = daBanList(DABAN_TYPE_LIMIT_UP, page_size=page_size, index=len(list_)) + result = json.loads(result_str) + temp_list = result["list"] + list_ += temp_list + if len(temp_list) < page_size: + result['list'] = list_ + return json.dumps(result) + elif len(list_) > MAX_SIZE: + return json.dumps(result) + return None # 甯傚満琛屾儏-琛屼笟 @@ -102,18 +121,96 @@ data = f"a=GetStockIDPlate&apiv=w32&Type=2&c=StockL2Data&StockID={code}&PhoneOSNew=1&UserID=0&DeviceID=a38adabd-99ef-3116-8bb9-6d893c846e23&VerSion=5.8.0.2&Token=0&" result = __base_request("https://apphq.longhuvip.com/w1/api/index.php", data=data) result = json.loads(result) - return result.get("ListJX") + print(result) + return result.get("ListJX") if result.get("ListJX") else result.get("List") # 鑾峰彇鑷敱娴侀�氬競鍊� def getZYLTAmount(code): data = f"a=GetStockPanKou_Narrow&apiv=w32&c=StockL2Data&VerSion=5.8.0.2&State=1&PhoneOSNew=1&DeviceID=a38adabd-99ef-3116-8bb9-6d893c846e23&StockID={code}&" - result = __base_request("https://apphq.longhuvip.com/w1/api/index.php", data=data) + result = __base_request("https://apphq.longhuvip.com/w1/api/index.php", data=data, timeout=3) result = json.loads(result) if "real" in result: return result["real"].get("actualcirculation_value") return None +# 鑾峰彇F10涓殑绮鹃�夋澘鍧� +def __getConceptJXBK(code): + data = f"a=GetConceptJXBKw23&apiv=w32&c=StockF10Basic&StockID={code}&PhoneOSNew=1&DeviceID=a38adabd-99ef-3116-8bb9-6d893c846e23&VerSion=5.8.0.2&" + result = __base_request("https://apparticle.longhuvip.com/w1/api/index.php", data=data, timeout=3) + result = json.loads(result) + if result: + if "List" in result: + names = [x["CName"].replace("姒傚康", "") for x in result["List"]] + return names + return [] + + +# 鑾峰彇F10甯歌鏉垮潡 +def __getConceptBK(code): + data = f"a=GetConceptw23&apiv=w32&c=StockF10Basic&StockID={code}&PhoneOSNew=1&DeviceID=a38adabd-99ef-3116-8bb9-6d893c846e23&VerSion=5.8.0.2&" + result = __base_request("https://apparticle.longhuvip.com/w1/api/index.php", data=data, timeout=3) + result = json.loads(result) + if result: + if "List" in result: + names = [x["CName"].replace("姒傚康", "") for x in result["List"]] + return names + return [] + + +# 鑾峰彇浠g爜鐨勬澘鍧� +def getCodeBlocks(code): + blocks = [] + try: + _bks = __getConceptJXBK(code) + if _bks: + blocks.extend(_bks) + except: + pass + + try: + _bks = __getConceptBK(code) + if _bks: + blocks.extend(_bks) + except: + pass + return list(set(blocks)) + + +# 鑾峰彇F10閲岄潰鐨勫ぇ浜嬩欢 +def __getF10BigReminders(code): + data = f"a=BigReminder&st=25&apiv=w32&c=StockF10Basic&StockID={code}&PhoneOSNew=1&DeviceID=a38adabd-99ef-3116-8bb8-6d893c846e23&VerSion=5.8.0.2&Index=0&" + result = __base_request("https://apparticle.longhuvip.com/w1/api/index.php", data=data, timeout=3) + result = json.loads(result) + if int(result["errcode"]) == 0: + return result["info"] + return None + + +# 鑾峰彇鑲$エ鍑忔寔鏃ユ湡 +def getCodeReductionDate(code): + infos = __getF10BigReminders(code) + if not infos: + return None + keys = ["缁堟", "缁撴潫", "缁撴灉", "涓嶅噺鎸�", "瀹屾垚"] + for info in infos: + if info.get("type") == 5: + title = str(info.get("title")) + if title.find("鍑忔寔") < 0: + continue + wrong = False + for k in keys: + if title.find(k) >= 0: + wrong = True + if wrong: + continue + return info.get("date").split(" ")[0] + return None + + if __name__ == "__main__": - print(len(json.loads(daBanList(DABAN_TYPE_LIMIT_UP))["list"])) + codes = "000422,000536,000619,000766,000892,001255,001258,001300,002288,002442,002584,002632,002771,002942,300505,300949,600293,600610,600679,600769,603168,603188,603291,603329,603392,603518,603759,603767,603836,603839,603938,605218,688655" + codes = codes.split(",") + for code in codes: + print(code, getCodeReductionDate(code)) -- Gitblit v1.8.0