martes, 23 de mayo de 2017

Extracción de Datos desde Páginas Web Usando Power Query de Excel

Hola, hoy vamos a escribir el primer post sobre extracción de datos. Iniciaremos con la opción de extracción de data de páginas web.

Power query ofrece muchas más fuentes para extraer datos, tales como: SQL Server, Oracle, facebook, listas de Share Point, archivos de Hadoop, MySQL etc. La lista es amplia y diversa y con seguridad suficiente para responder a la mayoría de las necesidades que tengamos.

En los próximos posts, trataremos la extracción de información desde archivos de excel, access, texto y xml.

Iniciemos por crear un nuevo archivo de Excel y vayamos al menú de Power Query:


En la parte izquierda del menú, tenemos las opciones para Obtener datos externos. La primera opción, es para traer datos desde tablas creadas en páginas web. Vamos a probarlo, utilizando la siguiente dirección web: https://msdn.microsoft.com/en-us/library/office/ff834966.aspx

Dicha dirección corresponde a la siguiente página de microsoft:



La tabla resaltada en rojo contiene la data que vamos a extraer. Para hacerlo, damos clic en la opción: Desde la web:


Y en el cuadro de diálogo que se despliega, vamos a ingresar la dirección web de la página:


Damos clic en Aceptar y seleccionamos la opción Anónimo:


Damos clic en Conectar:


Y si todo ha salido bien Power Query establecerá una conexión con la página web. Al lado izquierdo del cuadro de diálogo anterior, aparece la Tabla 0. Si damos clic en ella, tendremos:


Cómo pueden ver, al lado derecho en la vista previa tenemos el contenido de la tabla. Aquí podemos tomar dos caminos. El primero es el de Editar la tabla, es decir realizar tareas de transformación de los datos, que cubriremos en posts futuros. El segundo, es el de cargar la data. Recuerden que el cargue lo podemos hacer como una tabla en Excel o lo podemos llevar al modelo de datos de Excel. Para cargarlo a Excel, basta con dar clic a la opción cargar:


Esta opción construye directamente una tabla en excel:


Si en cambio seleccionamos la opción cargar en, tendremos el siguiente cuadro de diálogo:


Seleccionamos la opción: Crear solo conexión y seleccionamos la casilla: Agregar estos datos al Modelo de datos. Al hacer esto, los datos quedan incorporados al archivo:

Si pasamos el mouse sobre el nombre de la consulta que se ha creado tenemos:


Podemos realizar múltiples consultas y cargarlas en el modelo de datos. Luego las podemos cruzar y consumirlas mediante una tabla, una tabla dinámica o usando Power Pivot.

Siempre que creamos una consulta se crea una conexión en Excel:


Esta conexión está disponible en el menú Datos.

Espero les sirva. Hasta una próxima.


3 comentarios:

  1. Muy buen post. Felicidades

    Mi consulta es la siguiente, ingreso a la página de donde deseo extraer los datos; sin embargo tengo que hacer click a cada dato para que me muestre en una pantalla aparte la información que necesito. Puedo hacer algo con el Power query?

    ResponderBorrar
    Respuestas
    1. Hola Julio, para lo que quieres hacer no te serviría el Power Query. Este extrae la información de las páginas leyendo el contenido de las etiquetas table de html. Creo que lo que quieres hacer se parece más a hacer un web scraping. En este blog tengo 4 posts en los que explico como realizarlo, utilizando vba: http://eduardoalzate.blogspot.com.co/2016/10/como-hacer-web-scrapping-utilizando.html

      Saludos,

      Borrar
    2. Gracias por la respuesta, revisaré tu post!

      Borrar