Has Yahoo finance web service disappeared? API changed? Down temporarily?
有一段时间,我一直在使用下面的RESTAPI查询雅虎财务的当前价格。它记录在几个堆栈溢出帖子中,例如雅虎财经网站服务和雅虎财经的其他地方。
1 | http://finance.yahoo.com/webservice/v1/symbols/$SYMBOLS/quote?format=json |
其中$symbols是以逗号分隔的股票或索引符号列表。
昨天查询停止工作,只返回"已暂时移动"。正在重定向到…"邮件。
此Web服务现在关闭了吗?它是否已被YQL或其他API替换?查询"iChart"的历史价格表仍然有效。例如。,
1 | 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。
这可以通过在调用get请求时将用户代理添加为"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"来解决。
例如,如果您是从PHP中的curl下载的,请按如下方式使用:
1 | 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"); |
号
我希望这能解决这个问题。
我也有同样的问题。这是从雅虎获取股票的API URL。希望这有帮助。
1 | 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= |
由于服务关闭,我使用以下URL查询雅虎数据(对于aca.pa):
链接
JSON的结果不同,但我发现了我感兴趣的信息。
有关详细信息,请访问https://developer.yahoo.com/yql页面/
是的,看起来确实像雅虎!已经停止使用雅虎金融API(大部分是未注册的私有API),这是许多人多年来一直依赖的货币数据。在过去的24小时里,我们收到了一些关于它的通知。(编辑:所有回复似乎都返回了
我大约在五年前创建了开放式汇率,我们的汇率API现在支持由数万开发人员和他们的数千万用户组成的社区,提供准确、最新的信息。
欢迎访问我们的永久免费服务:https://openexchangerates.org。
我们的API是一种简单的原始JSON格式,它实际上已经成为显示速率的标准方法,因为它非常简单(不像Yahoo API,它要求您解析模糊的嵌套对象,以提取所需的基本信息…)
如果你需要从被否决的雅虎移植的帮助!API,我们很乐意通过电子邮件提供帮助。
(我是开放汇率的创始人。)
我是Github上ValueViz的作者。
每日价格
您需要熟悉RESTful服务。
https://quantprice.herokuapp.com/api/v1.1/scoop/day?Tickers=MSFT&Date=2017年6月9日
历史价格
您必须提供日期范围:
https://quantprice.herokuapp.com/api/v1.1/scoop/period?tickers=msft&begin=2012-02-19&end=2012-02-20
如果不提供开始或结束日期,则将使用最早或当前日期:
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,请在Twitter上给我发送dm。您将收到一个要添加到URL的API密钥。
我们正在建立一个PayPal帐户付费订阅无利率。
可用的票据列表
https://github.com/robotomic/valueviz/blob/master/scoop_tickers.csv
我还致力于提供EDGAR的基础数据和公司数据。干杯。
查看这个优秀的API包装,可以在nuget上找到:https://github.com/salmonthinlion/yahoofinanceapi
接收股市价目
1 2 3 | 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]; |
。
获取股票的历史数据
1 2 3 4 5 6 | // 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}"); } |
获取股票的股息历史记录
1 2 3 4 5 6 | // 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}"); } |
。
我找到了一种使用csv a api的方法。
链接
需要在其中编写符号、参数和列。
使用此网站查找所需参数:http://www.jarloo.com/yahoo_finance/
例子:
如果你需要知道符号的音量用
用
唯一的问题是数据有点随机,不像WebServiceAPI那样实时。
它正在重定向到同一页,但是添加了参数"bypass=true",这会产生错误。
编辑:https://stackoverflow.com/users/6593038/hemant-prasad给出的答案对我有用。将用户代理更改为移动设备时,API工作正常,目前还没有重定向。
这是我在Java中使用的代码(它是为XML版本使用的,但它也可以用于JSON):
1 2 3 4 | 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 ()); |
python yahoo finance api似乎也有问题。例如,如果你用它来查找亚马逊的股票价格,它会反复显示相同的两个值。
1 2 3 4 5 6 7 8 9 | 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() + ' ' print (s) f.write (s) f.flush() time.sleep(5) del amzn |