进行获取
请求参数 post json
{ "code": "sz000001", "type": 1}
code 表示股票编码, type 表示类型 1为分时图,2为日k图, 3为 周K图, 4为 月K图。
响应参数是:
{ "code": 20000, "success": true, "message": null, "timestamp": 1783762640916, "traceId": "45f17903-53e5-4f21-b23b-6d36611ee1a2", "timestampStr": "2026-07-11 17:37:20", "exceptionMessage": null, "customInfo": "如果你对我的接口感兴趣,请联系我:+v: yueshushu_top", "data": "data:image/png;base64,R0aj8ikcslsOp/QqHRKrVqv2Kx2y+16v+......"}
三. Python 实现获取股票的实时分时图,日K图数据。
为了方便大家理解和使用, 小亥将采用 streamlit 进行编写相关的脚本, 这样有页面,也方便点击
大家可以通过 AI 自行实现, 小亥这儿提供一个简单的版本。
脚本名称为 stock_kline_chart.py
直接复制粘贴即可
"""===================================================================================股票K线图查询工具===================================================================================功能:输入股票编码,展示分钟K、日K、周K、月K线图接口:POST https://www.yueshushu.top/StockApi/stockCrawler/getStockKline?sign=stockK线类型: type=1: 分钟K线 type=2: 日K线 type=3: 周K线 type=4: 月K线作者:AI助手日期:2026-07-11==================================================================================="""import streamlit as stimport requestsimport base64from io import BytesIO# ===================== 接口配置 =====================# K线图接口地址KLINE_URL = "https://www.yueshushu.top/StockApi/stockCrawler/getStockKline?sign=stock"# ===================== 页面配置 =====================st.set_page_config( page_title="金亥跃江_K线图查询工具", layout="wide", page_icon="📈")# ===================== K线图获取函数 =====================def fetch_kline_image(code: str, kline_type: int) -> bytes: """ 获取K线图图片数据 参数: code: 股票代码,格式如 "sz000001" 或 "sh600000" kline_type: K线类型 1 = 分钟K线 2 = 日K线 3 = 周K线 4 = 月K线 返回: 图片的二进制数据,失败返回None """ # 构建请求体 payload = { "code": code, "type": kline_type } try: # 发送POST请求 response = requests.post(KLINE_URL, json=payload, timeout=30) result = response.json() # 检查响应状态 if result.get("code") == 20000 and result.get("success"): # 获取base64编码的图片数据 base64_data = result.get("data") if not base64_data: return None # 处理base64数据(可能包含前缀) if "base64," in base64_data: img_data = base64_data.split("base64,")[1] else: img_data = base64_data # 解码base64为二进制 image_bytes = base64.b64decode(img_data) return image_bytes else: st.error(f"获取K线图失败: {result.get('message', '未知错误')}") return None except Exception as e: st.error(f"请求异常: {str(e)}") return None# ===================== 主程序 =====================def main(): """ Streamlit应用主函数 """ # ---------- 页面标题 ---------- st.title("📈 金亥跃江_K线图查询工具") st.divider() # ---------- 侧边栏:查询条件 ---------- with st.sidebar: st.header("🔍 查询条件配置") # ---------- 股票代码输入 ---------- stock_code_input = st.text_input( label="股票代码", value="", placeholder="请输入股票代码,如:sz000001" ) # ---------- 查询按钮 ---------- query_btn = st.button("🚀 开始查询", type="primary", use_container_width=True) st.divider() # ---------- K线图类型说明 ---------- with st.expander("📖 K线图类型说明"): st.markdown(""" **K线图类型:** - 🕐 **分钟K**:显示日内分钟级别的走势 - 📅 **日K线**:以每日为单位显示股价走势 - 📆 **周K线**:以每周为单位显示股价走势 - 📆 **月K线**:以每月为单位显示股价走势 **股票代码格式:** - 深圳股票:`sz` 前缀,如 `sz000001` - 上海股票:`sh` 前缀,如 `sh600000` """) # ---------- 执行查询 ---------- if query_btn: # ---------- 输入验证 ---------- if not stock_code_input or len(stock_code_input.strip()) == 0: st.warning("请输入股票代码!") return # 获取股票代码(去除空格并转为小写) raw_code = stock_code_input.strip().lower() # 自动添加交易所前缀 if raw_code.startswith('sz') or raw_code.startswith('sh'): stock_code = raw_code else: # 纯数字代码,根据规则自动添加前缀 # 6开头 -> 上海(sh) # 其他 -> 深圳(sz) if raw_code.startswith('6'): stock_code = f"sh{raw_code}" else: stock_code = f"sz{raw_code}" st.success(f"✅ 正在查询股票: **{stock_code.upper()}** 的K线图...") # ---------- 定义四种K线图 ---------- # key: K线类型编号, value: (标题, 类型名称) kline_types = { 1: ("🕐 分钟K线", "分钟K"), 2: ("📅 日K线", "日K"), 3: ("📆 周K线", "周K"), 4: ("📆 月K线", "月K"), } # ---------- 批量获取K线图 ---------- # 使用4列布局,每种K线图一列 cols = st.columns(4) # 存储获取的图片数据 kline_images = {} for kline_type, (title, short_name) in kline_types.items(): with st.spinner(f"正在加载{short_name}..."): image_data = fetch_kline_image(stock_code, kline_type) kline_images[kline_type] = image_data # ---------- 展示K线图 ---------- st.divider() # 第一行:分钟K + 日K st.subheader(f"📊 {stock_code.upper()} K线图展示") row1_cols = st.columns(2) with row1_cols[0]: if kline_images.get(1): st.image(kline_images[1], caption="🕐 分钟K线", use_container_width=True) else: st.warning("暂无分钟K线数据") with row1_cols[1]: if kline_images.get(2): st.image(kline_images[2], caption="📅 日K线", use_container_width=True) else: st.warning("暂无日K线数据") # 第二行:周K + 月K row2_cols = st.columns(2) with row2_cols[0]: if kline_images.get(3): st.image(kline_images[3], caption="📆 周K线", use_container_width=True) else: st.warning("暂无周K线数据") with row2_cols[1]: if kline_images.get(4): st.image(kline_images[4], caption="📆 月K线", use_container_width=True) else: st.warning("暂无月K线数据") # ---------- 空状态提示 ---------- else: st.info("👈 请在左侧输入股票代码并点击「开始查询」") # 显示示例 with st.expander("💡 使用示例", expanded=True): st.markdown(""" **查询示例:** | 股票名称 | 股票代码 | 输入格式 | |---------|---------|---------| | 平安银行 | 000001 | `000001` 或 `sz000001` | | 贵州茅台 | 600519 | `600519` 或 `sh600519` | | 宁德时代 | 300750 | `300750` 或 `sz300750` | **操作步骤:** 1. 在左侧输入股票代码 2. 点击「开始查询」按钮 3. 自动加载四种K线图: - 🕐 分钟K线 - 📅 日K线 - 📆 周K线 - 📆 月K线 """)# ===================== 程序入口 =====================if __name__ == "__main__": main()
运行前 需要先安装一下 依赖
pip install streamlit requests pandas -i https://pypi.tuna.tsinghua.edu.cn/simple
运行方式是:
streamlit run stock_kline_chart.py
Google 浏览器会自动打开
免责声明:本文仅供技术交流,不构成任何投资建议。股市有风险,投资需谨慎。
如果你觉得这篇文章说到了心坎里,请点个“在看”,点个关注,并转发给身边的朋友,让更多人支持小亥!
#Python量化 #股票量化 #实时分时图 #实时日K图 #金亥跃江聊量化 #金亥跃江