文章
101
标签
36
分类
20
Markdown编辑器
Mermaid编辑器
OpenClaw配置
文章列表
JSON解析器
键盘测试
工具
SEO 检测工具
BASIC 运行器
技术教程
Markdown教程
Obsidian教程
OpenClaw教程
prompt教程
Claude 教程
Markdown在线编辑器
搜索
Markdown编辑器
Mermaid编辑器
OpenClaw配置
文章列表
JSON解析器
键盘测试
工具
SEO 检测工具
BASIC 运行器
技术教程
Markdown教程
Obsidian教程
OpenClaw教程
prompt教程
Claude 教程
Markdown 在线编辑器
Markdown 在线编辑器
随写随看 · 所见即所得
复制 Markdown
下载 Markdown
Markdown 源码
# 技能:上证A股股票行情查询 传统的股票查询,就是手动打开软件或网页,好无趣,好无聊! 而**技能上证A股股票行情**,就是在传统的股票查询当中,加入**技能**,好好玩~要爆了! ## 技能介绍 - 支持查询**上证A股**(上海证券交易所上市股票)实时行情 - 输入格式:`上证 600519` 或 `SH600519` 或 `贵州茅台` - 输出内容:最新价、涨跌幅、成交量、成交额、最高/最低、开盘/昨收 等关键行情 - 数据来源:新浪财经(免费、无需Token,实时更新) - 支持批量查询(多个代码用逗号分隔) ## 技能核心代码(Python) ```python import requests import re import time def get_a_stock_quote(codes): """ 查询上证A股实时行情 codes: str 或 list,如 '600519' 或 ['600519', '601398'] 返回:格式化字符串行情 """ if isinstance(codes, str): codes = [codes.strip()] # 统一转为新浪格式:sh + 代码 sina_codes = [] for code in codes: code = code.strip().upper() if code.startswith('SH') or code.startswith('6'): sina_codes.append('sh' + code[-6:]) else: sina_codes.append('sh' + code.zfill(6)) # 补全6位 url = f"http://hq.sinajs.cn/list={','.join(sina_codes)}" headers = { "Referer": "https://finance.sina.com.cn/", "User-Agent": "Mozilla/5.0" } try: resp = requests.get(url, headers=headers, timeout=10) resp.encoding = 'gbk' # 新浪返回GBK编码 text = resp.text results = [] for match in re.finditer(r'var hq_str_(\\w+)="([^"]+)"', text): symbol = match.group(1) data = match.group(2).split(',') if len(data) < 32: continue name = data[0] open_price = float(data[1]) pre_close = float(data[2]) current = float(data[3]) high = float(data[4]) low = float(data[5]) volume = int(float(data[8]) / 100) # 手 amount = float(data[9]) / 10000 # 万元 change = current - pre_close pct_change = (change / pre_close) * 100 if pre_close != 0 else 0 result = f"""【{name}({symbol[2:]})】 最新价:{current:.2f} 涨跌:{change:+.2f}({pct_change:+.2f}%) 今开:{open_price:.2f} 昨收:{pre_close:.2f} 最高:{high:.2f} 最低:{low:.2f} 成交量:{volume:,}手 成交额:{amount:.2f}万元 更新时间:{data[30]} {data[31]}""" results.append(result) if results: return "\\n\\n".join(results) else: return "未获取到行情数据,请检查股票代码是否正确(上证A股代码以6开头)。" except Exception as e: return f"查询失败:{str(e)}" # ====================== 使用示例 ====================== if __name__ == "__main__": print(get_a_stock_quote("600519")) # 贵州茅台 print("\\n" + "="*50 + "\\n") print(get_a_stock_quote(["600519", "601398"])) # 茅台 + 工商银行 ```
快捷提示:支持表格、任务列表、代码块等 GFM 扩展语法。
实时预览
搜索