
Veamos como Excel, nos permite traer datos desde la WEB sin necesidad de escribir una sola línea de código. Luego de traer la información, podemos hacer uso de Power Query para procesar y adecuar dicha información.
Demos un breve recorrido sobre lo que significa el Web Scraping y lo que podemos hacer si logramos dominar este tipo de recursos que nos brinda Excel y VBA
Vamos a hacer Web Scraping a una tienda online reconocida, trayendo los datos de los productos e incluso el enlace a las fotografías de cada producto. El archivo estará disponible en la clase de despedida del Curso Como tal.
Bienvenidos a HTML, el lenguaje de etiquetas universal, padre de la gran mayoría de sitios web amigables con distintos navegadores.
Definamos en primer lugar, lo que significa HTML. Esto con tal de tener los conocimientos básicos necesarios para poder implementar técnicas avanzadas de Web Scraping
En HTML existen etiquetas que contienen a otras, esto se denomina Jerarquía de las Etiquetas. y lo que quiere decir es que algunas son hijas, padres, nietas y demás de otras.
Las TABLAS en HTML son Excelentes para mostrar información de manera organizada y gracias al Web Scraping podemos consultarlas, tomar esa información y ponerla en nuestras hojas de cálculo.
Mas adelante usaremos este conocimiento, haciendo que un robot VBA consulte las etiquetas de lista y posteriormente escriba esos datos en una hoja de cálculo.
Para llamar la información desde una hoja de cálculo a través del Web Scraping, tendremos que referirnos en muchos casos a sus atributos, así que es de vital importancia asimilar el contenido de esta clase.
En definitiva este es un tema coyuntural a la hora de hablar de Web Scraping. Aprenderemos a llenar formularios HTML desde Código VBA y también a interactuar con ellos de manera directa.
Bienvenidos a una completa sección en donde trabajaremos con Web Scraping e Internet Explorer. Aprenderemos a enviar y traer información desde y hacia este navegador y todo desde nuestros libros de Excel.
Veamos todas las posibilidades que se nos abren de cara a traer información y registrarla en nuestras hojas de cálculo de Excel. Es tanto el poder del Web Scraping que incluso, podremos hacer login en sitios web desde Excel, traer contenido general y especifico y mucho más.
Antes de arrancar, vamos a dejar todo listo en nuestro libro de Excel. A partir de aquí comenzaremos a hacer nuestra "magia".
Antes de comenzar a trabajar, es necesario traer algunos complementos que nos ayudarán a cumplir con nuestro objetivo de pedir información a la web y también poder interpretar y registrar dichos datos.
Te vas a sentir raro, cuando veas con una sencilla instrucción en tu libro de Excel VBA vas a poder abrir tu navegador WEB y éste comenzará a seguir paso a paso tus instrucciones.
Antes que nada, vamos a entender que es lo que contiene nuestro sito web, luego de esto, estaremos en disposición de traernos los datos desde esta página a nuestra hoja de cálculo.
Cuando el navegador se tarda algo en cargar, puede generar algunos errores en nuestro módulo de código, es por eso que debemos decirle a nuestra macro que lo espere un poco antes de interpretar las siguientes instrucciones.
Te acuerdas de cuando hablamos de los atributos HTML?. Pues aquí es donde echaremos mano a ese conocimiento, por que consultaremos en la web, una porción de código con cierto atributo.
Cuando escribimos cualquier línea de código en programación, siempre estaremos sujetos a los errores y eso no es un problema, el problema es no saber resolverlos, así que resolvamos este en particular, que puede llegar a ser un dolor de cabeza en ocasiones.
Llego el momento anhelado, en el que ponemos la información directamente desde la WEB hasta nuestra hoja de cálculo y lo mejor es que siempre que haya internet, nuestro sistema estará conectado con ese sitio WEB y podremos estar actualizando los datos sin necesidad abrir en el futuro esta página de internet. (Automatización)
Ya trajimos elementos por nuestro ID, ahora vamos a traer unos cuantos pero según la etiqueta HTML que los contiene. Vamos al Código.
Cuando traemos datos por ID por lo general es fácil de leerlos debido a que esta opción por lo general trae solo 1 (un) objeto, sin embargo, hay instrucciones que no traen uno, sino varios elementos, así que entendamos como se comporta esto desde VBA de Excel
Vamos a "Atacar" al atributo Class de nuestro HTML y tras eso nos vamos a traer la información contenida en ciertos elementos que contengan un clase en especifico.
En teoría es fácil traer los datos desde la web que estén contenidos en una tabla. Ahora ve y trata de colocarlos de la manera que tu deseas en una hoja de cálculo.... Bueno, esto es mas o menos lo que aprenderemos en esta clase.
Ya sabemos traer la información de una tabla en especifico, vamos ahora a ser mas ambiciosos y vamos a traer la información de todas las tablas HTML de nuestra página y además vamos a colocar todo eso en una hoja de Cálculo.
URL para descargar el instalador de Selenium para compatibilidad con VBA
https://github.com/florentbr/SeleniumBasic/releases/tag/v2.0.9.0
En esta ruta usualmente puedes encontrar la instalación de Selenium (Windows)
(Modifica my-user por tu usuario de Windows)
C:\Users\my-user\AppData\Local\SeleniumBasic
Descarga de Drivers para distintos navegadores
sites.google.com/a/chromium.org/chromedriver/downloads
Descarga de Drivers para distintas versiones de Google Chrome
https://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json
Página drivers para Navegador Edge
https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/#downloads
Donde puedes encontrar la instalación de Selenium en Windows
C:\Users\my-user\AppData\Local\SeleniumBasic
Ejemplo de Script del ejercicio para saber si estamos conectando bien el Driver
Dim navegador As New Selenium.EdgeDriver
Sub pruebaDeFuncionamiento()
navegador.Start baseURL:="https://youtube.com"
navegador.Get "/"
End Sub
Descarga de Drivers para distintos navegadores
sites.google.com/a/chromium.org/chromedriver/downloads
Descarga de Drivers para distintas versiones de Google Chrome
https://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json
Página drivers para Navegador Edge
https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/#downloads
Donde puedes encontrar la instalación de Selenium en Windows
C:\Users\my-user\AppData\Local\SeleniumBasic
Ejemplo de Script del ejercicio para saber si estamos conectando bien el Driver
Dim navegador As New Selenium.EdgeDriver
Sub pruebaDeFuncionamiento()
navegador.Start baseURL:="https://youtube.com"
navegador.Get "/"
End Sub
Instalar .NET MS .Net framework 3.5
https://www.microsoft.com/es-co/download/details.aspx?id=21
Nuevamente bienvenidos, si llegaste hasta aquí es por que eres un ambicioso, eso me gusta. Por que en esta sección no solo traeremos información desde la WEB, sino que enviaremos datos para interactuar con ella y arrancar sesión en un sitio WEB.
Vemos andando nuestro proyecto. Aquí introduciremos nuestras credenciales, Correo y contraseña, los enviaremos a la web y la web nos dejará entrar a nuestro panel de administración. Todo esto desde Excel, imagina todo lo que puedes lograr al aprender a dominar esto.
Vamos a entender en primer lugar la WEB a la que deseamos acceder. Por que lo que se viene es realmente interesante. Le vamos a decir a nuestro navegador que deseamos acceder a el pero todo de manera automatizada.
Enviemos nuestro usuario y nuestra contraseña al navegador pero desde VBA de Excel, como si fuera una persona. Sin embargo, todo lo hacemos desde código (Automatizado).
Luego de diligenciar los campos de formulario, llego la hora de decirle al navegador, desde nuestro módulo de Excel; que haga clic sobre el botón de formulario para enviar nuestros datos.
Como ya es de costumbre, en el proceso puede haber errores. Vamos a corregir este error que se puede presentar cuando interactuamos con este tipo de tecnologías.
Ya esta todo listo. vamos a hacer que todo se vea mas hermoso, que nuestro usuario no vea que hay detrás en la sala de máquinas, solo verá un formulario hecho desde VBA de Excel, desde donde se podrá loguear en la web si necesidad de visitarla.
Estoy emocionado, por que luego de haber aprendido todo lo necesario para hacer un Web Scraping intermedio, llego la hora de traer los datos no solo de una página de mi sitio web, sino de filtrar la información y traernos todo ese contenido a nuestras hojas de cálculo. Vamos allá!.
El proyecto es: enviar una consulta a la web (una palabra de búsqueda), el navegador buscará para nosotros y luego de esto traeremos de vuelta el contenido filtrado para colocarlo en nuestras hojas de Excel.
Primer paso: enviamos la información que queremos consultar al buscador de nuestra página web. Después de que llenemos el campo de búsqueda...
... damos clic al botón que enviara la consulta a la página web que nos permitirá filtrar los datos que coincidan con nuestra búsqueda introducida desde código VBA
Con la información filtrada, estamos en disposición de traernos esa información a nuestro libro de Excel.
En este paso, luego de haber usado nuestros conocimientos previos en HTML y bases del Web Scraping. Vamos a hacer que nuestro esfuerzo se vea reflejado en nuestras hojas de Excel. Desde la WEB directo a Excel con un solo clic.
Ya trajimos la información desde un resultado de nuestra consulta, pero que sucede cuando nuestro resultado es tan extenso, que tiene varias páginas (paginación), como un libro. Hasta ahora solo trajimos la portada. vamos por el resto del libro...
Como somos "pulidos" para trabajar, vamos a embellecer nuestro proyecto, dejando de lado las líneas de código de VBA (no digo que sean feas :)), pero los usuarios saldrán corriendo si tienen que realizar las búsquedas observando "sala de máquinas". A los usuarios de nuestro sistema solo les interesa llenar un formulario y oprimir un botón, y eso es lo que haremos en este video.
Vamos a usar todos los conocimientos adquiridos anteriormente, solo que esta vez usando otro tipo de tecnología. Yo expongo mi propuesta, tu verás que método usar... te veré en el código.
Comenzamos a hacer nuestra magia. En este video expongo como no solo podemos usar Internet Explorer, sino HTTP a través de un objeto de VBA de Excel. Solo es una alternativa distinta, sin embargo podremos lograr lo mismo y usar mucho de lo que aprendimos anteriormente en esta nueva sección.
Con HTTP los datos viajan de cierta manera, así que vamos a explicar como interactúa nuestro sistema con los sitios web y a partir de ahí, aprenderemos a interpretar la información que nos devuelven los servidores gracias a técnicas que ya veníamos usando anteriormente.
En este video aprenderemos a interpretar la información que nos devolvió el servidor tras usar nuestro objeto HTTP. Aplicaremos mucho de lo aprendido en la sección de Internet Explorer, por que para interpretar la información, también usaremos nuestro paquete (HTML OBJECT LIBRARY).
de nuevo estará presente nuestro método .getElementsByTagName() de Excel VBA y su uso es idéntico a como funcionaba en la sección de Internet Explorer. Aprendamos como traer elementos desde la WEB con HTTP de VBA
El método GET de HTTP, permite enviar consultas a nuestros sitios WEB con parámetros a través de la URL. te perdiste?. No te preocupes, es mas sencillo de lo que crees.
Aprendamos a enviar información en segundo plano a través del método POST de HTTP. En este video, veremos el poder del Web Scraping haciendo login en un sitio web pero directamente desde un formulario VBA de Excel.
Espero que este curso haya sido de tu agrado, de principio a fin, el objetivo mío, era que entendieras de la manera mas simple, como funciona el mundo del Web Scraping y como usarlo en todo su esplendor.
Gracias por haber tomado esta clase y espero verte en nuevos proyectos de conocimiento que emprenderé orientados a crear ejércitos de personas con metas de crecimiento y desarrollo tecnológico.
En este curso aprenderás a escanear sitios web, enviar información y a traer el contenido de dichos sitios (casi cualquier sito web) a las hojas de cálculo de Excel de manera avanzada y personalizada.
Todo arranca con mi mas gran deseo de impartir conocimiento de una manera "no tan técnica", sino, comprensible para humanos con ganas y disposición de aprender nuevas tecnologías que ayuden a afrontar de una mejor manera los cambios sociales, económicos y tecnológicos a los que estamos sujetos día a día.
Supongamos que quieres traer información desde distintas tiendas online y compararlas en Excel. Hacer esta tarea de manera manual sería algo realmente dispendioso y demorado, sin embargo, con el conocimiento que obtendrás con este curso estarás en disposición de hacer esto y mas:
Traer información desde sitios E-Commerce hasta un libro de Excel.
Traer información desde un blog o sitio de noticias hasta nuestras hojas de cálculo.
Enviar información a la web para llenar formularios directamente desde Excel a la WEB.
Iniciar sesión desde Excel para acceder a paneles de administración y poder consultar la información y registrarlas en nuestras hojas de cálculo según lo queramos.
Conectar con tecnologías avanzadas de Nube. Como Drive, Dropbox, Etc.
Fabricar robots que automaticen procesos de apertura y consulta de nuestro navegador, permitiéndonos interactuar como si fuera una persona real, solo que de manera automatizada y en segundo plano gracias a Excel y VBA.
Comprender como están estructurados los sitios web y en que consisten las etiquetas HTML que los componen.
Aprender Web Scraping, no es solo enviar y traer información de la WEB, es abrir el espectro a la integración con tecnologías complementarias como Power BI u otras herramientas que hoy en día hacen parte de la interconexión del mundo.
Mi objetivo con este curso es darte de manera fácil y práctica las herramientas necesarias que te permitirán llevar Excel a otro nivel, solo será necesario que cuentes con la mejor disposición de aprender, un libro de Excel abierto y disponible para aprender y trabajar.
Este curso esta dirigido para cualquier persona que tenga desde un conocimiento básico de Excel hasta profesionales en programación, es decir, que es para prácticamente todo el mundo. Las instrucciones de código que utilizare en las clases, serán repetitivas y muy intuitivas, por lo que podrás copiarlas y pegarlas en tus proyectos sin ningún problema.
También te compartiré todos los recursos usados en cada video para que puedas llevar a cabo tus propias prácticas y disponer de ellos como mejor desees.
Cabe anotar que aunque, como dije hace un momento, puedes implementar de manera mecánica el conocimiento adquirido, mi principal anhelo es que comprendas de fondo como y por que las se procesa y ejecuta la información de cierta manera en el Web Scraping combinado con VBA y la WEB. Si comprendes el trasfondo de todo, tendrás mucha mas libertad y autonomía al momento de crear tus propios modelos de desarrollo que te permitirán automatizar procesos a tu manera, no a la mía.
A lo largo del curso trabajaré con un Libro de Excel y el Editor de Visual Basic que trae integrado Excel, no importa la versión que tengas, deberá ser suficiente para desarrollar este curso.
ADVERTENCIA: El web Scraping, no es hackeo, pero es tan potente que puede prestarse para malas prácticas, como plagio de información y demás. De nuevo recalco, que analizar la información de las páginas e interactuar con ellas tecnológicamente no es un delito, sin embargo, la responsabilidad de qué hagas con esos datos dependerá de ti.