Administrator
2024-01-30 21c96ed504f93f16ce6f8a3ccf164a87c9edd9c0
third_data/kpl_api.py
@@ -4,6 +4,7 @@
import requests
import constant
from third_data import kpl_util
from utils import middle_api_protocol
# 竞价
@@ -38,16 +39,51 @@
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" \
    data = f"Order=1&a=DaBanList&st={page_size}&c=HomeDingPan&PhoneOSNew=1&DeviceID=a38adabd-99ef-3116-8bb9-6d893c846e24" \
           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(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 = []
    for pid_info in pids:
        results = []
        for i in range(10):
            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:
            if not r[18] and pid_info[1]:
                r[18] = pid_info[1]
            # 替换掉板块名称
            for i in range(len(r)):
                if type(r[i]) == str:
                    r[i] = kpl_util.filter_block(r[i])
        fresults.extend(results)
    return json.dumps({"errcode": 0, "list": fresults})
def getLimitUpInfo():
    list_ = []
    page_size = 50
    page_size = 20
    MAX_SIZE = 150
    for i in range(0, 10):
        result_str = daBanList(DABAN_TYPE_LIMIT_UP, page_size=page_size, index=len(list_))
@@ -61,9 +97,18 @@
            return json.dumps(result)
    return None
def getHistoryLimitUpInfo(day):
    data = f"Order=1&a=HisDaBanList&st=19&c=HisHomeDingPan&PhoneOSNew=1&DeviceID=a38adabd-99ef-3116-8bb9-6d893c846e23&VerSion=5.8.0.2&Index=0&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)
    fresults = []
    for i in range(0, 5):
        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)
        result = result["list"]
        fresults.extend(result)
        if len(result) < 20:
            break
    return fresults
# 市场行情-行业
@@ -146,7 +191,7 @@
    result = json.loads(result)
    if result:
        if "List" in result:
            names = [x["CName"].replace("概念", "") for x in result["List"]]
            names = [kpl_util.filter_block(x["CName"]) for x in result["List"]]
            return names
    return []
@@ -158,7 +203,7 @@
    result = json.loads(result)
    if result:
        if "List" in result:
            names = [x["CName"].replace("概念", "") for x in result["List"]]
            names = [kpl_util.filter_block(x["CName"]) for x in result["List"]]
            return names
    return []
@@ -214,7 +259,4 @@
if __name__ == "__main__":
    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))
    print(getLimitUpInfoNew())