首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多数据金融API

多数据金融API
EN

Stack Overflow用户
提问于 2014-05-13 17:49:46
回答 2查看 353关注 0票数 0

我正在构建一个Rails应用程序,在这里我想下载历史金融数据。我找到了一个我可以使用的URL:

雅虎财经API -历史

但我还没有找到任何方法同时下载多个金融数据。我唯一发现的是下载多个引号,如下所示:

雅虎财务API -报价

有没有办法同时下载多个历史数据?

(我之所以问这个问题,是因为我想将数据上传到SQLite数据库,并在我的应用程序中使用。当然,我可以逐个下载数据,但这将是相当繁琐的。

现在,我在互联网络上找到了这个Ruby脚本

代码语言:javascript
复制
require 'rubygems'
require 'nokogiri'
require 'open-uri'
require 'sqlite3'

START_DATE=['01','01','2014']
END_DATE=['01','05','2014']

YURL="http://ichart.finance.yahoo.com/table.csv?a=#{START_DATE[0]}&b=#{START_DATE[1]}&c=#{START_DATE[2]}&d=#{END_DATE[0]}&e=#{END_DATE[1]}&f=#{END_DATE[2]}&g=d&ignore=.csv&s="
DBNAME = "data-hold/sp500-data.sqlite"
DB = SQLite3::Database.new( DBNAME )


SUBDIR = 'data-hold/yahoo-data'
Dir.mkdir(SUBDIR) unless File.exists?SUBDIR

DB.execute("SELECT DISTINCT ticker_symbol from companies").each do |sym|
  fname = "#{SUBDIR}/#{sym}.csv"
  unless File.exists?fname
    puts fname
    d = open("#{YURL}#{sym}")
    File.open(fname, 'w') do |ofile|
      ofile.write(d.read)
      sleep(1.5 + rand)
    end
  end  
end

但是当我运行它时,Rails会抛出一个错误:

坏URI (不是URI?):

所以我的问题基本上是:解决这个问题的最好方法是什么?)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-04 19:42:50

大多数金融数据提供商将历史下载限制在每个API调用的一个代码上。您可以想象,在同一个JSON输出中提取多个时间序列是令人困惑的,并且会给服务器带来沉重的负载。

在github,你可以在这里看到它上有一个Ruby包装器,这将使获取历史时间序列数据更加容易。

这将拉走苹果的价格历史:

代码语言:javascript
复制
curl "https://api.intrinio.com/prices?ticker=AAPL" -u "APIusername:APIpassword"

这将从维度上拉动至多150只股票的当前价格:

代码语言:javascript
复制
curl "https://api.intrinio.com/data_point?ticker=AAPL,MSFT,T,XOM&item=last_price" -u "APIusername:APIpassword"

当然,您需要在curl中交换您自己的API密钥,但是使用github包装器会使它变得简单。API用户名和密码是免费的。

票数 3
EN

Stack Overflow用户

发布于 2014-05-15 00:01:14

雅虎历史数据不支持一次下载多个符号。每个URL每个符号都是唯一的。

由于雅虎的限制,我不建议使用多个线程下载。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23638261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档