かなり長い間、次のREST APIを使用して、現在の価格についてYahooファイナンスにクエリを実行しています。それは、いくつかのStack Overflowの投稿で文書化されています。 Yahoo Finance Webservice および yahoo-finance の他の場所。
http://finance.yahoo.com/webservice/v1/symbols/$SYMBOLS/quote?format=json
ここで、$ SYMBOLSはストックまたはインデックスシンボルのコンマ区切りリストです。
昨日、クエリは動作を停止し、「Moved Temporarily。Redirecting to ...」メッセージのみを返しました。
このWebサービスは現在閉鎖されていますか? 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として追加することで解決できます。取得リクエストを呼び出している間、モバイルSafari/537.36」。
たとえば、PHPでcurlからダウンロードする場合は、次のように使用します。
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");
これで問題が解決することを願っています。
同じ問題がありました。 YAHOOから在庫を取得するためのAPI URLは次のとおりです。お役に立てれば。
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を使用してYahooデータを照会します(ACA.PA用)。
JSONの結果は異なりますが、興味のある情報が見つかりました。
詳細については、ページをご覧ください https://developer.yahoo.com/yql/
はい、Yahoo!のようです。は、多くが長年にわたって通貨データに依存してきた(プライベートで、ほとんど文書化されていない)Yahoo Finance APIを廃止しました。過去24時間にわたって、それに関する通知を受け取りました。 (編集:すべての応答が"Not a valid parameter"
を返しているようです。スイッチを再びオンにする可能性があると思いますが、私が知る限り、そのAPIは公式にはサポートしていません。)
Open Exchange Rates 約5年前に作成しました。現在、為替レートAPIは、数万人の開発者とその数千万人のユーザーのコミュニティを正確で最新の情報でサポートしています。 。
https://openexchangerates.org にあるForever Freeサービスをご覧ください。
私たちのAPIはシンプルでオリジナルのJSON形式であり、実際にレートを表示するための標準的な方法として採用されています。操作がとても簡単なためです(Yahoo APIとは異なり、不明瞭なネストされたオブジェクトを解析して必要な情報...)
廃止されたYahoo!からの移植の支援が必要な場合API、電子メールを介して支援させていただきます。
(私はOpen Exchange Ratesの創設者です。)
私は github のValueVizの著者です。
毎日の価格
RESTFULサービスに精通している必要があります。
https://quantprice.herokuapp.com/api/v1.1/scoop/day?tickers=MSFT&date=2017-06-09
歴史的価格
日付範囲を指定する必要があります:
https://quantprice.herokuapp.com/api/v1.1/scoop/period?tickers=MSFT&begin=2012-02-19&end=2012-02-2
Beginまたはendを指定しない場合、最も早い日付または現在の日付が使用されます。
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
レート制限
すべてのリクエストは、1時間あたり10リクエストに制限されています。フルアクセスAPIに登録する場合は、TwitterでDMを送信してください。 URLに追加するAPIキーを受け取ります。
レートなしの有料サブスクリプション用にPaypalアカウントを設定しています。
利用可能なティッカーのリスト
https://github.com/robomotic/valueviz/blob/master/scoop_tickers.csv
また、EDGARからの基本データと企業データの提供にも取り組んでいます。乾杯。
Csv APIを使用する方法を見つけました。
シンボル、パラメータ、および列を記述する必要がある場所。
このWebサイトを使用して、必要なパラメーターを見つけてください。 http://www.jarloo.com/yahoo_finance/
例:
シンボルのボリュームを知る必要がある場合は、文字列sl1d1t1c1ohgv
をv
に置き換えます
列symbol%2Cprice%2Cdate%2Ctime%2Cchange%2Ccol1%2Chigh%2Clow%2Cvolume
をvolume
に置き換えます
唯一の問題は、データがランダムであり、WebサービスAPIのようにリアルタイムではないことです
同じページにリダイレクトしていますが、パラメーター「bypass = true」を追加するとエラーが発生します。
編集: https://stackoverflow.com/users/6593038/hemant-prasad によって与えられる答えは私のために働いています。ユーザーエージェントをモバイルデバイスに変更する場合、APIは正常に機能し、これまでのところリダイレクトしません。
これは、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 ());
NuGetで入手できるこの優れたAPIラッパーを確認してください。 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}");
}