如何利用一些 finance 数据库 api 批量获取股票信息?

如何利用一些 finance 数据库 api 批量获取股票信息?,第1张

使用Yahoo API获取股票信息。

一、2016年5月6日更新。根据最近频繁出现的数据超市,可以无限制获取相关数据,而不再需要使用爬虫等方式获取,这样不仅节省了极大资源,也有利于遍历数据。具体的方法不再赘述,列出来相关网站清单,开发者可自行到这些网站查询调用方法。

1.聚合数据 https://www.juhe.cn/

2.百度API数据 http://apistore.baidu.com/

3.发源地 http://www.finndy.com/

推荐使用聚合数据,其次配合百度API使用即可。

二、 方法1:http://table.finance.yahoo.com/table.csv?s=股票代码,返回结果:CSV格式的文件,返回列依次是“日期、开盘价、最高价、最低价、收盘价、成交量、复权价”。

三、 方法2:http://finance.yahoo.com/d/quotes.csv?s=股票代码&f=[自定义列]返回结果:CSV格式的文件,最后一个交易日的数据,列根据设定的自定义列返回。

本程序使用Python 2.7.6编写,扩展了Python自带的HTMLParser,自动根据预设的股票代码列表,从Yahoo Finance抓取列表中的数据日期、股票名称、实时报价、当日变化率、当日最低价、当日最高价。

由于Yahoo Finance的股票页面中的数值都有相应id。

例如纳斯达克100指数ETF(QQQ)

其中实时报价的HTML标记为

[html] view plain copy

<span id="yfs_l84_qqq">87.49</span>

而标普500指数ETF(SPY)

其中实时报价的HTML标记为

[html] view plain copy

<span id="yfs_l84_spy">187.25</span>

因此本数据抓取程序根据相应的id字符串来查找数据。具体来说就是先继承HTMLParser,然后在自定义的子类中重载handle_data(self, data)方法,查找包含相应id字符串(例如实时报价的id字符串为"yfs_l84_"+股票代码)的HTML标记,并输出这个HTML标记中的数据(例如qqq的<span id="yfs_l84_qqq">87.49</span>,其中的数据87.49就是实时报价。)

样本输出:

数据依次是

数据日期 股票代码  股票名称 实时报价  日变化率 日最低价  日最高价

[python] view plain copy

05/05/2014  ibb iShares Nasdaq Biotechnology (IBB)  233.28  1.85%   225.34  233.28

05/05/2014  socl    Global X Social Media Index ETF (SOCL)  17.48   0.17%   17.12   17.53

05/05/2014  pnqi    PowerShares NASDAQ Internet (PNQI)  62.61   0.35%   61.46   62.74

05/05/2014  xsd SPDR S&P Semiconductor ETF (XSD)    67.15   0.12%   66.20   67.41

05/05/2014  ita iShares US Aerospace & Defense (ITA)    110.34  1.15%   108.62  110.56

05/05/2014  iai iShares US Broker-Dealers (IAI) 37.42   -0.21%  36.86   37.42

05/05/2014  vbk Vanguard Small Cap Growth ETF (VBK) 119.97  -0.03%  118.37  120.09

05/05/2014  qqq PowerShares QQQ (QQQ)   87.95   0.53%   86.76   87.97

05/05/2014  ewi iShares MSCI Italy Capped (EWI) 17.86   -0.56%  17.65   17.89

05/05/2014  dfe WisdomTree Europe SmallCap Dividend (DFE)   62.33   -0.11%  61.94   62.39

05/05/2014  pbd PowerShares Global Clean Energy (PBD)   13.03   0.00%   12.97   13.05

05/05/2014  eirl    iShares MSCI Ireland Capped (EIRL)  38.52   -0.16%  38.39   38.60

1、通过API获取实时数据

请求地址

http://finance.yahoo.com/d/quotes.csv?s=<股票名称>&f=<数据列选项>

参数

