| | |
| | | DABAN_TYPE_EVER_LIMIT_DOWN = 5 |
| | | |
| | | |
| | | def __base_request(url, data, timeout=60): |
| | | def __base_request(url, data, timeout=10): |
| | | DELEGATE = True |
| | | if not DELEGATE: |
| | | headers = { |
| | |
| | | raise Exception("请求出错") |
| | | return response.text |
| | | else: |
| | | fdata = middle_api_protocol.load_kpl(url, data) |
| | | fdata = middle_api_protocol.load_kpl(url, data, timeout) |
| | | return middle_api_protocol.request(fdata) |
| | | |
| | | |
| | |
| | | def __getLimitUpInfo(pidType, page, pageSize): |
| | | data = f"Order=0&a=DailyLimitPerformance&st={pageSize}&apiv=w35&Type=4&c=HomeDingPan&PhoneOSNew=1&DeviceID=a38adabd-99ef-3116-8bb9-6d893c846e24&VerSion=5.13.0.0&Index={(page - 1) * pageSize}&PidType={pidType}&" |
| | | result = __base_request("https://apphq.longhuvip.com/w1/api/index.php", data=data) |
| | | print(result) |
| | | return result |
| | | |
| | | |
| | | def getLimitUpInfoNew(): |
| | | pids = [(1, "首板"), (2, "2连板"), (3, "3连板"), (4, "4连板"), (5, "")] |
| | | fresults = [] |
| | | day = '' |
| | | for pid_info in pids: |
| | | results = [] |
| | | for i in range(10): |
| | | for i in range(100): |
| | | start_time = time.time() |
| | | result = __getLimitUpInfo(pid_info[0], i + 1, 20) |
| | | print("请求用时", time.time() - start_time) |
| | | result = json.loads(result) |
| | | datas = result["info"][0] |
| | | results.extend(datas) |
| | | day = result["info"][1] |
| | | print(datas) |
| | | if len(datas) < 20: |
| | | break |
| | | for r in results: |
| | |
| | | r[i] = kpl_util.filter_block(r[i]) |
| | | fresults.extend(results) |
| | | |
| | | return json.dumps({"errcode": 0, "list": fresults}) |
| | | return json.dumps({"errcode": 0, "list": fresults, "day": day}) |
| | | |
| | | |
| | | def getLimitUpInfo(): |
| | |
| | | |
| | | def getHistoryLimitUpInfo(day): |
| | | fresults = [] |
| | | for i in range(0, 5): |
| | | for i in range(0, 100): |
| | | data = f"Order=1&a=HisDaBanList&st=20&c=HisHomeDingPan&PhoneOSNew=1&DeviceID=a38adabd-99ef-3116-8bb9-6d893c846e23&VerSion=5.8.0.2&Index={i * 20}&Is_st=1&PidType=1&apiv=w32&Type=6&FilterMotherboard=0&Filter=0&FilterTIB=0&Day={day}&FilterGem=0&" |
| | | result = __base_request("https://apphis.longhuvip.com/w1/api/index.php", data=data) |
| | | result = json.loads(result) |
| | |
| | | # 市场行情-精选 |
| | | def getMarketJingXuanRealRankingInfo(orderJingE_DESC=True): |
| | | data = f"Order={1 if orderJingE_DESC else 0}&a=RealRankingInfo&st=20&apiv=w32&Type=5&c=ZhiShuRanking&PhoneOSNew=1&DeviceID=a38adabd-99ef-3116-8bb9-6d893c846e23&VerSion=5.8.0.2&Index=0&ZSType=7&" |
| | | result = __base_request("https://apphq.longhuvip.com/w1/api/index.php", |
| | | data=data) |
| | | return result |
| | | |
| | | |
| | | def getMarketJingXuanRealRankingInfoByTimeRange(startTime, endTime, date, orderJingE_DESC=True): |
| | | data = f"Order={1 if orderJingE_DESC else 0}&st=30&a=RealRankingInfo&apiv=w35&Type=5&Index=0&RStart={startTime}&c=ZhiShuRanking&VerSion=5.13.0.0&REnd={endTime}&Date={date}&PhoneOSNew=1&ZSType=7&DeviceID=d6f20ce9-fa08-31c9-a493-536ebb8e9773&" |
| | | result = __base_request("https://apphq.longhuvip.com/w1/api/index.php", |
| | | data=data) |
| | | return result |
| | |
| | | |
| | | # 获取代码的精选板块 |
| | | # 返回格式:[(板块代码,板块名称,涨幅百分比)] |
| | | def getCodeJingXuanBlocks(code): |
| | | def getCodeJingXuanBlocks(code, jx=True): |
| | | 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) |
| | | print(result) |
| | | return result.get("ListJX") if result.get("ListJX") else result.get("List") |
| | | # print(result) |
| | | if jx: |
| | | return result.get("ListJX") if result.get("ListJX") else result.get("List") |
| | | else: |
| | | fresults = [] |
| | | if result.get("List"): |
| | | fresults.extend(result.get("List")) |
| | | if result.get("ListJX"): |
| | | fresults.extend(result.get("ListJX")) |
| | | return fresults |
| | | |
| | | |
| | | # 获取自由流通市值 |
| | |
| | | if result: |
| | | if "List" in result: |
| | | names = [kpl_util.filter_block(x["CName"]) for x in result["List"]] |
| | | return names |
| | | return names if len(names) < 3 else names[:2] |
| | | return [] |
| | | |
| | | |
| | |
| | | def getCodeBlocks(code): |
| | | blocks = [] |
| | | try: |
| | | _bks = __getConceptJXBK(code) |
| | | _bks = getCodeJingXuanBlocks(code) |
| | | # 取前2个 |
| | | if _bks and len(_bks) > 2: |
| | | _bks = _bks[:2] |
| | | _bks = [x[1] for x in _bks] |
| | | if _bks: |
| | | blocks.extend(_bks) |
| | | except: |
| | | pass |
| | | |
| | | try: |
| | | _bks = __getConceptBK(code) |
| | | if _bks: |
| | | blocks.extend(_bks) |
| | | except: |
| | | pass |
| | | if not blocks: |
| | | try: |
| | | _bks = __getConceptBK(code) |
| | | print(_bks) |
| | | if _bks: |
| | | blocks.extend(_bks) |
| | | except: |
| | | pass |
| | | return list(set(blocks)) |
| | | |
| | | |
| | |
| | | return None |
| | | |
| | | |
| | | def getZLJECodesRank(index): |
| | | """ |
| | | 获取主力金额的排行 |
| | | @return: |
| | | """ |
| | | data = f"Order=1&a=RealRankingInfo_W8&st=50&c=NewStockRanking&PhoneOSNew=1&RStart=0925&DeviceID=d6f20ce9-fa08-31c9-a493-536ebb8e9773&VerSion=5.13.0.0&Isst=0&index={index}&Date=&REnd=1420&apiv=w35&Type=1&FilterMotherboard=0&Filter=0&Ratio=6&FilterTIB=1&FilterGem=0&" |
| | | result = __base_request("https://apphwhq.longhuvip.com/w1/api/index.php", data=data, timeout=3) |
| | | result = json.loads(result) |
| | | return result |
| | | |
| | | |
| | | def getMarketStrong(): |
| | | """ |
| | | 获取市场强度 |
| | | :return: |
| | | """ |
| | | result = __base_request("https://apphwhq.longhuvip.com/w1/api/index.php", |
| | | data=f"a=DiskReview&apiv=w35&c=HomeDingPan&VerSion=5.13.0.0&PhoneOSNew=1&DeviceID=d6f20ce9-fa08-31c9-a493-536ebb8e9773&", |
| | | timeout=3) |
| | | data = json.loads(result) |
| | | return int(data["info"]["strong"]) |
| | | |
| | | |
| | | if __name__ == "__main__": |
| | | print(getLimitUpInfoNew()) |
| | | result =getHistoryLimitUpInfo("2024-02-19") |
| | | print(result) |