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