pip install baosock
但是只能提前一天,需要再加上腾讯的股票API 可以获取当日交易数据
import pandas as pd
import baosock as bs
bs.login()
rs = bs.query_history_k_data_plus(
code="sz.000021", # 股票代码:必须加市场前缀(sz=深市,sh=沪市),Akshare 不用
fields="date,open,high,low,close,volume,adjustflag", # 要获取的字段(手动指定,Akshare 自动返回全字段)
start_date="2025-01-01", # 日期格式:必须带横杠(Akshare 可无)
end_date="2026-03-13",
frequency="d", # 周期:d=日线(和 Akshare 的 period="daily" 对应)
adjustflag="2" # 复权:2=前复权(对应 Akshare 的 adjust="qfq")
)
# 3. 转为DataFrame(核心步骤)
df = rs.get_data()
# 4. 数据类型转换(避免数值以字符串显示)
df = df.astype({
"open": float,
"high": float,
"low": float,
"close": float,
"volume": float,
"adjustflag": int # 复权标识转整数
})
bs.logout()
数据结构:
,date,open,high,low,close,volume,adjustflag
0,2025-01-02,18.8231439000,18.8627091000,17.6757531000,17.9527095000,60318610,2
1,2025-01-03,18.0021660000,18.1109703000,17.3097750000,17.3196663000,46006347,2
2,2025-01-06,17.2801011000,17.5174923000,17.0229273000,17.2306446000,30090966,2
3,2025-01-07,17.3196663000,17.6559705000,17.1910794000,17.6361879000,37186445,2
4,2025-01-08,17.4680358000,17.7252096000,16.7459709000,17.4284706000,44330600,2
5,2025-01-09,17.3097750000,17.9823834000,17.3097750000,17.6757531000,42315366,2
6,2025-01-10,17.6065140000,18.1307529000,17.2998837000,17.2998837000,41871400,2
7,2025-01-13,16.9141230000,17.3592315000,16.7558622000,17.1910794000,27391847,2
8,2025-01-14,17.3196663000,18.2296659000,17.1515142000,18.1999920000,48855138,2
9,2025-01-15,18.1208616000,18.2593398000,17.9032530000,17.9428182000,31419000,2
10,2025-01-16,18.1406442000,18.3681441000,17.7054270000,17.9032530000,33532828,2
11,2025-01-17,17.8142313000,18.2692311000,17.7153183000,18.0911877000,39192662,2