先注册一个tushare的账号吧,它其实是调用了新浪财经的相关接口。
至于如何安装tushare,比较简单,操作系统上安装了python3之后,直接用pip安装tushare即可,网上和官网都有教程,基本一步搞定,这里就不说了。(尽量不要装python2,会稍微麻烦点)
前面花了3天时间把python疯狂讲义看完了,因为前些年对java了解的很多,也用的很多,这两年用c和C++多些,所以看python的教程就相当快,把基础部分看完后,了解和java的区别之后,后续的章节只需要看它提供了什么功能,大概有啥函数即可,因为用的时候还是要再在网上搜的。所以有了点python底子之后,就敢动手了。
由于tushare pro是收费的,或者需要比较多的金币才能使用高级功能。因为前几年就写过java的爬虫,从新浪财经爬取相应股票的历史数据,所以我这里比较简单的调用了一下,获取所有的沪深A股的代码信息,然后调用tushare的get history data来获取历史数据(比java简单多了,tushare封装的还行,其实我的java也都封装好了)。
当然,如果觉得不好拿到沪深A股的所有股票代码,那给你一个简单连接吧。http://quote.stockstar.com/stock/stock_index.htm
复制出来,自己整理一下,提取出所有的代码并保持到文件。然后使用python读取文件放到list里面。然后调用tushare接口,并保持到excel里面。代码相当简单,这里面还要考虑exception的处理,我刚开始么有加异常处理,结果到000428之后就出不来了。直接加异常处理后,后面就全跑出来了,至于是否少了一只股票的数据,我对比了一下,发现少了32个股票的数据。如果真的要求全部数据,那简单,把出错的股票代码打印出来,再单独针对这32个股票,分别调用,调试一下,看看啥问题。我这里没有处理。
import os
import tushare as ts
def ReadTxtName(rootdir):
lines = []
with open(rootdir, 'r') as file_to_read:
while True:
line = file_to_read.readline()
if not line:
break
line = line.strip('\n')
lines.append(line)
return lines
stockList = ReadTxtName('20200218A.txt')
print(stockList,sep=',')
#ts.set_token('xxxxxx')
for stock in stockList:
df = ts.get_hist_data(stock)
try:
df.to_csv(stock+'.csv')
except AttributeError:
continue;
print('====================')
print('get data end!!!')