market google for developer data api yahoo-finance

google - yahoo finance api json



¿Yahoo de repente terminó hoy su API de descarga de finanzas? (5)

Como se señaló en las otras respuestas y en otros lugares (por ejemplo , ayudante de divisas de yahoo - Lo sentimos, no se puede procesar la solicitud en este momento - error 999 ), Yahoo ha dejado de operar la API de Yahoo Finance. Sin embargo, como solución alternativa, puede acceder a un tesoro de información financiera, en formato JSON, para un símbolo de teletipo dado, haciendo una solicitud HTTPS GET a: https://finance.yahoo.com/quote/SYMBOL (por ejemplo, https://finance.yahoo.com/quote/MSFT ). Si realiza una solicitud GET a la URL anterior, verá que los datos financieros están contenidos en la respuesta en formato JSON. El siguiente script de Python muestra cómo puede analizar valores individuales en los que pueda estar interesado:

import requests import json symbol=''MSFT'' url=''https://finance.yahoo.com/quote/'' + symbol resp = requests.get(url) #parse the section from the html document containing the raw json data that we need #you can write jsonstr to a file, then open the file in a web browser to browse the structure of the json data r=resp.text.encode(''utf-8'') i1=0 i1=r.find(''root.App.main'', i1) i1=r.find(''{'', i1) i2=r.find("/n", i1) i2=r.rfind('';'', i1, i2) jsonstr=r[i1:i2] #load the raw json data into a python data object data = json.loads(jsonstr) #pull the values that we are interested in name=data[''context''][''dispatcher''][''stores''][''QuoteSummaryStore''][''price''][''shortName''] price=data[''context''][''dispatcher''][''stores''][''QuoteSummaryStore''][''price''][''regularMarketPrice''][''raw''] change=data[''context''][''dispatcher''][''stores''][''QuoteSummaryStore''][''price''][''regularMarketChange''][''raw''] shares_outstanding=data[''context''][''dispatcher''][''stores''][''QuoteSummaryStore''][''defaultKeyStatistics''][''sharesOutstanding''][''raw''] market_cap=data[''context''][''dispatcher''][''stores''][''QuoteSummaryStore''][''summaryDetail''][''marketCap''][''raw''] trailing_pe=data[''context''][''dispatcher''][''stores''][''QuoteSummaryStore''][''summaryDetail''][''trailingPE''][''raw''] earnings_per_share=data[''context''][''dispatcher''][''stores''][''QuoteSummaryStore''][''defaultKeyStatistics''][''trailingEps''][''raw''] forward_annual_dividend_rate=data[''context''][''dispatcher''][''stores''][''QuoteSummaryStore''][''summaryDetail''][''dividendRate''][''raw''] forward_annual_dividend_yield=data[''context''][''dispatcher''][''stores''][''QuoteSummaryStore''][''summaryDetail''][''dividendYield''][''raw''] #print the values print ''Symbol:'', symbol print ''Name:'', name print ''Price:'', price print ''Change:'', change print ''Shares Outstanding:'', shares_outstanding print ''Market Cap:'', market_cap print ''Trailing PE:'', trailing_pe print ''Earnings Per Share:'', earnings_per_share print ''Forward Annual Dividend Rate:'', forward_annual_dividend_rate print ''Forward_annual_dividend_yield:'', forward_annual_dividend_yield

El resultado del script debería verse así:

Symbol: MSFT Name: Microsoft Corporation Price: 84.14 Change: 0.08999634 Shares Outstanding: 7714590208 Market Cap: 649105637376 Trailing PE: 31.04797 Earnings Per Share: 2.71 Forward Annual Dividend Rate: 1.68 Forward_annual_dividend_yield: 0.02

Durante meses he estado usando una url como esta, de perl:

http://finance.yahoo.com/d/quotes.csv?s=$s&f=ynl1 #returns yield, name, price;

Hoy, 11/1/17, de repente devuelve un error 999.

¿Es esto un problema técnico o Yahoo ha cancelado el servicio?

Recibo el error incluso si ingreso la URL directamente en un navegador como, por ejemplo:

http://finance.yahoo.com/d/quotes.csv?s=INTC&f=ynl1

así que no parece ser un problema de ''migajas''.

Nota: ¡Esta NO es una pregunta que ha sido respondida en el pasado! Estaba funcionando ayer. Lo que sucedió el primero de mes es sospechoso.


Mi programa Python que usa Yahoo Finance recientemente dejó de funcionar correctamente, pero no devolvió ese error, simplemente reemplazó los precios de las acciones con ceros. Inicialmente vi esto cuando depuré y luego, cuando fui a las URL de finanzas de Yahoo para esas acciones, confirmé el error. Como los datos reales están desordenados, no creo que las soluciones sugeridas puedan solucionar mis problemas. ¿Es probable que esto esté relacionado con que Yahoo suspenda su API? No puedo entender qué podría explicar esto.

Ejemplos:


Todavía hay una manera de obtener estos datos consultando algunas API utilizadas por la página finance.yahoo.com. No estoy seguro de si Yahoo lo apoyará a largo plazo como lo hizo la API anterior (con suerte lo harán).

Adapte el método utilizado por https://github.com/pstadler/ticker.sh en el siguiente pirateo de Python que toma una lista de símbolos de la línea de comando y genera algunas de las variables como un csv:

#!/usr/bin/env python import sys import time import requests if len(sys.argv) < 2: print("missing parameters: <symbol> ...") exit() apiEndpoint = "https://query1.finance.yahoo.com/v7/finance/quote" fields = [ ''symbol'', ''regularMarketVolume'', ''regularMarketPrice'', ''regularMarketDayHigh'', ''regularMarketDayLow'', ''regularMarketTime'', ''regularMarketChangePercent''] fields = '',''.join(fields) symbols = sys.argv[1:] symbols = '',''.join(symbols) payload = { ''lang'': ''en-US'', ''region'': ''US'', ''corsDomain'': ''finance.yahoo.com'', ''fields'': fields, ''symbols'': symbols} r = requests.get(apiEndpoint, params=payload) for i in r.json()[''quoteResponse''][''result'']: if ''regularMarketPrice'' in i: a = [] a.append(i[''symbol'']) a.append(i[''regularMarketPrice'']) a.append(time.strftime( ''%Y-%m-%d %H:%M:%S'', time.localtime(i[''regularMarketTime'']))) a.append(i[''regularMarketChangePercent'']) a.append(i[''regularMarketVolume'']) a.append("{0:.2f} - {1:.2f}".format( i[''regularMarketDayLow''], i[''regularMarketDayHigh''])) print(",".join([str(e) for e in a]))

Ejecución de muestra:

$ ./getquotePy.py AAPL GOOGL AAPL,174.5342,2017-11-07 17:21:28,0.1630961,19905458,173.60 - 173.60 GOOGL,1048.6753,2017-11-07 17:21:22,0.5749836,840447,1043.00 - 1043.00


Yahoo confirmed que terminaron el servicio:

Nos ha llamado la atención que este servicio se está utilizando en violación de los Términos de servicio de Yahoo. Como tal, el servicio está siendo descontinuado. Para todas las investigaciones futuras de datos de mercados y acciones, consulte finance.yahoo.com.


var API = "https://query1.finance.yahoo.com/v7/finance/quote?symbols=AAPL"; $.getJSON(API, function (json) {...}); la llamada arroja este error: No hay encabezado ''Access-Control-Allow-Origin'' presente en el recurso solicitado. Por lo tanto, el origen '' http://www.microplan.at/sar '' no tiene acceso permitido.