我正在构建一个Rails应用程序,在这里我想下载历史金融数据。我找到了一个我可以使用的URL:
雅虎财经API -历史
但我还没有找到任何方法同时下载多个金融数据。我唯一发现的是下载多个引号,如下所示:
雅虎财务API -报价
有没有办法同时下载多个历史数据?
(我之所以问这个问题,是因为我想将数据上传到SQLite数据库,并在我的应用程序中使用。当然,我可以逐个下载数据,但这将是相当繁琐的。
现在,我在互联网络上找到了这个Ruby脚本
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?):
所以我的问题基本上是:解决这个问题的最好方法是什么?)
发布于 2017-05-04 19:42:50
大多数金融数据提供商将历史下载限制在每个API调用的一个代码上。您可以想象,在同一个JSON输出中提取多个时间序列是令人困惑的,并且会给服务器带来沉重的负载。
在github,你可以在这里看到它上有一个Ruby包装器,这将使获取历史时间序列数据更加容易。
这将拉走苹果的价格历史:
curl "https://api.intrinio.com/prices?ticker=AAPL" -u "APIusername:APIpassword"这将从维度上拉动至多150只股票的当前价格:
curl "https://api.intrinio.com/data_point?ticker=AAPL,MSFT,T,XOM&item=last_price" -u "APIusername:APIpassword"当然,您需要在curl中交换您自己的API密钥,但是使用github包装器会使它变得简单。API用户名和密码是免费的。
发布于 2014-05-15 00:01:14
雅虎历史数据不支持一次下载多个符号。每个URL每个符号都是唯一的。
由于雅虎的限制,我不建议使用多个线程下载。
https://stackoverflow.com/questions/23638261
复制相似问题