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.
0 votos
¿Esto viola los términos de servicio de Yahoo Finance?