3 votos

¿Cómo hacer una consulta de acciones con la API de Yahoo Finance por 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, el símbolo puede haber sido retirado 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 Finance?

1voto

Grant Puntos 291

Puedes consultar Yahoo Finance para obtener el símbolo de comilla de Yahoo usando 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 en PyPI Elemental.
    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, se ingresará el ISIN en el cuadro de búsqueda y el navegador finalmente navegará a la página de Yahoo con el símbolo de comilla de Yahoo, que se extraerá de la URL a la que el navegador navega. 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 correctamente, la función devolverá un símbolo de comilla de Yahoo válido, o n/a en caso de que algo no haya funcionado.

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