用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/LangSensei/agentic-catalog --skill sina-quote命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
| name | sina-quote |
| scope | langsensei |
| description | Real-time stock/ETF/index quotes from Sina Finance (新浪财经) |
| version | 1.0.0 |
Fetch real-time quotes for A-share stocks, ETFs, and indices via Sina Finance HTTP API. No API key required. Fast and lightweight — ideal for batch price lookups.
GET https://hq.sinajs.cn/list={codes}
Headers:
Referer: https://finance.sina.com.cn
Parameters:
codes = comma-separated list of stock codes with market prefix
Market prefixes:
sh — Shanghai (SH stocks, SH ETFs, SH indices)sz — Shenzhen (SZ stocks, SZ ETFs)Examples:
sh600519 (贵州茅台), sz000858 (五粮液)sh512800 (银行ETF), sz159919 (沪深300ETF)sh000001 (上证指数), sz399001 (深证成指)sh600519,sz000858,sh512800var hq_str_sh512800="银行ETF,0.780,0.784,0.784,0.786,0.779,0.783,0.784,501041698,392116009.000,...,2026-03-09,10:52:40,00,";
Fields (comma-separated):
import requests
def get_quotes(codes):
"""Fetch real-time quotes. codes: list of 'sh600519', 'sz000858', etc."""
url = f"https://hq.sinajs.cn/list={','.join(codes)}"
headers = {"Referer": "https://finance.sina.com.cn"}
r = requests.get(url, headers=headers)
results = {}
for line in r.text.strip().split("\n"):
if "=" not in line:
continue
var_name, data = line.split("=", 1)
code = var_name.split("_")[-1] # e.g. sh512800
fields = data.strip('";\n').split(",")
if len(fields) < 32:
continue
results[code] = {
"name": fields[0],
"open": float(fields[1]),
"prev_close": float(fields[2]),
"price": float(fields[3]),
"high": float(fields[4]),
"low": float(fields[5]),
"volume": int(fields[]),
: (fields[]),
: fields[],
: fields[],
}
results
quotes = get_quotes([])
(quotes[][])
quotes = get_quotes([, , , ])
code, q quotes.items():
()
r.encoding = 'gbk' if names show garbled基于 SOC 职业分类