python通过调用新浪财经接口一次性下载股票的实时数据;
#'u1','u2'无用
columnsList=['u1', 'u2', 'code', 'name', 'open', 'frontclose', 'current', 'high', 'low', 'buy', 'sell', 'amount', 'volumne', 'buynumber1', 'buy1', 'buynumber2', 'buy2', 'buynumber3', 'buy3', 'buynumber4', 'buy4', 'buynumber5', 'buy5', 'sellnumber1', 'sell1', 'sellnumber2', 'sell2', 'sellnumber3', 'sell3', 'sellnumber4', 'sell4', 'sellnumber5', 'sell5', 'date', 'time', 'timeS']
#含义
#'股票代码','股票名字','今日开盘价','昨日收盘价','当前价格','今日最高价','今日最低价','竞买价,即“买一“报价','竞卖价,即“卖一“报价',
#'成交的股票数,由于股票交易以一百股为基本单位,所以在使用时,通常把该值除以一百','成交金额,单位为“元“,为了一目了然,通常以“万元“为成交金额的单位,所以通常把该值除以一万',
#'买一申请624253股,即6243手','买一报价','买二申报股数','买二报价','买三申报股数','买三报价','买四申报股数','买四报价','买五申报股数','买五报价','卖一申报股数','卖一报价','卖二申报股数','卖二报价','卖三申报股数','卖三报价','卖四申报股数','卖四报价','卖五申报股数','卖五报价','"日期"','时间',
def GetAllDStockData():
filedata = pd.read_csv('D:\\\StockFile\\whole\\AllCompanyCode.csv')#本地股票代码路径
filedata.set_index(['Unnamed: 0'],inplace=True)
allstockCoed='sh000001'#上证指数代码
codenumber=0
alldata=[]
for stockname in filedata.values:
data = stockname[0].split('.')
newstock = data[1] + data[0]
allstockCoed = allstockCoed+','+newstock
codenumber = codenumber+1
if codenumber > 100:
alldata = alldata + GetStockDataSig(allstockCoed.lower())
allstockCoed=''
codenumber = 0
alldata = alldata + GetStockDataSig(allstockCoed.lower())
listdata=[]
for strlist in alldata:
listdata.append(re.split(',|_|=',strlist.replace('sh','').replace('sz','')))
alldata=pd.DataFrame(listdata,columns=columnsList)
alldata.set_index(['code'],inplace=True)
alldata.drop(['u1', 'u2','name','timeS'], axis=1,inplace=True)
alldata.dropna(inplace=True)
return alldata
def GetStockDataSig(stockName):
r = requests.get('http://hq.sinajs.cn/list=' +stockName)
res = r.text.split(";")
return res