获取国内股票数据
1. 安装支持的库
pip install pandas ///数据分析工具包
pip install tushare ///国内股票数据抓取工具,除了股票的实时和历史数据,还有基本面数据,加上自然语言处理(比如情绪分析),或者机器学习
pip install bs4 ///爬虫库
pip install lxml ///xml解析
这里只是我安装罗列一些,可能你本地有些有了的,或者有些没有,具体运行的时候根据提示,安装对应的库
2. 范例
2.1 代码1
import tushare as ts
d = ts.get_tick_data('601318',date='2017-06-26')
print d
e = ts.get_hist_data('601318',start='2017-06-23',end='2017-06-26')
print e
- 结果
time price change volume amount type
0 15:00:00 49.72 -- 0 0 卖盘
1 15:00:00 49.72 -0.01 0 0 卖盘
2 15:00:00 49.73 -- 45 223785 买盘
3 14:59:59 49.73 -- 328 1631144 买盘
4 14:59:56 49.73 -0.02 436 2168228 卖盘
5 14:59:53 49.75 0.02 110 547250 买盘
6 14:59:50 49.73 0.01 14 69622 卖盘
7 14:59:47 49.72 -0.01 20 99440 卖盘
8 14:59:44 49.73 0.01 70 348110 买盘
9 14:59:41 49.72 -- 106 527032 卖盘
10 14:59:38 49.72 -- 97 485565 卖盘
11 14:59:34 49.72 -0.01 635 3157319 卖盘
12 14:59:31 49.73 0.01 291 1447143 买盘
13 14:59:28 49.72 -- 260 1292720 买盘
14 14:59:25 49.72 -- 114 566808 买盘
15 14:59:22 49.72 -- 101 502172 买盘
16 14:59:19 49.72 -0.01 229 1138588 卖盘
17 14:59:16 49.73 -- 117 581841 买盘
18 14:59:13 49.73 0.01 47 233730 买盘
19 14:59:10 49.72 -0.02 52 258544 卖盘
20 14:59:07 49.74 0.02 674 3352476 买盘
21 14:59:04 49.72 -- 133 661276 卖盘
22 14:59:01 49.72 -- 180 895854 买盘
23 14:58:58 49.72 -- 49 243628 买盘
24 14:58:55 49.72 0.01 51 253572 买盘
25 14:58:52 49.71 -0.01 18 89478 卖盘
26 14:58:49 49.72 -0.03 158 785576 卖盘
27 14:58:46 49.75 0.01 46 228850 买盘
28 14:58:43 49.74 -- 43 213882 卖盘
29 14:58:40 49.74 0.04 191 950034 买盘
... ... ... ... ... ... ...
4731 09:31:22 50.18 0.04 1218 6116239 买盘
4732 09:31:19 50.14 0.01 66 330924 买盘
4733 09:31:16 50.13 -0.02 262 1313406 卖盘
4734 09:31:13 50.15 -0.02 586 2938790 卖盘
4735 09:31:10 50.17 0.02 395 1981715 中性盘
4736 09:31:07 50.15 -0.03 705 3535575 卖盘
4737 09:31:04 50.18 -- 1130 5670340 卖盘
4738 09:31:01 50.18 -0.01 252 1264536 卖盘
4739 09:30:58 50.19 0.02 266 1335054 买盘
4740 09:30:55 50.17 -0.01 349 1750933 卖盘
4741 09:30:52 50.18 0.04 456 2288208 买盘
4742 09:30:49 50.14 -0.04 173 867422 卖盘
4743 09:30:46 50.18 0.04 549 2754882 买盘
4744 09:30:43 50.14 -- 187 937618 卖盘
4745 09:30:40 50.14 -0.04 310 1554340 卖盘
4746 09:30:37 50.18 0.04 112 562016 买盘
4747 09:30:34 50.14 -0.01 162 812268 中性盘
4748 09:30:31 50.15 0.13 225 1128375 买盘
4749 09:30:28 50.02 -0.12 202 1010404 卖盘
4750 09:30:25 50.14 -0.04 275 1378850 中性盘
4751 09:30:22 50.18 0.07 841 4220138 买盘
4752 09:30:19 50.11 -0.04 103 516133 中性盘
4753 09:30:16 50.15 0.01 1700 8525500 买盘
4754 09:30:13 50.14 0.03 152 762128 买盘
4755 09:30:10 50.11 0.01 182 912002 买盘
4756 09:30:07 50.10 0.09 544 2725440 买盘
4757 09:30:04 50.01 -0.01 2014 10072014 卖盘
4758 09:30:01 50.02 0.03 1044 5226339 买盘
4759 09:28:45 49.99 -- 0 0 卖盘
4760 09:25:02 49.99 49.99 7370 36843929 买盘
[4761 rows x 6 columns]
open high close ... v_ma5 v_ma10 v_ma20
date ...
2017-06-26 49.99 50.77 49.72 ... 887897.74 860166.06 857338.21
2017-06-23 49.24 49.90 49.72 ... 858955.61 850806.49 879173.58
[2 rows x 13 columns]
Process finished with exit code 0
2.2 代码2
import tushare as ts
d = ts.get_h_data('600848', '2008-01-01', '2018-01-01')
d['close'].to_json('/Users/hfy/Documents/600848.json',orient='records')
year = [i for i in range(len(d['close']))]
file = open('/Users/hfy/Documents/600848_year.json','w')
file.write(str(year))
file.close()
//使用这段代码需要修改:1. 股票代码;2. 文件路径
把某支股票每日的收盘数据写入到文件中,这里会生成两个文件:
- 一个包含每天的收盘股价,是一个数组
- 一个是我自己生成的线性数组,代表每一天。天数取决于第一个文件有多少个样本
然后把这两个数组粘贴到Echarts对应的表格中,就可以看到一个股价变化表:
ECharts对应的example的右下角可以下载一个对应的HTML,只需要修改数据即可,下载后修改的样例代码line-stack
一些其他用法
print('数据来源版本:'+ts.__version__)
#沪深300指数K线数据
print(ts.get_hist_data('hs300'))
#沪深300指数60分钟K线数据
print(ts.get_hist_data('hs300',ktype='60'))
#复权数据
#中通客车的前复权数据
print(ts.get_h_data('000957'))
#中通客车后复权数据
print(ts.get_h_data('000957',autype='hfq'))
#中通客车不复权数据')
print(ts.get_h_data('000957',autype=None))
#行业分类
print('行业分类:\n',ts.get_industry_classified())
#概念分类
print('概念分类:\n',ts.get_concept_classified())
#地域分类
print('地域分类:\n',ts.get_area_classified())
#创业板分类
print('创业板分类:\n',ts.get_gem_classified())
#风险警示板分类
print('风险警示板分类:\n',ts.get_st_classified())
#沪深300成分股及权重
print('沪深300成分股及权重:\n',ts.get_hs300s())
#中通客车10日历史数据
ztkchist = ts.get_hist_data('000957')
print(ztkchist.tail(10))
#中通客车周K线数据
print(ts.get_hist_data('000957',ktype="W"))
#中通客车月K线数据
print(ts.get_hist_data('000957',ktype="M"))
#中通客车5分钟K线
print(ts.get_hist_data('000957',ktype='5'))
#中通客车30分钟K线数据
print(ts.get_hist_data('000957',ktype='30'))
#中通客车60分钟K线数据
print(ts.get_hist_data('000957',ktype='60'))
#中通客车实时报价
ztkcrealtime = ts.get_realtime_quotes('000957')
print(ztkcrealtime[['code','name','price','bid','ask','volume','amount','time']])
#中通客车大单交易,大单为500手
ztkcdd=ts.get_sina_dd('000957',date='2016-08-05',vol=100)
print(ztkcdd)
ztkcdd.to_excel("./中通客车20160805大单交易.xlsx")
#新股
newts = ts.new_stocks()
print(newts)
#沪市融资融券数据
ztkc_margin=ts.sh_margin_details(start='2016-01-01', end='2016-08-05', symbol='601668')
print(ztkc_margin)
#信息地雷
guba = ts.guba_sina(True)
print(guba)
print(guba.ix[1]['content'])
#个股信息地雷
print(ts.get_notices('000957'))
#中通客车历史分笔数据
ztkctick = ts.get_tick_data('000957','2016-08-05')
print(ztkctick.head(100))
#当日所有股票
all = ts.get_today_all()
all.to_excel('./今日股票数据.xlsx')
print(ts.get_today_all())