s –表示股票名称,多个股票之间使用英文加号分隔,如”XOM+BBDb.TO+JNJ+MSFT”,罗列了四个公司的股票:XOM,BBDb.TO, JNJ, MSFT。

f – 表示返回数据列,如”snd1l1yr”。更详细的参见雅虎股票 API f参数对照表。

2、通过API获取历史数据

请求地址

http://ichart.yahoo.com/table.csv?s=<string>&a=<int>&b=<int>&c=<int>&d=<int>&e=<int>&f=<int>&g=d&ignore=.csv

参数

s – 股票名称

a – 起始时间,月

b – 起始时间,日

c – 起始时间,年

d – 结束时间,月

e – 结束时间,日

f – 结束时间,年

g – 时间周期。Example: g=w, 表示周期是’周’。d->’日’(day),w->’周’(week),m->’月’(mouth),v->’dividendsonly’

一定注意月份参数,其值比真实数据-1。如需要9月数据,则写为08。

3、通过API获取深沪股票数据

雅虎的API是国际性的,支持查询国内沪深股市的数据,但代码稍微变动一下,如浦发银行的代号是:600000.SS。规则是:上海市场末尾加.ss,深圳市场末尾加.sz。

最近股市甚火,受聘开发一股票网站,股票的数据从哪里来成了一个大问题,股票软件一般都是加密处理的,还有一些webservices也是要帐号 的,免费的方法只有一种了,抓别人网站的数据。好在经我研究,发现yahoo提供国内和国外股市每天的交易数据资料,这可谓一大幸事啊。

http://table.finance.yahoo.com/table.csv?s=ibm&d=6&e=22&f=2006&g=d&a=11&b=16&c=1991&ignore=.csv

上面的链接可以抓取IBM股票从1991年11月16日起到2006年6月22的数据。把ibm改成sohu,就可以抓到sohu的股票数据了。

http://table.finance.yahoo.com/table.csv?s=sohu&d=6&e=22&f=2008&g=d&a=11&b=16&c=2008&ignore=.csv

上面链接可以抓搜狐股票的数据。

那么中国股市的数据有没有呢?答案是肯定的,不过要按照下面的参数做些调整,下面提供全球证券交易所的资料。

上证股票是股票代码后面加上.ss,深证股票是股票代码后面加上.sz

例如:000001 = 000001.sz

深市数据链接:http://table.finance.yahoo.com/table.csv?s=000001.sz

上市数据链接:http://table.finance.yahoo.com/table.csv?s=600000.ss

上证综指代码:000001.ss,深证成指代码:399001.SZ,沪深300代码:000300.ss

下面就是世界股票交易所的网址和缩写,要查找哪个股票交易所的数据,就按照上面的格式以此类推。

上海交易所=cn.finance.yahoo.com,.SS,Chinese,sl1d1t1c1ohgv

深圳交易所=cn.finance.yahoo.com,.SZ,Chinese,sl1d1t1c1ohgv

美国交易所=finance.yahoo.com,,United States,sl1d1t1c1ohgv

加拿大=ca.finance.yahoo.com,.TO,Toronto,sl1d1t1c1ohgv

新西兰=au.finance.yahoo.com,.NZ,sl1d1t1c1ohgv

新加坡=sg.finance.yahoo.com,.SI,Singapore,sl1d1t1c1ohgv

香港=hk.finance.yahoo.com,.HK,Hong Kong,sl1d1t1c1ohgv

台湾=tw.finance.yahoo.com,.TW,Taiwan,sl1d1t1c1ohgv

印度=in.finance.yahoo.com,.BO,Bombay,sl1d1t1c1ohgv

伦敦=uk.finance.yahoo.com,.L,London,sl1d1t1c1ohgv

澳洲=au.finance.yahoo.com,.AX,Sydney,sl1d1t1c1ohgv

巴西=br.finance.yahoo.com,.SA,Sao Paulo,sl1d1t1c1ohgv

瑞典=se.finance.yahoo.com,.ST,Stockholm,sl1d1t1c1ohgv


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9858497.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存