En este tutorial vamos a hacer una web automática realmente chula.
Veremos como podemos aportar valor real con datos automáticos.
¿Esto es cierto? Hazte un café ☕, pon toda tu atención, que comenzamos 🚀.
Índice
- Tutorial en Vídeo
- Problema a Solucionar
- Solución
- Scrapear Empresas de una Web
- Ordenar los Datos Alfabéticamente
- Instalar Scraper
- Crear Sitemap
- Scrapear el Nombre de las Empresas
- Scrapear Todas las Páginas de Resultados
- Conseguir la Latitud y Longitud de cada Empresa
- Conseguir la Dirección de cada Empresa
- Crear y Habilitar el API de Geocoding de Google
- Automatizar con Make (antiguo Integromat) el Trabajo
- Leer la latitud y longitud de la Hoja de Cálculo
- Añadir cada Latitud y Longitud en la URL del API de GeoCoding
- Enviar los datos de la dirección a la Hoja de Cálculo
- Crear una Web Automática con estos datos gracias a SpreadSimple
- Resumen
Tutorial en Vídeo
Suscríbete a mi canal:
Problema a Solucionar
Imaginemos que necesitamos los datos de ubicación de unas empresas para poder colaborar con ellas.
Existe un listado de esas empresas en internet pero el listado no tiene posibilidad de ser filtrado por lugar.
Bueno, si que lo tiene, pero es de mentira como puedes ver a continuación:
Si nos fijamos en la captura anterior, si no añado ningún filtro me aparecen 3677 Empresas y si le aplico el filtro de las empresas de Zamora me aparecen 3217.
¿Significa que casi todas las empresas son de Zamora? No, de hecho, si aplicas el filtro en cualquier provincia los datos serán muy similares.
¿No funciona el filtro de provincia? Realmente si funciona, el problema está en que no es un filtro de empresas de cada provincia sino son las empresas que estarían interesadas en trabajar en esa provincia.
Como casi todas las empresas están interesadas en trabajar en todas las provincias hace inservible el filtro.
Pero nos encontramos con que no aparece por ningún lado la dirección de cada empresa :(
Sólo disponemos del nombre de la empresa.
Solución
Cómo no vienen los datos que quiero para filtrar la información que necesito voy a crear una web automática que me dé tanto el nombre de la empresa como la provincia en la que está cada una de las empresas.
¿Veis como se puede crear valor con datos automáticos 😉?
Vamos a desgranar la meta en las diferentes tareas que tenemos que hacer:
- Scrapear las empresas de la página web y exportarlo a un Google Drive
- Conseguir la Latitud y Longitud de cada Empresa
- Conseguir la dirección de cada Latitud y Longitud
- Crear una Web Automática con estos datos gracias a SpreadSimple
Además de las metas que yo me he puesto, podríamos hacer más completa la web añadiendo más contenido, si es automático podemos spinear el contenido y no solo crear valor añadiendo el filtro por provincia, sino podemos hacer muchas más cosas.
Scrapear Empresas de una Web
Lo primero que necesitamos es hacernos con el listado de los nombres de las empresas para crear nuestra hoja de cálculo.
Ordenar los Datos Alfabéticamente
La página web que voy a scrapear ordena los datos de forma aleatoria, voy a ordenar los datos Alfabéticamente para asegurarme que capturo todos los datos y no capturo algunos varias veces y otros datos ninguna vez.
Instalar Scraper
En mi caso he usado un Scraper Gratuito y fácil de usar.
Es una extensión de chrome que se llama Web Scraper
Una vez instalada la extensión en tu navegador tienes que cerrar completamente el navegador y volverlo a abrirlo para tenerla lista para usar.
Ahora tenemos que navegar hasta la web donde queremos scrapear información y hacer click en botón derecho > Inspeccionar.
Ahora veremos que dentro del inspector de elementos de Chrome, aparece una nueva opción llamada Web Scraper. Ten cuidado que puede estar escondida y necesites hacer click en las flechas:
Cuando haces click en Web Scraper verás una pantalla como la siguiente:
Tu pantalla será igual a la mía, salvo que yo tengo un sitemap ya creado.
Crear Sitemap
El Web Scraper llama Sitemap a la configuración del scraper que vamos a crear.
Es decir, cada elemento que quieres guardar de forma automática. Toda la configuración va dentro del Sitemap y puedes crear tantos sitemaps como quieras.
Para crear el nuestro vamos a Create New Sitemap » Create Sitemap
Nos pide 2 datos:
Sitemap name: nombre_que_queramos
Start URL: URL que queremos scrapear
Y hacemos click en Create Sitemap
Algo así:
Y ahora nos aparece el interfaz para crear el sitemap:
Scrapear el Nombre de las Empresas
Ahora hago click en el botón Add New Selector para elegir las empresas que quiero capturar y sigo los siguientes pasos:
- Dar un nombre al ID
- Hacer click en Select para poder seleccionar el nombre de la empresa
- Hacer click en el nombre de la empresa
- Hacer click en el siguiente nombre de la empresa
- Seleccionar la opción Múltiple para capturar todos los nombres de las empresas
- Hacer click en Done Selecting para terminar
Aquí una captura con todos los pasos:
Scrapear Todas las Páginas de Resultados
Con lo hecho en el apartado anterior scrapeamos los resultados de la primera página pero en nuestro caso tenemos un montón de páginas que necesitamos capturar:
Por lo que en el mismo sitemap que estamos creando tenemos que decirle que navegue por todo el paginador y vaya capturando el título en cada una de las páginas.
Los pasos serían los siguientes:
- Dar nombre al identificador
- Elegir el Tipo Paginador
- Hacer click en Select y Luego Seleccionar la flecha del paginador
- Seleccionar la flecha hacía delante
- Seleccionar en _root y Paginador
Aquí una captura del proceso:
El paso 5 es muy importante ya que le estamos diciendo que se haga scraping tanto en la página principal como en todas las páginas que descubra gracias al paginador.
Esto me recuerda que lo que no tenemos bien hecho es el paso anterior, el scrapeo de los nombres de la empresa solo sucederá en la página principal tal cual lo tenemos configurado:
Si nos fijamos en la columna Parent selectors podemos ver que el ID nombre-empresa solo funcionará en _root, por lo que lo editamos elegimos también Paginador:
Si todo ha funcionado bien si vamos a la opción Scrape, dentro de nuestro Sitemap debería de empezar a Scrapear:
Nos pregunta la frecuencia y velocidad y sin tocar nada hacemos click en Star scraping
Ahora saltará un Popup y empezará a Scrapear.
Dependiendo del número de datos tardará más o menos, en mi caso al ser muchos datos puede tardar un rato.
Una vez que acaba de scrapear puedes ver todos los datos scrapeados en la pantalla del inspector de elementos de Google Chrome:
Incluso, aunque no haya terminado de scrapear puedes hacer click en Refresh Data para ir viendo como se van capturando los datos.
Para exportarlos nos vamos al sitemap y hacemos click en Export Data
Nos aparecerá una nueva opción que nos deja elegir en que formato los queremos exportar. En mi caso los quiero en CSV:
Si has llegado hasta aquí, enhorabuena, te has convertido oficialmente en Scrapeador :)
Conseguir la Latitud y Longitud de cada Empresa
Ahora vamos a por el siguiente paso, conseguir datos de la geolocalización de las empresas que hemos scrapeado.
Para ello vamos a importar los datos del CSV que acabamos de conseguir a una hoja de cálculo de Google, también llamada Google Sheet.
Abrimos una hoja nueva, hacemos click en Archivo » Importar » Subir y arrastramos en esta pantalla nuestro fichero CSV y nos aparecerá la siguiente pantalla:
Y si todo ha ido bien conseguiremos los datos de la siguiente forma:
Para nosotros, los datos importantes son los de la columna C, el resto los podemos borrar o ocultar.
Y creamos las columnas Latitude y Longitude. Este paso no es obligatorio porque como veremos se generará sola, pero a mi me gusta hacerlo para irme haciendo a la idea 😉
También me gusta añadir un autofiltro para poder ordenar, filtrar y demás si lo necesitara:
Ahora directamente hacemos magia, vamos a instalar un complemento que nos va a añadir la latidud y longitud de forma automática.
Para ello vamos Extensiones » Complementos » Descargar Complementos y buscamos la extensión Geocode by Awesome Table y la instalamos:
Nos saldrá un aviso para que le demos permisos a la extensión, aceptamos, cerramos todas las pantallas que nos ha abierto y vamos a Extensiones » Geocode by Awesome Table » Start Geocoding:
Nos saltará un lateral dentro de nuestra hoja de cálculo con la hoja dónde queremos scrapear y la columna de la que queremos sacar los datos, en nuestro caso el nombre de la empresa.
Cuidado
Mucho cuidado si estamos navegando por varias hojas de cálculo y sin querer seleccionamos otra, te empezará a coger los datos de otro lugar.
Hacemos click en el botón azul, donde pone Geocode! y empieza la fiesta 🚀
Como puedes ver en la captura anterior, no nos da datos de todas las empresas :( pero por las pruebas que he hecho consigues una enorme cantidad de datos automáticos.
La extensión es gratuita pero tiene una limitación de alrededor de 800 peticiones diarias, por lo que si necesitas más datos solo es cuestión de ser metódico y hacerlo en varios días.
Conseguir la Dirección de cada Empresa
Realmente, en mi caso concreto, no necesitaría la dirección completa, tan solo la provincia. Pero como veremos podemos conseguir ambos datos con este método. Además, pensando en el posicionamiento nos viene bien añadir tantos datos automáticos como podamos.
He buscado alguna extensión como la anterior para hacerlo más sencillo pero no he conseguido ninguna extensión que me funcionara bien, para ello me he tenido que crear mi propio método.
Crear y Habilitar el API de Geocoding de Google
Para ello me he dado de alta en el API de Geocoding de Google.
Google tiene una opción gratuita muy generosa pero para usarla tienes que darte de alta en Google Cloud Plataform y añadir tu método de pago. Revisa bien el consumo que haces para no pasarte de la opción gratuita que aunque la opción gratuita es muy amplia es bueno estar atento para no tener ningún susto.
En el enlace anterior nos da todas las indicaciones para poder usar el API.
Si has hecho todo lo anterior y ya tienes una cuenta en Google Cloud Plataform, vas a la consola, te creas un proyecto y en el lateral izquierdo vas a API y servicios » Biblioteca y aqui buscas Geocoding Api, la seleccionas y la habilitas como puedes ver en mi caso:
Hacemos click en Administrar para crear unas credenciales del tipo Clave de API:
Cuando generas la Clave guárdala que la vamos a usar a continuación.
Lo primero que vamos a hacer es probar que tenemos bien habilitada el API de Geocoding y nos funciona correctamente nuestras Claves del API.
Para ello vamos al navegador y vamos a la siguiente dirección:
https://maps.googleapis.com/maps/api/geocode/json?latlng=40.4192992,-3.6976277&key=Tu_Clave_API
Si te fijas en la dirección anterior lo que tenemos justo después de latlng= son la latitud y longitud, en el caso del ejemplo el de una empresa que hemos sacado del listado anterior.
Si todo va bien cuando pegues esa dirección en el navegador deberías de ver algo como lo siguiente:
Si vas a la URL verás que los datos son más largos pero para el propósito de este tutorial con la captura anterior puedes ver que hemos conseguido la dirección de una empresa a partir simplemente de su nombre :)
Si te estás preguntando si esos datos están bien, te puedo decir que lo están, lo puedes ver por ti mismo:
Automatizar con Make (antiguo Integromat) el Trabajo
Ahora lo que vamos a hacer es el mismo proceso de conseguir la dirección o provincia de cada empresa pero de forma automática porque si lo hago de forma manual hay muy poca diferencia de hacerlo así que ir directamente a Google y buscar el nombre de cada empresa en Google o Google Maps 😅
Para hacerlo vamos a usar Make, antiguo Integromat.
Si no conoces Make es una herramienta de automatización increíble. Es la competencia de Zapier y dependiendo para unos u otros procesos viene mejor una u otra.
Make tiene una versión gratuita que nos sirve para hacer pruebas y ver si nos gusta y luego si la queremos usar de verdad tendríamos que pagar ya que es muy posible que agotemos el crédito de la versión gratuita muy rápidamente.
Una vez que nos damos de alta en Make tenemos que crear una nueva automatización o un Escenario, como lo llama Make.
El Escenario que vamos a hacer va a constar de 3 Automatizaciones (Bolitas):
- Leer la latitud y longitud de la Hoja de Cálculo
- Añadir cada Latitud y Longitud en la URL del API de GeoCoding
- Enviar los datos de la dirección a la Hoja de Cálculo
La pinta que tiene esto en Make es la siguiente:
Leer la latitud y longitud de la Hoja de Cálculo
La primera «Bolita» es la encargada de conectarse y leer nuestra hoja de cálculo donde tenemos la Latidud y Longitud.
Tenemos que añadir un módulo de Google Sheets, concretamente el módulo Get Range Values
Lo primero que nos va a pedir es conectarnos a nuestra cuenta de Google para poder leer nuestras hojas de cálculo y una vez conectado a nuestra cuenta le daremos los datos de la hoja de cálculo, hoja concreta que queremos que lea y rango de celdas que queremos que lea.
Algo parecido a lo siguiente:
El campo Range lo tienes que cambiar por el rango donde están tus datos, es decir el rango que va desde la primera celda a la última que quieres que lea Make (que raro se me hace no poner Integromat).
Añadir cada Latitud y Longitud en la URL del API de GeoCoding
Ahora, añadimos la siguiente bolita, la bolita donde pondremos los datos de la url de API para sacar la dirección de cada Latitud y Longitud.
El primer módulo (bolita) va a recorrer cada celda con los datos de Latitud y Longitud y ser lo va a dar al segundo módulo para que busque la dirección.
Para la creación de este módulo vamos a elegir uno del tipo HTTP » Make a Request
Y el resultado será algo parecido a lo siguiente:
Como puedes ver en la captura, en el campo URL añadimos la url de la que ya hablamos más arriba:
https://maps.googleapis.com/maps/api/geocode/json?latlng=40.4192992,-3.6976277&key=Tu_Clave_API
Pero con una salvedad.
En vez de añadir manualmente la latitud y longitud, le decimos a make que la coja del módulo Get Range Values, por lo que cada vez que pase por una fila va a traer los datos de una empresa.
Una observación importante es que para que en el segundo módulo puedas usar los datos del primer módulo, tienes que ejecutar el primer módulo, para ello pones el ratón encima del primer módulo y haces click en Run this module only como puedes ver en la siguiente captura:
Al ejecutarlo la herramienta ya sabrá que datos tenemos en el primer módulo y los podremos usar en el segundo.
Si volvemos a abrir el segundo módulo y hacemos click encima de la url del API veremos que nos ofrece añadir a nuestra URL los datos Dinámicos del primer módulo:
Y sustituimos los datos estáticos de latitud y longitud y añadimos los datos dinámicos, en el caso de la captura de pantalla C y D.
Si nos fijamos puedes ver que entre un campo y el siguiente está la coma para separar los datos, de la misma forma que hacíamos con los datos estáticos.
Otro tema importante es que en este módulo tenemos que marcar la opción Parse Response para que nos devuelva los datos bien separados:
Enviar los datos de la dirección a la Hoja de Cálculo
Para ello necesitamos crear una columna en nuestra hoja de cálculo para la dirección que queremos guardar.
Ya solo nos queda el tercer módulo, esta bolita será la encargada de recoger los datos de la dirección y añadirlos en nuestra hoja de Cálculo.
Este módulo será del tipo Google Sheets » Update a Cell ya que lo que queremos es que nos añada la dirección en la celda correspondiente al campo Dirección:
Cómo puedes ver en la captura de pantalla el campo Cell he añadido una parte Estática, la B, que es la columna donde quiero que se añada la dirección de cada empresa y una parte dinámica 1. Row Number que es el número de la fila que va actualizar.
Este numero, row number, será distinto cada ver que pase Make, y de esa forma se va rellenando la hoja de cálculo.
Nos falta la última parte de la magia.
Ya sabemos que va actualizar nuestra hoja de cálculo, pero ¿con qué datos?.
Los datos que queremos que añada son los datos de dirección que ha conseguido el segundo módulo.
Al igual que nos pasó en el módulo anterior, antes de poder usar estos datos tenemos que ejecutar el módulo al menos una vez para que este módulo sepa que datos tiene el módulo anterior:
Y si todo ha ido bien tendríamos que ver algo como lo siguiente en la salida:
Ahora ya tenemos los datos de la dirección, tan solo se los tenemos que decir al 3 módulo:
Si nos fijamos en la captura del tercer módulo:
Tenemos una fórmula, con un 1 en el medio de esa fórmula.
Si ves los datos capturados del segundo módulo, puedes ver que hay diferentes números, con diferentes datos guardados dentro.
Tienes que elegir aquellos datos que quieres guardar ya que algunos tienen la dirección larga, otro corta o diferentes tipos de datos. En tu caso elige los datos que necesites.:
Y si todo ha ido bien tendremos las direcciones de las empresas en nuestro Google Sheets:
Si has llegado hasta aquí eres un fenómeno 🙌
Ya hemos hecho lo más difícil 🙌 , ahora es todo disfrutar 🤠
Crear una Web Automática con estos datos gracias a SpreadSimple
Ahora que ya tengo los datos en una hoja de cálculo lo tengo muy fácil.
Puedo crear una web en WordPress importando estos datos con plugins como WP Import Tool o cualquier otra solución que se nos ocurra.
En mi caso he optado por la solución más sencilla para hacer una web con datos de una hoja de cálculo SpreadSimple
Tiene una opción gratuita que te permite usarla con la limitación de no poder usar un dominio propio. Si quieres dominio propio tienes que usar la opción de pago.
Esta herramienta es brutal, simplemente le dices la hoja de cálculo que quieres usar, seleccionas que datos quieres importar y listo, tienes una web lista para publicar:
Spreadsimple tiene una funcionalidad muy útil y es que te permite crear un buscador en tiempo real por los campos que quieras:
Publicamos nuestra web y el resultado final es este:
Como puedes ver en la captura, podemos filtrar por provincia en nuestra web automática, cosa que no se podía en la web que hemos tomado como referencia.
Resumen
Hemos creado una web automática creando valor de verdad. Sólo por ese motivo podemos estar orgullosos de nosotros mismos 😉
Además, por el camino, hemos aprendido un montón de cosas que nos van a servir para muchos otros proyectos.
¿Merece la pena trabajar tanto para crear una web automática?
Te pueden surgir dudas si merece la pena crear una web automática como hemos hecho en este tutorial
Y la duda te puede surgir tanto por la dificultad como por los resultados que puedes obtener.
Si te surgen dudas por la dificultad y el tiempo empleado te digo que merece mucho la pena ya que todo el tiempo que dedicas de más para aprender automatizaciones es tiempo que recuperarás mañana.
Respecto a si merece la pena desde el punto de vista económico te puedo decir que si generas una web que ayude de verdad y la gente la visite ya te digo yo que puede merecer muy mucho la pena ;)
Espero que te haya gustado este tutorial y recuerda que en la Zona Premium tenemos muchos más tutoriales como este.
Nos vemos en el siguiente
Deja una respuesta