import akshare as ak
import baostock as bs
import pandas as pd
import datetime
bs.login()stk_list_place = 'D:/stk_list.csv' #股票代碼表存儲地址
stk_place = 'D:/Data/' #股票數據存儲地址
def update_stk_list(date=None):#獲取指定日期的指數、股票數據stock_rs = bs.query_all_stock(date)stock_df = stock_rs.get_data()# stock_df.to_csv('D:/all_list.csv',encoding='gbk',index =False)# stock_df.drop(stock_df[stock_df.code<'sh.600000'].index,inplace =True)# stock_df.drop(stock_df[stock_df.code>'sz.399000'].index,inplace =True)stock_df = stock_df['code']stock_df.to_csv(stk_list_place,encoding='gbk',index=False)return stock_df.tolist()stk_list = update_stk_list(datetime.date.today() - datetime.timedelta(days = 31))
# stk_list = update_stk_list(datetime.date.today())
df = pd.read_csv('D:/stk_list.csv')
df['code'] = df['code'].apply(lambda x:x.replace('.',''))import akshare as ak
for i in df['code']:try:#保存數據庫df = ak.stock_zh_a_daily(symbol=i, adjust="qfq")df1 = df.iloc[:, :]df1['openinterset'] = df1['close'].pct_change()df1.to_csv('D:/Data/'+i+'.csv')except:continue
借助akshare,baoshare接口獲取股票數據,日線周線分鐘線均可獲取。
也可保存到數據庫中,后期也會更新上傳,如何存儲到sql數據庫。