| | |
| | | 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 = { |
| | |
| | | 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(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(): |
| | |
| | | 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 getStockIDPlate(code): |
| | | data = f"a=GetStockIDPlate_New&apiv=w32&c=StockL2Data&StockID={code}&PhoneOSNew=1&UserID=0&DeviceID=a38adabd-99ef-3116-8bb9-6d893c846e23&VerSion=5.8.0.2&Token=0&" |
| | |
| | | |
| | | # 获取代码的精选板块 |
| | | # 返回格式:[(板块代码,板块名称,涨幅百分比)] |
| | | 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) |
| | | print(_bks) |
| | | _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) |
| | | print(_bks) |
| | | 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)) |
| | | |
| | | |
| | |
| | | |
| | | |
| | | if __name__ == "__main__": |
| | | print(getCodeBlocks("002350")) |
| | | # print(getLimitUpInfoNew()) |
| | | |
| | | # __getConceptBK("300564") |
| | | data = getMarketJingXuanRealRankingInfoByTimeRange("0925", "1000", "2024-11-12") |
| | | data = json.loads(data) |
| | | print(json.loads(data)) |
| | | data = getMarketJingXuanRealRankingInfoByTimeRange("0925", "1500", "2024-11-13") |
| | | print(json.loads(data)) |
| | | data = getMarketJingXuanRealRankingInfoByTimeRange("0925", "1000", "2024-11-13") |
| | | print(json.loads(data)) |
| | | # data=json.loads(data) |
| | | # print(len(data["list"])) |
| | | # data = json.loads(getCodesByPlate("801235")) |
| | | # print(data) |