有个叫tushare的python包,可以很方便的用来获取A股数据,官方网址在
http://tushare.org/
1. Linux Mint下安装tushare
- 系统环境兼容
为了防止后续遇到一些系统库或者头文件找不到的问题,先安装一些必须的包
$apt-get install build-essential devscripts python-dev
- 包管理器pip
$apt-get install python-pip
利用豆瓣源
编辑~/.pip/pip.conf,添加
[global]
index-url=http://pypi.douban.com/simple
- 安装cython
$apt-get install cython
- 安装pandas
加sudo,因为需要创建/usr/local/lib/python2.7/dist-packages/pandas
$sudo apt-get install pandas
- 安装tushare和matplotlib
$apt-get install tushare matplotlib
2. 代码范例
获取股票历史数据,通过图像展示收盘价走势
#-*-coding:utf-8 -*-
import tushare as ts
import matplotlib.pyplot as plt
class SHStock():
def __init__(self, code):
self.df = ts.get_hist_data(code)
if self.df is not None:
self.df.to_excel('/home/camus/Stock/data' + code + '.xlsx')
else:
print code + ' not existed.\n'
if __name__ == '__main__':
code = raw_input('Enter Stock Code: ')
handler = SHStock(code)
indexes = []
values = []
try:
for each in handler.df['close'].index:
indexes.append(int(each.replace('-', '')))
for eachvalue in handler.df['close'].values:
values.append(float(eachvalue))
except:
print 'Error happens\n'
else:
print handler.df['close'][0]
values.reverse()
plt.plot(values, 'r*')
plt.plot(values, 'b')
plt.title('Stock Code = ' + code + '\nsample length = ' + str(len(values)))
plt.xlabel('Time')
plt.ylabel('Close Value')
plt.grid(True)
plt.show()
#print handler.data
效果如下图所示