用 Python 免费抓取股票 Tick 级实时行情
做量化策略或实时盯盘,靠谱的行情数据是绕不开的基础。免费渠道里,AllTick 提供的 WebSocket 接口是一个讨巧的方案——延迟低、数据干净,不需要密钥就能直接连。
装好这两个库
websocket-client 和 pandas,一行命令搞定:
pip install websocket-client pandas
websocket-client:处理 WebSocket 长连接,接收推送。pandas:把接收到的琐碎数据快速整理成表格,方便后续计算。
完整的抓取代码
下面这段脚本启动后,会维持与 AllTick 的 WebSocket 连接,订阅指定标的,并把每一笔 tick 数据存下来,同时打印到终端。
import websocket
import json
import pandas as pd
# 所有 tick 数据会暂存在这里
tick_data = []
def on_message(ws, message):
"""收到行情推送,提取关键字段"""
msg = json.loads(message)
tick_info = {
"symbol": msg.get("s"), # 股票代码
"price": msg.get("p"), # 成交价
"time": msg.get("t") # 时间戳
}
tick_data.append(tick_info)
print(f"{tick_info['symbol']} -> {tick_info['price']} @ {tick_info['time']}")
def on_error(ws, error):
print("连接错误:", error)
def on_close(ws, close_status_code, close_msg):
print()
():
subscribe_msg = {
: ,
: [, , ]
}
ws.send(json.dumps(subscribe_msg))
__name__ == :
ws_url =
ws = websocket.WebSocketApp(
ws_url,
on_open=on_open,
on_message=on_message,
on_error=on_error,
on_close=on_close
)
ws.run_forever()


