雅虎财务网络服务是否已经消失?

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小时里,我们收到了一些关于它的通知。(编辑:所有回复似乎都返回了"Not a valid parameter"。我想他们有可能重新打开它,但据我所知,他们在任何地方都不正式支持该API。)

我大约在五年前创建了开放式汇率,我们的汇率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/

例子:

如果你需要知道符号的音量用v替换字符串sl1d1t1c1ohgv

volume替换柱symbol%2Cprice%2Cdate%2Ctime%2Cchange%2Ccol1%2Chigh%2Clow%2Cvolume

唯一的问题是数据有点随机,不像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