Ir al contenido
  1. Blog sobre SEO/

¿Cómo usar IMPORTXML en Google Sheets?

·931 palabras·5 mins
SEO Automation web scraping xpath xml google sheets

Una de las cosas más maravillosas acerca de Google Sheets es que es una aplicación web que está conectada a la internet y puede interactuar con otros sitios web y API. Esto viene siendo muy útil cuando necesitamos extraer data de sitios web, ya que gracias a la fórmula =IMPORTXML() se puede escalar esta tarea a miles de URL.

En esta guía aprenderemos a utilizarla para scrapear la internet y obtener la data que queramos de cualquier página web.

Sintaxis de la fórmula IMPORTXML>

Sintaxis de la fórmula IMPORTXML #

La sintaxis de la fórmula IMPORTXML se conforma de dos partes:

=IMPORTXML(url, xpath)

Animación mostrando el uso de la fórmula IMPORTXML en Google Sheets
Ejemplo de uso de IMPORTXML en Google Sheets (click para ver el gif)

  • URL: Se trata de la URL de la que queremos extraer información. Algunas consideraciones:

    • Debe incluir el protocolo (HTTPS o HTTP).
    • Puede ser una URL plana ( https://spelucin.me) o una referencia a una sola celda (A3).
  • XPath: Consulta de XPath que indica el elemento específico que queremos tomar de ese sitio web. XPath es un lenguaje que permite navegar nodos de HTML y XML. Una consulta de XPath luce de la siguiente manera:

//p[@class='párrafo-principal']

Si esta es tu primera vez trabajando con XPath, no te preocupes, en la siguiente sección explicaremos como funciona y algunos trucos que debes conocer para usarlo de manera efectiva.

¿Cómo encontrar la expresión XPath?>

¿Cómo encontrar la expresión XPath? #

XPath es una sintaxis que nos permite navegar entre los nodos de un documento HTML o XML para extraer su contenido. Funciona de manera similar a SQL en el sentido que se trata de hacer una consulta a un documento HTML y obtener un resultado de ella.

El lenguaje XPath es muy funcional y tiene varias opciones para encontrar los elementos de una web. Además de tener opciones para navegar por cualquier atributo HTML, tiene funciones lógicas, operaciones con texto y más características que te permitirán extraer contenido de manera detallada.

Algunas consultas comunes de XPath para el SEO son:

  • //h1 - Extrae el título H1 de la página.
  • //h2 - Extrae todos los H2.
  • //title - Extrae el meta-título.
  • //meta[@name='description']/@content - Extrae la meta-descripción.
  • //@href - Extrae todos los enlaces.
  • //link[@rel=’canonical’]/@href - Extrae el enlace canónico de una web.
  • //*[@itemtype]/@itemtype - Extrae cualquier tipo de Schema.
  • //*[@hreflang] - Extrae las etiquetas hreflang.
  • //a/text() - Extrae todos los textos de ancla.
  • //meta[@name='robots']/@content - Extrae el contenido de la etiqueta meta robots

Nótese que al momento de usar elementos encerrados con comillas, usamos las comillas simples (’) y no las dobles ("), ya que usar las dobles interfiere con la sintaxis de fórmulas generales de Google Sheets, en la que un par de comillas dobles abre y cierran los argumentos de una fórmula.

Si bien podrías manejarte con tranquilidad con esta lista de consultas, es mucho mejor aprender el funcionamiento y sintaxis de XPath. Puedes encontrar una explicación más detallada de este lenguaje en la guía sobre XPath para SEO.

Posibles errores al momento de usar IMPORTXML en Google Sheets>

Posibles errores al momento de usar IMPORTXML en Google Sheets #

Si bien la fórmula es simple de usar, es importante tener algunas consideraciones antes de empezar a sacarle el jugo.

Extraer varios elementos con una sola consulta>

Extraer varios elementos con una sola consulta #

¿Qué pasa si llamamos a un elemento que se repite varias veces? Por ejemplo, los encabezados H2 o todos los enlaces de la misma página. Google Sheets colocará los elementos resultantes, uno debajo de otro, de esta manera:

Interfaz de Google Sheets mostrando el uso de la fórmula IMPORTXML cuando se usa con varios valores.
Varios valores provenientes de una función IMPORTXML

Por ello, es importante que, al momento de usar la fórmula y esperar más de un valor, es importante reservar espacio para todos ellos. Si existe un valor que interfiere en las celdas donde deberían estar los resultados, un error #REF! aparecerá:

Interfaz de Google Sheets mostrando un error #REF! cuando se intenta usar IMPORTXML
Error #REF! que aparece cuando una celda interfiere con una llamada a la función XPath con varios valores.

En caso no tengas idea de cuántos elementos devuelve la consulta XPath solicitada, es recomendable ejecutar la fórmula en una columna nueva para evitar errores.

Sitios web que bloquean su acceso>

Sitios web que bloquean su acceso #

No todos los sitios web son accesibles para la fórmula IMPORTXML. Al usar la fórmula se envía una petición al sitio web que se incluye en el parámetro url; la cual puede ser bloqueada mediante:

  • Una repuesta no 200 que se genera solo para los bots de Google
  • Un bloqueo de los bots de Google mediante robots.txt
  • El sitio web tiene parte de su contenido en JavaScript

Esto nos puede devolver un error que nos indica que no hay contenido que extraer, de la siguiente manera:

Interfaz de Google Sheets mostrando un error de “El contenido importado está vacío” al usar IMPORTXML
Este error aparece cuando un sitio web bloquea a los robots de Google o el contenido está renderizado en JS

El error también aparece cuando el contenido a scrapear está renderizado usando JavaScript. El bot que accede a la web no renderiza contenido agregado por JavaScript, por lo cual el contenido será invisible para la fórmula.

Pensamientos finales>

Pensamientos finales #

La fórmula IMPORTXML es muy útil para extraer data de manera rápida y analizarla en el acto dentro del mismo Google Sheets. A nivel de SEO, podemos extraer los elementos que nos importan (meta etiquetas, canonical, encabezados, schema, etc.) y usar otras fórmulas y características de Google Sheets para profundizar en nuestro análisis de los elementos de nuestra web.

Lecturas adicionales>

Lecturas adicionales #

Además de este post, recomiendo darte una vuelta por alguno de los siguientes enlaces: