3 votos

¿Cómo consultar una acción con el API de Yahoo Finance por medio del ISIN?

Dado un ISIN, por ejemplo FI0009800643, ¿cómo puedo consultar el historial de esta acción? Intenté usar yfinance de la siguiente manera:

msft = yfinance.Ticker(FI0009800643"")
hist = msft.history(period="1d")

pero esto solo devuelve un error No se encontraron datos, es posible que el símbolo haya sido eliminado de la lista.

Pero cuando ingreso el mismo ISIN en la página de Yahoo Finance https://fr.finance.yahoo.com/ obtengo el resultado correcto (en este caso una empresa llamada YIT Oyj en Finlandia.

Entonces, ¿cómo consultar datos con la API de Yahoo Finance dado el ISIN?

0 votos

¿Esto viola los términos de servicio de Yahoo Finanzas?

1voto

Grant Puntos 291

Puedes consultar Yahoo finance para obtener el símbolo de comilla de Yahoo utilizando elemental (que básicamente es selenium). Aquí está el código:

import json
import elemental
import yfinance
import urllib.parse as urlparse
from urllib.parse import parse_qs

def get_quote(symbol):
    msft = yfinance.Ticker(symbol)
    try:
        hist = msft.history(period="2d")
    except json.decoder.JSONDecodeError:
        return None
    try:
        hist.reset_index(inplace=True)
        jsdata = json.loads(hist.to_json())
        return jsdata["Close"]["0"]
    except (ValueError, KeyError) as e:
       return None

def web_lookup(browser, isin):
    # Buscar Elemental en PyPI.
    browser = elemental.Browser()
    browser.visit("https://finance.yahoo.com/lookup")
    browser.get_input(id="yfin-usr-qry").fill(isin)
    browser.get_button(type="submit").click()

    time.sleep(5)

    parsed = urlparse.urlparse(browser.url)
    try:
        ticker = parse_qs(parsed.query)['p'][0]
    except KeyError:
        ticker = "n/a"
    browser.quit()
    return ticker

Cuando llamas a la función web_lookup esencialmente se abrirá la página de búsqueda, el ISIN se introducirá en el cuadro de búsqueda, y el navegador eventualmente navegará a la página de Yahoo con el símbolo de comilla de Yahoo, que se extraerá de la URL a la que navega el navegador. Luego, el código intenta usar este símbolo de comilla para obtener las comillas de los últimos dos días utilizando la API de Yahoo finance. Si todo funciona bien, la función devuelve un símbolo de comilla de Yahoo válido, o n/a en caso de que algo no funcione.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X