雅虎财务networking服务消失了吗? API改变了? 暂时下降?
相当长一段时间,我一直在使用以下REST API来查询雅虎财务的当前价格。 它被logging在几个堆栈溢出职位,例如雅虎财经webservice和其他地方在雅虎财务 。
http://finance.yahoo.com/webservice/v1/symbols/$SYMBOLS/quote?format=json
$ SYMBOLS是股票或索引符号的逗号分隔列表。
昨天查询停止工作,只返回一个“Moved Temporarily.Redirecting to …”消息。
这个networking服务现在是closures的吗? 它是否被YQL或其他API取代? 查询历史价格表“ichart”仍然工作。 例如,
http://ichart.finance.yahoo.com/table.csv?d=2&e=3&f=2016&g=d&a=0&b=1&c=2011&ignore=.csv&s=$SYMBOL
谢谢。
我从前2-3天面临类似的问题。 该url适用于智能手机,在桌面上它提供了“无效的参数”错误和HTTP代码406。
这可以通过添加用户代理作为“Mozilla / 5.0(Linux; Android 6.0.1; MotoG3 Build / MPI24.107-55)AppleWebKit / 537.36(KHTML,如Gecko)Chrome / 51.0.2704.81 Mobile Safari / 537.36”来解决调用get请求。
例如,如果你正在从curl下载php,使用如下:
curl_setopt($session,CURLOPT_USERAGENT,"Mozilla/5.0 (Linux; Android 6.0.1; MotoG3 Build/MPI24.107-55) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.81 Mobile Safari/537.36");
我希望这将解决这个问题。
是的,它看起来像雅虎! 已经停止了许多多年来依靠货币数据所依赖的(私人的,大部分没有logging的)雅虎财经API。 我们在过去的24小时内收到了一些通知。 (编辑:所有的回复似乎都回来了"Not a valid parameter"
,我想他们可能会重新打开它,但是他们并没有正式支持这个API,据我所知)。
我在五年前创build了开放汇率 ,我们的汇率API现在支持一个由数以万计的开发人员和他们的数千万用户组成的社区,提供准确的最新信息。
欢迎您访问https://openexchangerates.org查看我们的永久免费服务。;
我们的API是一个简单的,原始的JSON格式,它实际上已经作为显示费率的标准方法,因为它使用起来非常简单(不同于雅虎API,它要求你parsing隐藏的嵌套对象来抽出基本您需要的信息…)
如果您需要协助从已弃用的Yahoo! API,我们很乐意通过电子邮件协助。
(我是开放汇率的创始人。)
我遇到过同样的问题。 这里是从YAHOO提取股票的APIurl。 希望这可以帮助。
https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22YHOO%22)&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=
由于服务已closures,我使用以下URL查询Yahoo数据(对于ACA.PA):
链接
JSON的结果是不同的,但是我发现了我感兴趣的信息。
有关更多信息,请访问https://developer.yahoo.com/yql/
它redirect到同一页面,但添加了参数“bypass = true”,从而导致错误。
编辑:由https://stackoverflow.com/users/6593038/hemant-prasad给出的答案正在为我工作。; 将用户代理更改为移动设备时,API工作正常,并且不会redirect到目前为止。
这是我在Java中使用的代码(它是用于XML版本,但也可以用于JSON):
URL url = new URL ("https://finance.yahoo.com/webservice/v1/symbols/" + stocks + "/quote"); HttpURLConnection urlc = (HttpURLConnection) url.openConnection (); urlc.setRequestProperty ("User-Agent", "Mozilla/5.0 (Linux; Android 6.0; MotoE2(4G-LTE) Build/MPI24.65-39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.81 Mobile Safari/537.36"); Document xml = DocumentBuilderFactory.newInstance ().newDocumentBuilder ().parse (urlc.getInputStream ());
看看这个优秀的API包装,在NuGet上可用: https : //github.com/salmonthinlion/YahooFinanceApi
获取股票报价
var quotes = await Yahoo.Symbol("AAPL", "GOOG").Tag(Tag.LastTradePriceOnly, Tag,ChangeAndPercentChange, Tag.DaysLow, Tag.DaysHigh).GetAsync(); var aapl = quotes["AAPL"]; var price = aapl[Tag.LastTradePriceOnly];
获取股票的历史数据
// You should be able to query data from various markets including US, HK, TW var history = await Yahoo.GetHistoricalAsync("AAPL", new DateTime(2016, 1, 1), new DateTime(2016, 7, 1), Period.Daily); foreach (var candle in history) { Console.WriteLine($"DateTime: {candle.DateTime}, Open: {candle.Open}, High: {candle.High}, Low: {candle.Low}, Close: {candle.Close}, Volume: {candle.Volume}, AdjustedClose: {candle.AdjustedClose}"); }
获取股票的股息历史
// You should be able to query data from various markets including US, HK, TW var dividendHistory = await Yahoo.GetHistoricalDividendsAsync("AAPL", new DateTime(2016, 1, 1), new DateTime(2016, 7, 1)); foreach (var candle in dividendHistory) { Console.WriteLine($"DateTime: {candle.DateTime}, Dividend: {candle.Dividend}"); }
我是github上的ValueViz的作者。
每日价格
您需要熟悉RESTFUL服务。
https://quantprice.herokuapp.com/api/v1.1/scoop/day?tickers=MSFT&date=2017-06-09
历史价格
你必须提供一个date范围:
https://quantprice.herokuapp.com/api/v1.1/scoop/period?tickers=MSFT&begin=2012-02-19&end=2012-02-20
如果你不提供开始或结束,它将使用最早或最近的date:
https://quantprice.herokuapp.com/api/v1.1/scoop/period?tickers=MSFT&begin=2012-02-19
多个代号
你可以用逗号分开代号:
https://quantprice.herokuapp.com/api/v1.1/scoop/period?tickers=IBM,MSFT&begin=2012-02-19
速率限制
所有请求的速率限制为每小时10个请求。 如果你想注册一个完整的访问API在微博上给我发送DM。 您将收到一个API密钥以添加到URL中。
我们正在build立一个没有利率付费订阅的PayPal帐户。
可用的代号列表
https://github.com/robomotic/valueviz/blob/master/scoop_tickers.csv
我也正在从EDGAR提供基础数据和公司数据。 干杯。
我find了一种使用csv API的方法。
链接
在那里你需要写符号,参数和列。
使用这个网站find需要的参数: http : //www.jarloo.com/yahoo_finance/
例:
如果您需要知道符号的音量,请将stringsl1d1t1c1ohgv
replace为v
并使用卷replace列symbol%2Cprice%2Cdate%2Ctime%2Cchange%2Ccol1%2Chigh%2Clow%2Cvolume
唯一的问题是,数据是随机的,而不是像在webservice API中的实时数据
Python Yahoo Finance API似乎也有问题。 如果你用它来查看,例如,亚马逊股票价格,它只是显示相同的两个值一遍又一遍。
from yahoo_finance import Share import time f = open('/tmp/amazon/amzn.csv', 'w') while True: amzn=Share("AMZN") s = amzn.get_price() + "," + amzn.get_trade_datetime() + '\n' print (s) f.write (s) f.flush() time.sleep(5) del amzn