¿Sabías que es posible extraer datos de un sitio web utilizando Google Sheets? Así es como puedes hacerlo.
El web scraping es una técnica poderosa para extraer información de sitios web y analizarla automáticamente. Aunque puedes hacerlo manualmente, puede ser una tarea tediosa y que requiere mucho tiempo. Las herramientas de web scraping hacen que el proceso sea más rápido y eficiente, y al mismo tiempo cuestan menos.
Curiosamente, Google Sheets tiene el potencial de ser su herramienta integral de desguace web, gracias a su función IMPORTXML. Con IMPORTXML, puede extraer fácilmente datos de páginas web y utilizarlos para análisis, informes o cualquier otra tarea basada en datos.
La función IMPORTXML en Google Sheets
Google Sheets proporciona una función integrada llamada IMPORTXML, que le permite importar datos desde formatos web como XML, HTML, RSS y CSV. Esta función puede cambiar las reglas del juego si desea recopilar datos de sitios web sin recurrir a codificación compleja.
Aquí está la sintaxis básica de IMPORTXML:
=IMPORTXML(url, xpath_query)
- URL: La URL de la página web de la que desea extraer datos.
- consulta_xpath: la consulta XPath que define los datos que desea extraer.
XPath (XML Path Language) es un lenguaje utilizado para navegar por documentos XML, incluido HTML, lo que le permite especificar la ubicación de los datos dentro de una estructura HTML. Comprender las consultas XPath es esencial para utilizar IMPORTXML correctamente.
Comprender XPath
XPath proporciona varias funciones y expresiones para navegar y filtrar datos dentro de un documento HTML. Una guía completa de XML y XPath está más allá del alcance de este artículo, por lo que nos conformaremos con algunos conceptos esenciales de XPath:
- Selección de elementos: Puede seleccionar elementos usando / y // para denotar caminos. Por ejemplo, /html/body/div selecciona todos los elementos div en el cuerpo de un documento.
- Selección de atributos: Para seleccionar atributos, puede utilizar @. Por ejemplo, //@href selecciona todo href atributos en la página.
- Filtros de predicado: Puede filtrar elementos utilizando predicados entre corchetes ([ ]). Por ejemplo, /div[@class="container"] selecciona todo div elementos con la clase envase.
- Funciones: XPath proporciona varias funciones como contiene(), comienza con(), y texto() para realizar acciones específicas como comprobar el contenido del texto o los valores de los atributos.
Cómo extraer XPath de un sitio web
Hasta ahora, conoce la sintaxis IMPORTXML, conoce la URL del sitio web y sabe qué elemento desea extraer. Pero, ¿cómo se obtiene el XPath del elemento?
No es necesario conocer de memoria la estructura de un sitio web para extraer sus datos con IMPORTXML. De hecho, cada navegador tiene una herramienta ingeniosa que le permite copiar instantáneamente el XPath de cualquier elemento.
La herramienta Inspeccionar elemento le permite extraer el XPath de los elementos del sitio web. Así es cómo:
- Navegue hasta la página web que desea extraer utilizando su navegador web preferido.
- Localiza el elemento que deseas raspar.
- Haga clic derecho en el elemento.
- Seleccionar Inspeccionar elemento desde el menú contextual. Su navegador abrirá un panel que muestra el código HTML de la página web. El elemento HTML relevante se resaltará en el código.
- En el panel Inspeccionar elemento, haga clic derecho en el elemento resaltado en el código HTML.
- Hacer clic Copiar XPath para copiar la dirección XPath del elemento a su portapapeles.
Ahora que tiene todo lo que necesita, es hora de ver IMPORTXML en acción y eliminar algunos enlaces.
Puede utilizar IMPORTXML para extraer todo tipo de datos de sitios web. Esto incluye enlaces, vídeos, imágenes y casi cualquier elemento del sitio web. Los enlaces son uno de los elementos más destacados en el análisis web y puedes aprender mucho sobre un sitio web simplemente analizando las páginas a las que enlaza.
IMPORTXML le permite extraer rápidamente enlaces en Google Sheets y luego analizarlos más a fondo utilizando las diversas funciones que ofrece Google Sheets.
Para eliminar todos los enlaces de una página web, puede utilizar la siguiente fórmula:
=IMPORTXML(url, "//a/@href")
Esta consulta XPath selecciona todo href atributos de a elementos, extrayendo efectivamente todos los enlaces de la página.
=IMPORTXML("https://en.wikipedia.org/wiki/Nine_Inch_Nails", "//a/@href")
La fórmula anterior elimina todos los enlaces de un artículo de Wikipedia.
Es una buena idea ingresar la URL de la página web en una celda separada y luego hacer referencia a esa celda. Esto evitará que la fórmula se vuelva demasiado larga y difícil de manejar. Puedes hacer lo mismo con la consulta XPath.
2. Eliminación de todos los textos de enlaces
Para extraer el texto de los enlaces junto con sus URL, puedes utilizar:
=IMPORTXML(url, "//a")
Esta consulta selecciona todos los elementos y puede extraer el texto del enlace y las URL de los resultados.
=IMPORTXML("https://en.wikipedia.org/wiki/Nine_Inch_Nails", "//a")
La fórmula anterior obtiene los textos de los enlaces en el mismo artículo de Wikipedia.
A veces, es posible que necesites eliminar enlaces específicos según criterios. Por ejemplo, es posible que le interese extraer enlaces que contengan una palabra clave concreta o enlaces que se encuentren en una sección específica de la página.
Con el conocimiento adecuado de XPath, podrás identificar cualquier elemento que estés buscando.
Para eliminar enlaces que contienen una palabra clave específica, puede utilizar la función XPath contiene():
=IMPORTXML(url, "//a[contains(@href, 'keyword')]/@href")
Esta consulta selecciona atributos href de elementos donde href contiene la palabra clave especificada.
=IMPORTXML("https://en.wikipedia.org/wiki/Nine_Inch_Nails", "//a[contains(@href, 'record')]/@href")
La fórmula anterior elimina todos los enlaces que contienen la palabra registro en su texto dentro de un artículo de muestra de Wikipedia.
Para extraer enlaces de una sección particular de una página, puede especificar el XPath de la sección. Por ejemplo:
=IMPORTXML(url, "//div[@class='section']//a/@href")
Esta consulta selecciona atributos href de elementos dentro de elementos div con la clase "sección".
De manera similar, la siguiente fórmula selecciona todos los enlaces dentro de la clase div que tienen la clase mw-content-container:
=IMPORTXML("https://en.wikipedia.org/wiki/Nine_Inch_Nails", "//div[@class='mw-content-container']//a/@href")
Vale la pena señalar que puedes usar IMPORTXML para algo más que web scraping. Puede utilizar la familia de funciones IMPORT para importar tablas de datos de sitios web a Google Sheets.
Aunque Google Sheets y Excel comparten la mayoría de sus funciones, la familia de funciones IMPORT es exclusiva de Google Sheets. Deberá considerar otros métodos para importar datos de sitios web a Excel.
Simplifique el web scraping con Google Sheets
El web scraping con Google Sheets y la función IMPORTXML es una forma versátil y accesible de recopilar datos de sitios web.
Al dominar XPath y comprender cómo crear consultas efectivas, puede desbloquear todo el potencial de IMPORTXML y obtener información valiosa de los recursos web. Entonces, ¡comience a raspar y lleve su análisis web al siguiente nivel!