Extraer datos de páginas web complejas con Power BI

Share on facebook
Share on twitter
Share on linkedin
Share on telegram
Share on whatsapp

Contenidos

En 2018 escribí un artículo que mostraba cómo extraer datos de sitios web usando Power Query en Excel. Para sitios web simples, este proceso es muy sencillo. Para sitios web más complejos, el proceso no siempre es tan fácil. Microsoft está trabajando para mejorar la experiencia «desde la web» y está desarrollando nuevas capacidades. Las nuevas características de Power Query siempre se entregarán como parte de Power BI antes de estar disponibles en Excel. En este artículo, cubriré una nueva función de Power Query que solo está disponible en Power BI y que facilita mucho el proceso de extracción de datos de páginas web complejas. La nueva función se denomina «inferencia de nueva tabla web».

Extracción de datos complejos de páginas web

La extracción de datos tabulares de una página web anteriormente solo funcionaba bien si había una tabla HTML subyacente que presentaba los datos en la pantalla. La función «nueva tabla web a partir de inferencia» es una mejora de cambio escalonado en la forma en que Power Query extrae datos. En resumen, Power Query mira la página web renderizada final en la pantalla, luego analiza el código subyacente (php, css, js, etc.) para averiguar cómo extraer los datos correctos. Esta función aún se está desarrollando y, por lo tanto, no funcionará para todas las páginas web, pero ya es bastante buena.

Antes de poder utilizar esta función, debe activarla en la configuración de funciones de vista previa. Vaya a Archivo Opciones Opciones y configuración Funciones de vista previa y luego enciéndalo como se muestra a continuación.

new-web-table-inference-4076397

Un ejemplo de la nueva tabla web a partir de inferencia

En este artículo, le mostraré cómo usar esta nueva función de vista previa para extraer datos de sitios web usando el mismo ejemplo que usé en mi artículo anterior. Los datos que quiero extraer es el número de vistas de las publicaciones por tema en el Foro de PowerPivot que poseo y opero. Cuando busqué mis publicaciones en el sitio web, encontré 1.067 coincidencias. Como puede ver en la imagen a continuación, estas publicaciones me son entregadas 10 publicaciones por página web en 107 páginas web. Para esta demostración, extraeré una tabla que contiene el nombre del foro, el tema y el número de visitas (# 2 a continuación) de la primera página.

ppf_posts-1-1024x508-6509890

Por supuesto, es posible crear una función y extraer los 1.067 artículos, pero lo he cubierto en otras publicaciones.

Antes de activar una nueva tabla web desde la inferencia

Si intento extraer la lista de artículos del foro anterior sin utilizar la nueva función de vista previa, esto es lo que me presenta Power Query.

before-9142935

Observe cómo Power Query no puede identificar la estructura tabular de la página y, en cambio, muestra una sola tabla (n. ° 1 arriba) que es simplemente algunos datos técnicos HTML (n. ° 2 arriba). Este enfoque estándar no va a resolver el problema y, por lo tanto, necesitaré usar la nueva función de vista previa.

Ingrese a la nueva tabla web desde la función de vista previa de inferencia

Con la nueva función, hay 2 opciones para extraer la tabla que busco.

Tablas sugeridas

Como puede ver en la imagen a continuación, ahora hay 7 nuevas tablas sugeridas que podrían importarse. Esta es la nueva característica: infiere las tablas analizando la página. Ahora, si una de estas tablas contiene todo lo que necesita, simplemente puede comenzar con la tabla sugerida y realizar los cambios necesarios desde allí. Esto funcionará bien siempre que una de las tablas sugeridas contenga un superconjunto de todo lo que necesita, sin falta nada. Si falta al menos una columna de datos, deberá utilizar el otro enfoque y crear su propia tabla.

suggested-2331941

Como resulta en mi ejemplo de demostración, podría haber usado la Tabla 1 anterior, pero en su lugar usaré el segundo enfoque.

Uso de la opción «Desde la web por ejemplo»

Esta opción le permite crear su propia tabla mostrando a Power Query lo que espera. Esta función ya está disponible desde hace un tiempo, pero se está mejorando continuamente. Incluso si lo usó antes y no funcionó para usted, vale la pena echarle otro vistazo.

Para usar la tabla creada manualmente, haga clic en «Agregar tabla usando ejemplos» en la esquina inferior izquierda (# 1 a continuación).

ppf_posts-2-9376587

Después de hacer clic, se le presentará un diseño de estilo de hoja de cálculo donde puede escribir ejemplos de lo que desea ver en la tabla final (vea la mitad inferior de la imagen a continuación). Tenga en cuenta que Intellisense le ayuda y presenta una lista de valores posibles a medida que comienza a ingresar datos; simplemente seleccione el que desee de la lista de opciones presentadas.

ppf_posts-3-4724055

En la imagen de arriba, estoy extrayendo el nombre del foro (# 1 arriba) en la columna 1. Para hacer esto, necesito escribir el nombre exacto del foro, luego elegir la representación correcta que quiero de la lista. Trate de evitar escribirlos en su totalidad: cualquier error de ortografía o error tipográfico evitará que Power Query complete la tarea, por lo que es mejor elegir de la lista.

Una vez hecho esto, hice lo mismo con el tema (n. ° 2) y las vistas (n. ° 3) como se puede ver a continuación.

ppf_posts-4-1-6911009

Es común que deba ingresar una segunda fila de datos de muestra para que Power Query pueda estar seguro del patrón de los datos web. Debe elegir la siguiente entrada consecutiva en la página web, de lo contrario el proceso no extraerá correctamente todos los datos de la página. La imagen a continuación muestra que he seleccionado los valores para las primeras 2 columnas en la segunda fila: Power BI llenó el valor de la tercera columna y también el resto de la tabla (las otras 8 filas). Una vez que la tabla se completa automáticamente con los valores correctos, puede estar seguro de que Power Query ha identificado correctamente el patrón.

ppf_posts-5-4517748

Ahora puede simplemente hacer clic en «Aceptar» y cargar los datos.

¿Qué sigue?

Realmente me gusta esta función y creo que es un gran ejemplo de cómo Microsoft está mejorando la experiencia del usuario final mediante el uso de técnicas de inteligencia artificial bajo el capó. Creo que puede esperar muchas más funciones como esta en el futuro.

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.