¿Ha desaparecido el servicio web de Yahoo? API cambió? Abajo temporalmente?

Durante bastante tiempo he estado usando la siguiente API REST para consultar las finanzas de Yahoo a los precios actuales. Está documentado en varias publicaciones de Stack Overflow, por ejemplo, el servicio web de finanzas Yahoo y en otros sitios en yahoo-finance .

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

donde $ SÍMBOLOS es una lista delimitada por comas de símbolos de valores o índices.

Ayer, la consulta dejó de funcionar y solo devolvió un mensaje de “Movido temporalmente. Redirigir a …”.

¿Este servicio web ahora está cerrado? ¿Ha sido reemplazado por YQL u otra API? Las consultas para una tabla de precios históricos para “ichart” aún funcionan. P.ej,

 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 

Gracias.

Me enfrentaba a un problema similar en los últimos 2 o 3 días. La url funciona en el teléfono inteligente, donde en el escritorio muestra el error “No es un parámetro válido” y el código HTTP 406.

Esto puede resolverse agregando agente de usuario como “Mozilla / 5.0 (Linux; Android 6.0.1; MotoG3 Build / MPI24.107-55) AppleWebKit / 537.36 (KHTML, como Gecko) Chrome / 51.0.2704.81 Mobile Safari / 537.36” mientras invocando la solicitud de obtención.

Por ejemplo, si está descargando desde curl en php, use de la siguiente manera:

 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"); 

Espero que esto resuelva el problema.

Tuve el mismo problema. Aquí está la URL API para obtener acciones de YAHOO. Espero que esto ayude.

 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= 

Como el servicio no funciona, utilizo la siguiente URL para consultar datos de Yahoo (para ACA.PA):

Enlazar

El resultado de JSON es diferente, pero encontré la información que me interesa.

Para obtener más información, visite la página https://developer.yahoo.com/yql/

Sí, parece que Yahoo! ha suspendido la API de Yahoo Finance (privada, en su mayoría no documentada) de la que muchos han confiado durante años para los datos de divisas. Recibimos algunas notificaciones al respecto en las últimas 24 horas. (editar: todas las respuestas parecen estar respondiendo "Not a valid parameter" . Supongo que existe la posibilidad de que se vuelvan a activar, pero no admiten oficialmente esa API en ninguna parte, por lo que yo sé).

Creé las tasas de cambio abiertas hace unos cinco años, y nuestra API de tipo de cambio ahora admite una comunidad de decenas de miles de desarrolladores, y sus decenas de millones de usuarios, con información precisa y actualizada.

Siéntase bienvenido a echarle un vistazo a nuestro servicio Forever Free en https://openexchangerates.org .

Nuestra API está en un formato JSON simple y original, que se ha convertido en un método estándar para mostrar las tasas porque es muy fácil trabajar con él (a diferencia de la API de Yahoo, que requería analizar los objetos nesteds oscuros para extraer los elementos básicos). información que necesitabas …)

Si necesita ayuda para portar desde Yahoo! API, estaremos encantados de ayudarlo por correo electrónico.

(Soy el fundador de Open Exchange Rates).

Soy el autor de ValueViz en github .

Precios diarios

Debe estar familiarizado con los servicios RESTFUL.

https://quantprice.herokuapp.com/api/v1.1/scoop/day?tickers=MSFT&date=2017-06-09

Precios históricos

Debes proporcionar un rango de fechas:

https://quantprice.herokuapp.com/api/v1.1/scoop/period?tickers=MSFT&begin=2012-02-19&end=2012-02-20

Si no proporciona inicio ni finalización, usará la fecha más temprana o actual:

https://quantprice.herokuapp.com/api/v1.1/scoop/period?tickers=MSFT&begin=2012-02-19

Tickers múltiples

Puedes simplemente poner comas por separado:

https://quantprice.herokuapp.com/api/v1.1/scoop/period?tickers=IBM,MSFT&begin=2012-02-19

Límite de tarifa

Todas las solicitudes tienen una tarifa limitada a 10 solicitudes por hora. Si desea registrarse para obtener una API de acceso completo, envíeme DM en twitter. Recibirá una clave API para agregar a la URL.

Estamos configurando una cuenta de Paypal para la suscripción paga sin tarifas.

Lista de tickers disponibles

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

También estoy trabajando para proporcionar datos fundamentales y datos de la empresa de EDGAR. Aclamaciones.

Está redireccionando a la misma página, pero agregando el parámetro “bypass = true”, que da un error.

EDITAR: La respuesta dada por https://stackoverflow.com/users/6593038/hemant-prasad me funciona. Al cambiar el agente de usuario a un dispositivo móvil, la API funciona bien, y no redirige hasta ahora.

Este es el código que estoy usando en Java (es para la versión XML, pero también se puede usar para 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 ()); 

Vea esta excelente envoltura de API, disponible en NuGet: https://github.com/salmonthinlion/YahooFinanceApi

Obtenga cotizaciones de acciones

 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]; 

Obtenga datos históricos para una acción

 // 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}"); } 

Obtenga el historial de dividendos de una acción

 // 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}"); } 

Encontré una forma de usar la API csv.

enlazar

donde necesita escribir el símbolo, los parámetros y las columnas.

Utilice este sitio web para encontrar los parámetros necesarios: http://www.jarloo.com/yahoo_finance/

ejemplo:

Si necesita saber el volumen del símbolo, reemplace la cadena sl1d1t1c1ohgv con v

y reemplace el symbol%2Cprice%2Cdate%2Ctime%2Cchange%2Ccol1%2Chigh%2Clow%2Cvolume las columnas symbol%2Cprice%2Cdate%2Ctime%2Cchange%2Ccol1%2Chigh%2Clow%2Cvolume with volume

El único problema es que los datos son un poco aleatorios y no en tiempo real como en la API del servicio web

La Python Yahoo Finance API parece tener un problema también. Si lo usa para buscar, por ejemplo, precios de acciones de Amazon, solo muestra los mismos dos valores una y otra vez.

 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 
Intereting Posts