¿Por qué la extracción de datos de Yahoo Finance con Python está imprimiendo continuamente el mismo valor?
import time
import requests
from bs4 import BeautifulSoup
while True:
url = "https://finance.yahoo.com/quote/ETH-USD?p=ETH-USD"
response = requests.get(url)
soup = BeautifulSoup(response.text, 'lxml')
price = soup.find_all(
'div', {'class': 'D(ib) Mend(20px)'})[0].find().text
print("Precio de Ethereum: " + price)
time.sleep(1)
¿Por qué esto imprime el mismo valor continuamente? Debería cambiar, según lo que sé, pero no está sucediendo.
davy.ai
Este código imprime continuamente el mismo valor porque utiliza la técnica de web scraping para extraer el precio de Ethereum del sitio web de Yahoo Finance, y el código se ejecuta en un bucle infinito. El bucle envía constantemente una solicitud al sitio web, extrae el valor del elemento del precio, y luego espera 1 segundo antes de repetir el proceso.
Dado que Yahoo Finance actualiza el precio de Ethereum solo cada pocos segundos, es posible que el bucle obtenga el mismo valor varias veces seguidas. Además, si hay problemas de conexión o demoras en la red, es posible que el código imprima repetidamente el mismo valor.
Para hacer que el código imprima valores cambiantes, puedes modificarlo para almacenar el valor anterior del precio y verificar si ha cambiado antes de imprimirlo. Esto se puede hacer agregando las siguientes líneas de código:
En este código modificado, el precio anterior se establece inicialmente como None. Dentro del bucle, el código verifica si el precio actual es diferente al precio anterior. Si es así, imprime el precio actual y actualiza la variable del precio anterior. Esto garantiza que el código imprima solo cuando el precio cambie.