Подтвердить что ты не робот

Сбой веб-службы Yahoo Finance исчез? API изменился? Вниз временно?

В течение некоторого времени я использовал следующий REST API для запроса финансирования Yahoo для текущих цен. Он документирован в нескольких сообщениях, например. Yahoo finance webservice и в других местах .

http://finance.yahoo.com/webservice/v1/symbols/$SYMBOLS/quote?format=json

где $SYMBOLS представляет собой список символов или индексных символов с разделителями-запятыми.

Вчера запрос перестает работать, возвращая только сообщение "Перемещено временно. Переадресация на...".

Закрыта ли эта веб-служба? Был ли он заменен YQL или другим API? Запросы на таблицу исторических цен на "ичарт" по-прежнему работают. Например.

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

Спасибо.

4b9b3361

Ответ 1

Я столкнулся с аналогичной проблемой за последние 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" при вызове запроса на получение.

Например, если вы загружаете из 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");

Я надеюсь, что это решит проблему.

Ответ 2

Поскольку служба недоступна, я использую следующий URL для запроса данных Yahoo (для ACA.PA):

Ссылка

Результат JSON отличается, но я нашел интересующую меня информацию.

Для получения дополнительной информации посетите страницу https://developer.yahoo.com/yql/

Ответ 3

У меня была такая же проблема. Вот URL-адрес API, чтобы вытащить запас из YAHOO. Надеюсь, это поможет.

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=

Ответ 4

Да, это похоже на Yahoo! прекратил (частный, в основном недокументированный) Yahoo Finance API, на который многие многие годы полагались на валютные данные. За последние 24 часа мы получили некоторые уведомления об этом. (edit: Кажется, что все ответы возвращаются "Not a valid parameter". Я полагаю, есть шанс, что они могут снова включить его, но они официально не поддерживают этот API нигде, насколько я могу судить.)

Я создал Open Exchange Rates около пяти лет назад, и наш API обменного курса теперь поддерживает сообщество десятков тысяч разработчиков - и их десятки миллионов пользователей - с точной и актуальной информацией.

Пожалуйста, ознакомьтесь с нашим сервисом Forever Free по адресу https://openexchangerates.org.

Наш API находится в простом, оригинальном формате JSON, который фактически стал стандартным методом отображения ставок, потому что он настолько прост в работе (в отличие от API Yahoo, который требовал от вас разобрать скрытые вложенные объекты вам нужна основная информация...)

Если вам нужна помощь в переносе с устаревшего Yahoo! API, мы будем рады помочь по электронной почте.

(Я являюсь основателем Open Exchange Rates.)

Ответ 5

Я являюсь автором ValueViz на github.

Суточные цены

Вы должны быть знакомы с 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-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 полного доступа, отправьте мне DM на твиттер. Вы получите ключ API для добавления в URL.

Мы создаем PayPal-аккаунт для платной подписки без ставок.

Список доступных тикеров

https://github.com/robomotic/valueviz/blob/master/scoop_tickers.csv

Я также работаю над предоставлением фундаментальных данных и данных компании из EDGAR. Приветствия.

Ответ 6

Он перенаправляется на ту же страницу, но добавляет параметр "bypass = true", который дает ошибку.

EDIT: Ответ, полученный 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 ());

Ответ 7

Я нашел способ использования API csv.

ссылка

где вам нужно написать символ, параметры и столбцы.

Используйте этот сайт, чтобы найти необходимые параметры: http://www.jarloo.com/yahoo_finance/

Пример:

Если вам нужно знать объем символа замените строку sl1d1t1c1ohgv на v

и замените столбцы symbol%2Cprice%2Cdate%2Ctime%2Cchange%2Ccol1%2Chigh%2Clow%2Cvolume на volume

Единственная проблема заключается в том, что данные являются случайными, а не реальными, например, в веб-сервисе API

Ответ 8

Ознакомьтесь с превосходным API-интерфейсом 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}");
}

Ответ 9

Python Yahoo Finance API, похоже, тоже проблема. Если вы используете его для поиска, например, цены акций Amazon, он снова показывает те же два значения снова и снова.

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