Noticia

Guía práctica para desplegar una aplicación Streamlit con Cloudflared, BeautifulSoup, Pandas y Plotly para scraping y visualización en tiempo real de criptomonedas

Guía Completa para Desplegar una Aplicación Streamlit Usando Cloudflared, BeautifulSoup, Pandas y Plotly para el Scraping y Visualización de Criptomonedas en Tiempo Real En este artículo, nos embarcaremos en un…

Guía práctica para desplegar una aplicación Streamlit con Cloudflared, BeautifulSoup, Pandas y Plotly para scraping y visualización en tiempo real de criptomonedas

Guía Completa para Desplegar una Aplicación Streamlit Usando Cloudflared, BeautifulSoup, Pandas y Plotly para el Scraping y Visualización de Criptomonedas en Tiempo Real

En este artículo, nos embarcaremos en un recorrido práctico y sin complicaciones utilizando Cloudflared, una herramienta de Cloudflare que nos permite crear un enlace seguro y accesible públicamente para nuestra aplicación Streamlit. Al finalizar esta guía, habremos construido un dashboard de criptomonedas completamente funcional que extrae y visualiza datos de precios en tiempo real desde CoinMarketCap. Podremos rastrear las 10 principales criptomonedas, comparar sus precios y capitalizaciones de mercado, y visualizar gráficos interactivos para obtener mejores perspectivas.

¿Qué Necesitamos?

Antes de comenzar, asegurémonos de tener instaladas las siguientes dependencias necesarias para construir y desplegar nuestro dashboard de criptomonedas basado en Streamlit:

  1. Streamlit: Para crear la aplicación web.
  2. BeautifulSoup4: Para realizar el scraping web.
  3. Pandas: Para la manipulación de datos.
  4. Plotly: Para visualizaciones interactivas.
  5. LocalTunnel: Para crear una URL pública que permita acceder a la aplicación desde Google Colab.

Instalación de Dependencias

Para instalar las dependencias, ejecutamos los siguientes comandos en nuestro entorno de Google Colab:

!pip install streamlit beautifulsoup4 pandas plotly
!npm install -g localtunnel

Creando la Aplicación Streamlit

A continuación, definimos una aplicación web en Streamlit que scrapea los precios de criptomonedas en tiempo real desde CoinMarketCap y los muestra en un dashboard interactivo. Utilizaremos BeautifulSoup4 para extraer las 10 principales criptomonedas, incluyendo su nombre, símbolo, precio, cambio porcentual y capitalización de mercado.

Estructura del Código

Aquí hay un ejemplo de cómo podría estructurarse nuestro código:

import streamlit as st
import pandas as pd
import requests
from bs4 import BeautifulSoup
import plotly.express as px

# Función para obtener datos de CoinMarketCap
def obtener_datos():
    url = 'https://coinmarketcap.com/es/'
    response = requests.get(url)
    soup = BeautifulSoup(response.text, 'html.parser')

    # Extraer datos
    criptomonedas = []
    for row in soup.find_all('tr')[1:11]:  # Solo las 10 primeras
        cols = row.find_all('td')
        nombre = cols[2].text.strip()
        simbolo = cols[3].text.strip()
        precio = float(cols[4].text.strip().replace('$', '').replace(',', ''))
        cambio = float(cols[5].text.strip().replace('%', ''))
        capitalizacion = float(cols[6].text.strip().replace('$', '').replace(',', ''))
        criptomonedas.append([nombre, simbolo, precio, cambio, capitalizacion])

    return pd.DataFrame(criptomonedas, columns=['Nombre', 'Símbolo', 'Precio', 'Cambio (%)', 'Capitalización'])

# Configuración de Streamlit
st.title('Dashboard de Criptomonedas en Tiempo Real')
datos = obtener_datos()

# Visualización de datos
st.write(datos)

# Gráficos interactivos
fig_precio = px.bar(datos, x='Nombre', y='Precio', title='Comparación de Precios')
st.plotly_chart(fig_precio)

fig_capitalizacion = px.pie(datos, values='Capitalización', names='Nombre', title='Distribución de Capitalización')
st.plotly_chart(fig_capitalizacion)

Manejo de Errores

Es importante manejar posibles errores al obtener datos. Si ocurre un error, podemos mostrar un mensaje informativo al usuario:

try:
    datos = obtener_datos()
except Exception as e:
    st.error(f"Ocurrió un error al obtener los datos: {e}")

Desplegando la Aplicación

Finalmente, para lanzar la aplicación Streamlit en segundo plano, utilizamos subprocess.Popen y la configuramos para que se ejecute en el puerto 8501. Un breve retraso (time.sleep(5)) asegura que la aplicación se inicialice correctamente antes de iniciar el túnel de Cloudflared, que crea una URL pública para acceder a la aplicación desde Google Colab sin necesidad de autenticación o configuraciones adicionales.

import subprocess
import time

# Lanzar la aplicación Streamlit
subprocess.Popen(['streamlit', 'run', 'app.py'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
time.sleep(5)

# Iniciar el túnel de Cloudflared
!cloudflared tunnel --url http://localhost:8501

Beneficios de Este Enfoque

Este tutorial nos ha proporcionado una guía paso a paso para construir y desplegar una aplicación de seguimiento de criptomonedas en tiempo real utilizando Streamlit, BeautifulSoup, Pandas y Plotly. A diferencia de los métodos de alojamiento tradicionales, este enfoque garantiza un despliegue sencillo sin complicaciones de autenticación. Ya sea que seamos principiantes explorando el scraping web y la visualización de datos o desarrolladores en busca de un método de despliegue ligero y accesible, esta guía nos equipa con las herramientas necesarias para construir y compartir aplicaciones web interactivas de manera eficiente.

Recursos Adicionales

Para facilitar el proceso, aquí están los enlaces a los recursos utilizados en este proyecto:

No olvidemos seguirnos en nuestras redes sociales para más actualizaciones:

Lectura Recomendada

Para aquellos interesados en el desarrollo de inteligencia artificial, les recomendamos leer sobre el lanzamiento de NEXUS por LG AI Research, un sistema avanzado que integra estándares de cumplimiento de datos para abordar preocupaciones legales en conjuntos de datos de IA. Pueden encontrar más información aquí.


Preguntas Frecuentes (FAQs)

  1. ¿Qué es Streamlit y por qué debería usarlo?
    Streamlit es una herramienta de código abierto que permite crear aplicaciones web interactivas de manera rápida y sencilla, ideal para visualización de datos y prototipos.

  2. ¿Cómo funciona el scraping web con BeautifulSoup?
    BeautifulSoup es una biblioteca de Python que facilita la extracción de datos de archivos HTML y XML, permitiéndonos navegar por el árbol de documentos y extraer información específica.

  3. ¿Es seguro usar Cloudflared para desplegar aplicaciones?
    Sí, Cloudflared proporciona un túnel seguro que permite acceder a aplicaciones locales a través de una URL pública sin necesidad de configuraciones complicadas.

  4. ¿Puedo personalizar el dashboard de criptomonedas?
    Absolutamente, puedes modificar el código para incluir más criptomonedas, diferentes visualizaciones o incluso agregar funcionalidades adicionales según tus necesidades.

  5. ¿Qué otros usos tiene Pandas en el análisis de datos?
    Pandas es una biblioteca versátil que permite realizar operaciones de manipulación de datos, análisis estadístico, limpieza de datos y mucho más, siendo fundamental en el análisis de datos en Python.

Escrito por Eduard Ro

marzo 6, 2025

Empecemos

¿Quieres tener contenido como este de forma 100% automática?