import json
|
|
import requests
|
|
# 竞价
|
DABAN_TYPE_BIDDING = 8
|
# 涨停
|
DABAN_TYPE_LIMIT_UP = 1
|
# 炸板
|
DABAN_TYPE_OPEN_LIMIT_UP = 2
|
# 跌停
|
DABAN_TYPE_LIMIT_DOWN = 3
|
# 曾跌停
|
DABAN_TYPE_EVER_LIMIT_DOWN = 5
|
|
|
def __base_request(url, data):
|
headers = {
|
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
|
"User-Agent": "Dalvik / 2.1.0(Linux;U;Android 6.0.1;MuMu Build/V417IR)"
|
}
|
# proxies={'https': '192.168.3.251:9002'}
|
# 禁止代理,不然会走本地代理
|
response = requests.post(url, data=data, headers=headers, proxies={"http": None, "https": None})
|
if response.status_code != 200:
|
raise Exception("请求出错")
|
return response.text
|
|
|
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
|
|
|
# 市场行情-行业
|
def getMarketIndustryRealRankingInfo(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=4&"
|
result = __base_request("https://apphq.longhuvip.com/w1/api/index.php",
|
data=data)
|
return 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 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&"
|
result = __base_request("https://apphq.longhuvip.com/w1/api/index.php", data=data)
|
result = json.loads(result)
|
if int(result["errcode"]) != 0:
|
return None
|
return result["ListJX"] if result["ListJX"] else result["List"]
|
|
|
# 获取概念代码
|
def getCodesByPlate(plate_code):
|
data = f"Order=1&a=ZhiShuStockList_W8&st=30&c=ZhiShuRanking&PhoneOSNew=1&old=1&DeviceID=a38adabd-99ef-3116-8bb9-6d893c846e23&VerSion=5.8.0.2&IsZZ=0&Token=0&Index=0&apiv=w32&Type=6&IsKZZType=0&UserID=0&PlateID={plate_code}&"
|
return __base_request("https://apphq.longhuvip.com/w1/api/index.php",
|
data=data)
|
|
|
# 获取概念中的板块强度
|
def getSonPlate(plate_code):
|
data = f"a=SonPlate_Info&apiv=w32&c=ZhiShuRanking&PhoneOSNew=1&DeviceID=a38adabd-99ef-3116-8bb9-6d893c846e23&VerSion=5.8.0.2&PlateID={plate_code}&"
|
return __base_request("https://apphq.longhuvip.com/w1/api/index.php", data=data)
|
|
|
# 市场行情-行业
|
def getMarketIndustryRealRankingInfo(orderJingE_DESC=True):
|
data = f"Order={1 if orderJingE_DESC else 0}&a=RealRankingInfo&st=80&apiv=w32&Type=5&c=ZhiShuRanking&PhoneOSNew=1&DeviceID=a38adabd-99ef-3116-8bb9-6d893c846e23&VerSion=5.8.0.2&Index=0&ZSType=4&"
|
return __base_request("https://apphq.longhuvip.com/w1/api/index.php",
|
data=data)
|
|
|
# 市场行情-精选
|
def getMarketJingXuanRealRankingInfo(orderJingE_DESC=True):
|
data = f"Order={1 if orderJingE_DESC else 0}&a=RealRankingInfo&st=80&apiv=w32&Type=5&c=ZhiShuRanking&PhoneOSNew=1&DeviceID=a38adabd-99ef-3116-8bb9-6d893c846e23&VerSion=5.8.0.2&Index=0&ZSType=7&"
|
return __base_request("https://apphq.longhuvip.com/w1/api/index.php",
|
data=data)
|
|
|
# 获取代码的精选板块
|
# 返回格式:[(板块代码,板块名称,涨幅百分比)]
|
def getCodeJingXuanBlocks(code):
|
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")
|
|
|
# 获取自由流通市值
|
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 = json.loads(result)
|
if "real" in result:
|
return result["real"].get("actualcirculation_value")
|
return None
|
|
|
if __name__ == "__main__":
|
print(getStockIDPlate("000333"))
|