Google Sheets: importXML para el web scraping

Una de las características más importantes de Google Sheets, también llamada Hojas de cálculo de Google, es la capacidad de importar directamente contenido de los sitios web: la función importXML() de Google Sheets extrae el contenido estructurado de un sitio web y lo transfiere a la hoja de cálculo de Google que quieras.

Hecho

Google Sheets y Excel son dos programas de hojas de cálculo que presentan muchas similitudes, pero que también difieren en algunos aspectos básicos, como te explicamos en nuestra comparativa de Excel y Google Sheets.

La función de importación “XML to Google Sheets” te será extremadamente útil si quieres crear tablas a partir de datos disponibles en Internet. En este artículo aprenderás a aprovechar esta posibilidad y te daremos algunas ideas para emplear correctamente esta práctica función de Google Sheets.

Explicación fácil de la función importXML() de Google Sheets

La función importXML() extrae los datos estructurados de los proyectos web y los introduce en las celdas de una hoja de cálculo de Google.

Para ello, debes escribir la siguiente función en el software de Google:

=importXML(URL, XPath)

En Google Sheets, importXML() tiene solo dos parámetros:

  • URL: la dirección web de la que quieres obtener los datos. Resulta más fácil si la copias directamente en la barra de direcciones del navegador.
  • XPath: indica el campo de la hoja donde se importarán los datos.
Consejo

Encontrarás información detallada sobre XPath en nuestro tutorial de XPath.

Si indicas los parámetros directamente en la función, debes ponerlos entre comillas. No obstante, es más fácil escribir los dos parámetros (sin comillas) en dos celdas de la tabla y, luego, hacer referencia a ellos en la fórmula. De esta manera, evitas tener que poner las comillas.

Google Workspace con IONOS

¡Trabajar juntos ahora es más fácil que nunca! Configura Gmail con tu dominio y aprovecha de todas las herramientas de Google en un solo lugar.

Colaboración en tiempo real
Videoconferencias
30 GB de almacenamiento

Usos en Google Sheets de importXML

La función importXML() se puede utilizar con muchos fines. Las siguientes cuatro posibles aplicaciones son especialmente interesantes:

  • Crear listas de enlaces
  • Analizar datos estructurados de páginas web
  • Extraer contenido de texto
  • Transferir tablas HTML

En los siguientes apartados, utilizaremos estas cuatro opciones de uso para explicar cómo implementar importXML en Google Sheets.

Consejo

En IONOS puedes adquirir Google Sheets como parte de la Google Workspace (antes G Suite). El paquete también incluye tu propio dominio gratuito.

Crear listas de enlaces

A veces queremos mostrar una lista bien organizada con direcciones web interesantes, que incluya el URL, el nombre de la página y una breve descripción que llame la atención. Para nuestro ejemplo, utilizaremos la página web Nodesign, que presenta una selección de enlaces de herramientas gráficas para desarrolladores con poca o ninguna experiencia en diseño. Los enlaces aparecen en cuadros, cada uno con una imagen, un título y una breve descripción. La selección de la página consta actualmente de más de 140 elementos.

Queremos utilizar esta página para crear una lista de enlaces clara en Google Sheets con importXML(), por lo que hacemos lo siguiente:

  1. Averiguar el contenido del código fuente de la página web

En este caso, necesitamos el URL, el texto de anclaje (es decir, la descripción del enlace) y la breve descripción. Para ello, abrimos la herramienta de desarrollo del navegador (tecla F12 o clic derecho del ratón y, a continuación, “Inspeccionar”) y seleccionamos el primer cuadro. Allí encontramos la información necesaria bajo la etiqueta <h5>: el URL (1), el texto de anclaje del enlace (2) y la breve descripción (3).

  1. Definir el XPath

En segundo lugar, definimos la información de la ruta (XPath) para los tres elementos:

URL. El URL es un atributo de la etiqueta <a>, que se encuentra debajo de la etiqueta <h5>. Por lo tanto, el XPath queda así:

//h5/a/@href

Texto de anclaje. El texto de anclaje es el contenido de la etiqueta <a> mencionada más arriba: //h5/a. Tomamos el XPath de arriba, omitiendo el atributo @href.

Breve descripción. Este XPath es un poco más complicado, porque no se encuentra en el mismo nivel jerárquico que la etiqueta <a>. Si nos limitamos a tomar el párrafo <p> como XPath, los textos ya no coinciden con el URL. Por lo tanto, definimos el párrafo que contiene la descripción como el elemento que sigue a la etiqueta <h5> en el mismo nivel jerárquico:

//h5/following-sibling::p
  1. Implementar la función en la hoja de cálculo de Google

