importrequests
importjson
defget_stock_data(date):
url="https://apphis.longhuvip.com/w1/api/index.php"
params= {
'Date': date,
'PhoneOSNew': '2',
'VerSion': '5.11.0.3',
'a': 'GetYTFP_BKHX',
'apiv': 'w33',
'c': 'FuPanLa'
}
headers= {
'Accept-Language': 'zh-Hans-CN;q=1.0',
'Accept': '*/*',
'Connection': 'keep-alive',
'Accept-Encoding': 'gzip;q=1.0, compress;q=0.5',
'User-Agent': 'lhb/5.11.3 (com.kaipanla.www; build:1; iOS 16.3.1) Alamofire/5.11.3'
}
response=requests.get(url, params=params, headers=headers)
ifresponse.status_code==200:
response.encoding='utf-8'# 设置响应的编码格式为utf-8
data=response.json()
returndata
else:
print(f"Failed to retrieve data: {response.status_code}")
returnNone
defprint_stock_data_as_list(stock_data):
print('板块核心')
foriteminstock_data.get('List', []):
print('============================================================')
print(f"概念代码: {item['ZSCode']}, 概念名称: {item['ZSName']}, 涨停家数: {item['Count']}\n事件: {item['Reason']}")
# 在此处对 item['TD'] 按照 'TDType' 字段进行降序排序
sorted_td=sorted(item.get('TD', []), key=lambdax: int(x['TDType']), reverse=True)
fortd_iteminsorted_td:
td_type="妖股"iftd_item['TDType'] =='8'elsetd_item['TDType'] # 如果连板数量为8,打印“妖股”,否则打印实际的连板数量
print(f" 板数: {td_type}")
forstockintd_item.get('Stock', []):
print(f" 股票代码: {stock['StockID']}, 股票名称: {stock['StockName']}", end="") # 不换行
tips_value=stock.get('Tips', '0').strip() # 获取Tips的值并移除两侧的空白字符
iftips_value!='0'andtips_value: # 如果Tips的值不为0且不为空,则显示
print(f", 反包板:{tips_value}")
else:
print() # 如果Tips的值为0或为空,则换行但不显示任何内容
# 使用示例:
date='2023-09-28'
stock_data=get_stock_data(date)
ifstock_data:
print_stock_data_as_list(stock_data)
else:
print("No data retrieved")