做项目或者分析数据时,获取实时股价是常见需求。自己抓网页或者用缓存,更新不及时也容易出错。直接用股票查询api,就可以把最新成交价直接拿到程序里。
实时订阅股价
如果需要在页面或者程序里实时显示股价,WebSocket 是最直观的方式。只要建立连接,把关注的股票代码发送过去,服务器一有更新就会推送过来,不用频繁轮询。
以 AllTick API 为例,它提供的 WebSocket 接口可以订阅多只股票,数据一有变化就会送到程序里:
|
import
websocket
import
json
ws_url =
"wss://quote.alltick.io/quote-stock-b-ws-api?token=你的Token"
def
on_message
(ws, message):
data = json.loads(message)
print(
f"{data['symbol']} 最新价: {data['price']}"
)
def
on_open
(ws):
subscribe_data = {
"action"
:
"subscribe"
,
"symbol_list"
: [
{
"symbol"
:
"AAPL.US"
},
{
"symbol"
:
"TSLA.US"
}
]
}
ws.send(json.dumps(subscribe_data))
ws = websocket.WebSocketApp(
ws_url,
>
>
)
ws.run_forever()
|
这样,新成交价就会实时送到程序里,可以直接用在前端页面展示或者做后续分析。
一次性获取最新价格
如果只是想获取某个时间点的最新价,HTTP 接口会更简单。只要传入股票列表,就能拿到当前的成交价格:
|
import
requests
import
json
api_url =
"https://quote.alltick.io/quote-stock-b-api/transaction-quote"
params = {
"token"
:
"你的Token"
,
"symbol_list"
: json.dumps([{
"symbol"
:
"AAPL.US"
},{
"symbol"
:
"TSLA.US"
}])
}
resp = requests.get(api_url, params=params)
for
item
in
resp.json().get(
"data"
, []):
print(
f"{item['symbol']} 最新价: {item['price']}"
)
|
一次请求就能获取多只股票的最新成交价,适合定时抓取或按需查询。
不同需求下的数据获取方式
|
使用场景 |
方法 |
特点 |
|
页面实时展示股价 |
WebSocket订阅 |
数据推送,延迟低 |
|
批量获取当前价格 |
HTTP 请求 |
简单直观,易集成 |
|
持续监听多只股票 |
WebSocket |
一次连接即可订阅多只 |
|
单次查看某个价格 |
HTTP 请求 |
无需保持连接 |
根据项目需求选择方式:实时展示用 WebSocket,偶尔查最新价用 HTTP 就足够。