A continuación, escribimos el comando importXML() en una columna de la tabla para cada uno de los tres elementos. Ten en cuenta que solo hay que hacerlo en la primera fila, ya que el programa carga las filas restantes automáticamente. La fórmula en sí también se sobrescribe con contenido.

Para no olvidarnos de la fórmula que hemos utilizado, insertamos una fila en blanco arriba del todo y volvemos a introducir la fórmula a modo de información, esta vez con un apóstrofe al principio para que no se ejecute, sino que se trate como texto puro.

Ahora puedes seguir editando la tabla como de costumbre; cada celda contendrá los datos reales y no la fórmula.

Excel con Microsoft 365 para empresas y IONOS

Usa Excel para organizar tus datos y ahorrarte tiempo, ¡incluido en cada pack Microsoft 365!

Office Online
OneDrive con 1TB
Asistencia 24/7

Analizar datos estructurados de páginas web

La lista de enlaces que hemos generado en el paso anterior se puede analizar de varias maneras si es necesario. Por ejemplo, para cada URL se puede obtener el metatítulo, la metadescripción, el idioma y la codificación, todo ello información relevante para fines de SEO.

Para ello, escribimos los datos del XPath en la primera fila e introducimos la función en la segunda fila (en el ejemplo, en la segunda columna):

=importXML($A2,B$1)

La fórmula toma el URL de la primera columna y el XPath de la primera fila. Para expandir la fórmula hacia abajo y hacia la derecha, establecemos la primera columna y la primera fila como referencia absoluta (símbolo $).

Nota

Las entradas #NV indican que la información que se buscaba no se ha encontrado en la página web.

Para desvincular la tabla de los sitios web correspondientes, podemos seleccionarla, copiarla y pegarla en una nueva hoja con el atajo de teclado [Mayús] + [Ctrl] + [V].

Extraer contenido de texto

Debido a los avances en el reconocimiento de texto mediante la inteligencia artificial, también conocida como procesamiento del lenguaje natural, está aumentando la necesidad de extraer mayores cantidades de texto de sitios web para analizarlo.

Un buen ejemplo de ello son los periódicos, los agregadores de noticias y las páginas de resumen de prensa, que proporcionan información valiosa para los análisis de tendencias.

Para mostrarte este uso de la función, utilizaremos la página de resumen de prensa newstral.com/en. Solo queremos extraer una lista de todos los titulares. Para ello, procedemos de la siguiente manera:

  1. Averiguar el contenido del código fuente de la página web

En la herramienta de desarrollo (tecla de función F12 o clic con el botón derecho del ratón e “Inspeccionar”) seleccionamos un titular y vemos cómo está estructurado. La estructura en este caso es muy sencilla: el título es el texto de anclaje del enlace (última fila):

  1. Definir el XPath

Para que solo se importen los titulares y no todos los demás enlaces de la página de inicio, tenemos que especificar el XPath de forma un poco más precisa: solo se deben encontrar las etiquetas <a> de la clase “headline” y, entre ellas, solo aquellas dentro de la categoría “headlines-container”.

//div[@class="headlines-container"]/ul/li/span/a[@class="headline"]
  1. Utilizar la función en las Hojas de cálculo de Google

Introducimos el URL y el XPath en una hoja de cálculo de Google vacía, en la columna de la izquierda. Así los tendremos a mano para escribir fácilmente la función:

(Celda B1) =importXML(A1,A2)
(Celda B2) =importXML(A1,A3)

El resultado es una lista con los titulares. Lo mejor es que esta lista se puede actualizar en cualquier momento con F5 para que siempre muestre el contenido más reciente.

Consejo

¿Quieres aprender más trucos de las Hojas de cálculo de Google? Descubre cómo crear listas desplegables en Google Sheets.

Transferir tablas HTML

Basta con una sola fórmula para importar una tabla de un sitio web a Google Sheets. Tomaremos, por ejemplo, una tabla en un artículo de Wikipedia sobre los modelos de Samsung Galaxy: para importarla, solo necesitamos la etiqueta <table> en el XPath. Antes, sin embargo, tenemos que averiguar cuántas etiquetas <table> hay antes de la que nos interesa. La tabla que buscamos es la tercera de esa página web. De este modo, la fórmula quedaría así:

=importXML(“https://es.wikipedia.org/wiki/Samsung_Galaxy”, “//table[3]/tbody/*”)

¡Listo! Con una sola fórmula en la celda B1, hemos importado correctamente la tabla con todas las filas y columnas a la hoja de cálculo.

Como puedes ver, la función de importación “XML to Google Sheets” es extremadamente versátil y ahorra mucho tiempo y esfuerzo.

Nota

Muchas redes sociales y grandes minoristas en línea como Amazon prohíben el web scraping. Por lo tanto, conviene que leas los términos de uso de esas plataformas antes de probar lo que has aprendido en este tutorial.