Resumen del post (2 minutos de lectura)
· Luego de realizar el scraping de datos de lúpulo que se detalla en este post, se decide realizar una visualización de los datos con Tableau
· Para asegurar los datos y que sean fácilmente accesibles, se envían los datos del Jupyter Notebook al MS SQL Server (queda para otro post el wrangling de los datos)
· Finalmente se toman esos datos desde Tableau y se realiza una visualización rápida para ver geográficamente la distribución y algunas características de los lúpulos disponibles (VISUALIZACIÓN INTERACTIVA)
Post completo (10 minutos)
En este post se mostró cómo se realizaba el scrapeo de datos de lúpulos utilizando el paquete BeautifulSoup en Python:
Para estructurar estos datos se utiliza Pandas y llevarlos a un dataframe. Para poder asegurar esos datos y dejarlos disponibles para el uso futuro, se decide llevarlos a SQL. Esto se realiza de la siguiente manera:
PASO 1: importar paquetes requeridos
Se necesita establecer la conexión con MS SQL Server a través de los paquetes ‘sqlalchemy’ y ‘pyodbc’:
import sqlalchemy as sy
import pyodbc
PASO 2: Se crea el motor de conexión a MS SQL
SERVER = 'DESKTOP-1LTQ3UP'
DATABASE = 'DB_TPS'
DRIVER = 'SQL Server Native Client 11.0'
DATABASE_CONNECTION = f'mssql://@{SERVER}/{DATABASE}?driver={DRIVER}'
engine = sy.create_engine(DATABASE_CONNECTION)
connection = engine.connect()
PASO 3: crear una nueva tabla en MS SQL
Ahora se envian el df con los datos de lúpulo a MSSQL con el método ‘to_sql’:
hop_df.to_sql('Hops',engine,if_exists='append', index=False)
Esto crea la tabla ‘Hops’ en la BD:
Finalmente se accede a los datos guardados en la MS SQL con Tableau y se realiza el dashboard para visualizar geográficamente el origen de los lúpulos disponibles como así también algunos datos relevantes.
IMPORTANTE: se puede acceder a la página original del lúpulo desde donde se hizo el scraping en el link que aparece en la ventana emergente al seleccionar un lúpulo en particular
Hi there, just wanted to mention, I enjoyed this post.
It was inspiring. Keep on posting!