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.

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 SolidQ:

PowerBI Bookmarks! ¿Para qué sirven? Y ¿Cómo puedo utilizarlos?

Una vez hemos elegido nuestra página web plantilla, vamos al menú Get data y seleccionamos el conector web:

Get Data Menu

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

Add Table Using Examples

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

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».

Añadir Parámetro

Add 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

Parameter Configuration

para hacer la que la Query utilice ese parámetro, hacemos click derecho sobre la Query y seleccionamos «Advanced Editor«.

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

Query M Code

 

Replacing With Url Parameter

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

Create Custom Function

Le damos el nombre que queramos y creamos.

Custom Function Creation

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

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

Apply Custom Function

y Finalmente tenemos la información de todas las URLs de nuestra tabla, esto tardará un poco.

Result

Result

 

¡Gracias por seguir esta entrada! Cualquier duda, ¡comentad!

 

¿Quieres estar actualizado de todas las novedades de Power BI? Apúntate a nuestros webinars mensuales aquí

 

Saludos

Julio Granados