Explicaremos cómo poder extraer datos que tengamos disponibles en páginas web paso a paso, también como podemos automatizar para que sea extensible a todas las páginas que tengan el mismo formato web.
En esta entrada se va a explicar paso a paso como poder extraer datos que tengamos disponibles en páginas web, también como podemos automatizar para que sea extensible a todas las páginas que tengan el mismo formato web.
Web Scraping con Power BI
Para conseguir ese “web scraping” con Power BI, haremos uso de las siguientes features:
- Conector web.
- Web By Example.
- Custom Functions.
- Parámetros.
El primer paso para extraer estos datos web es elegir una página web la cual será nuestra plantilla de extracción por así decirlo, en este caso utilizaré un Post del blog de Verne Academy:
Una vez hemos elegido nuestra página web plantilla, vamos al menú Get data y seleccionamos el conector web:
Get Data Menu
Una vez dentro, insertamos la página web y hacemos click en OK.
Esto nos abre el menú navigator dentro de este menú vamos a utilizar la primera feature “Web from Example”, para hacerlo seleccionamos add table using example:
Add Table Using Examples
Cursos de Power BI
Cómo acceder a la información de la web
Para acceder a la información de la página Web, solo tenemos que hacer click en las filas de las columnas y escribir el valor del contenido que se quiere extraer de la web, el intellisense nos hará sugerencias sobre qué contenido está disponible en la página web.
Seleccionamos todas las columnas que queremos extraer de la página web y hacemos click en OK, ahora la nueva tabla con la selección de columnas la tendremos disponible desde el menú navigator.
Seleccionamos la opción editar para ir al menú de Power Query, y comenzar a hacer extensible esta consulta “Plantilla”.
Select The New Table
Seleccionamos la Query, pulsamos f2 para renombrarla y poner el nombre que queramos, en mi caso se va a llamar “plantilla”, una vez hecho esto para poder convertir esta Query en una consulta que pueda ser utilizada de forma genérica por otras tablas tenemos que utilizar un parámetro dentro de ella. Para añadir un parámetro hacemos click derecho debajo de la consulta y elegimos “New Parameter”.
Configuramos el parámetro dándole un nombre, de tipo texto y el valor por defecto insertamos la url que utilizamos para generar la Query plantilla y hacemos click en OK.
Parameter Configuration
para hacer la que la Query utilice ese parámetro, hacemos click derecho sobre la Query y seleccionamos “Advanced Editor“.
Advanced Editor
Esto nos mostrara el código M de la consulta, para hacer que utilice el parámetro seleccionamos la dirección de la página web, borramos y cambiamos por el nombre del parámetro en este caso URL.
Query M Code
Replacing With Url Parameter
El siguiente paso es utilizar la feature Custom function, que genera funciones reutilizables a partir de Querys, para esto solo tenemos que seleccionar la Query y elegir “Custom Function”.
Create Custom Function
Le damos el nombre que queramos y creamos.
Custom Function Creation
El siguiente paso después tener nuestra función customizada lista, es tener el listado de URL las cuales vamos extraerles la información.
En mi caso tenía un excel con el listado de URL , pero este origen puede ser cualquiera.
Lo cargamos dentro de Power BI y finalmente solo tendremos que aplicar la función customizada al listado de URLs, esto se puede desde conseguir desde el menú invoke custom functions.
Invoke Custom Function
Damos nombre a la nueva columna que se agregara como resultado de aplicar la función customizada a nuestra tabla de URLs y Aplicamos.
Apply Custom Function
y Finalmente tenemos la información de todas las URLs de nuestra tabla, esto tardará un poco.
Result
¡Gracias por seguir esta entrada! Cualquier duda, ¡comentad!
Saludos