Probablemente la ventaja más grande de que Google Sheets esté siempre en la nube, es que tiene funcionalidades de la misma que podemos aprovechar. Una de ellas es la fórmula IMPORTXML, que como hemos visto antes, nos permite consultar datos de otras páginas web e integrarlos a nuestra hoja de cálculo automáticamente. Una de las aplicaciones más prácticas de este concepto es consultar información de un sitio de e-commerce que sea público. Hoy veremos cómo aplicarlo específicamente al más grande de todos, es decir, a Amazon. Esto nos facilitará consultar muchos productos al mismo tiempo, y comparar precios en tiempo real.

Preparando nuestra hoja

Lo primero que haremos, como siempre, es preparar una hoja con la estructura necesaria para trabajar. Vamos a crear una tabla con la información del la URL de cada producto, el título, el precio, otra columna de precio que más adelante explicaremos qué hace ahí, la URL de la foto del producto, en otra columna mostramos esa foto y algunas otras cosas más, como la talla y la calificación del producto.

IMPORTXML y XPath

Para lograr nuestro objetivo, usaremos una fórmula que ya conocemos por guías anteriores: IMPORTXML. IMPORTXML trae información de cualquier sitio web que sea público y estático, y la procesa mediante el lenguaje XPath (XML Path Language). Entonces, debemos darle dos argumentos: la URL y la ruta XPath, que requiere para especificar qué elemento de la página necesitamos. Como el HTML de Amazon es al mismo tiempo un documento con estructura de XML, podemos navegarlo con este lenguaje.

Hay que recordar algunas cosas antes de seguir. IMPORTXML nos ayuda a traer información de cualquier página web que sea pública y estática. En el caso de Amazon, se cumplen las dos condiciones, entonces no tenemos problema, pero hay muchas páginas que son dinámicas, es decir, la información se consulta en un paso posterior a la consulta de la página. Otra razón por la que puede que no te funcione IMPORTXML es que el sitio que estés intentando consultar con IMPORTXML no sea público, es decir, que requiera un inicio de sesión previo.

Si nos fijamos bien, estamos dejando libre la primera fila. Esto es intencional, y tiene como propósito facilitarnos trabajar en cada columna con su código XPath. Esto es así porque nosotros no tenemos control de los cambios que se hagan al sitio que estamos consultando, en este caso Amazon. Ellos pueden cambiar la estructura de su HTML interno en cualquier momento, y puede que nuestro XPath deje de funcionar como antes. Entonces, probar diferentes rutas de XPath es más sencillo si solo tenemos que modificar la celda, en vez de cada fórmula por separado.

Obtener el título de un producto de Amazon

Ahora sí, vamos directo al tema. Para poder descifrar qué ruta de XPath necesitamos para cada columna, debemos de analizar el código de un producto. Si damos click derecho en el título del producto y elegimos la opción de Inspeccionar, abriremos la consola de desarrollo y veremos que lo que buscamos se encuentra en un nodo de

<span id="productTitle">

Si damos click derecho y elegimos la opción Copy – XPath, y la pegamos en donde corresponde en nuestra hoja, veremos que tenemos esto:

//*[@id="productTitle"]

Ahora, en la celda B3 vamos a usar la fórmula IMPORTXML de esta manera:

=IMPORTXML($A3,B$1)

Usamos el signo de $ adecuadamente para que cuando arrastremos la fórmula hacia abajo y hacia la derecha, sigamos referenciando a la primera columna (osea la A) y a la primera fila siempre (osea la 1).

Obtener el precio de un producto de Amazon en Google Sheets

OK, hasta ahora todo va muy bien, y en la mayoría de los datos que queremos obtener podemos seguir este método, pero hay otros que tendrán un poco de truco. Uno de ellos es el precio, porque si realizamos el mismo procedimiento, nos encontramos con que el navegador no está obteniendo la ruta XPath que nos sirve. Esto puede ser porque la ruta XPath empata varios elementos al mismo tiempo o es alguna parte de la página que se genera de forma dinámica.

En este caso, si usamos el XPath que nos da Inspect, vemos que nos trae 3 datos separados: el signo de dinero, la base entera del precio, y el decimal.

//*[@id="corePrice_feature_div"]/div/span/span[2]

Esto lo podemos arreglar fácilmente, si usamos la función string() que soporta el mismo procesador de XPath de Google Sheets:

string(//*[@id="corePrice_feature_div"]/div/span/span[2])

Ahora vemos que uno de los productos no tiene precio. Si vemos la página original, nos damos cuenta de que esto es porque antes se necesita elegir una opción de talla. Aquí podemos hacer dos cosas, si elegimos una talla y actualizamos la URL, ya no tendremos este problema.

Esto también nos hace darnos cuenta de que hay que tener contempladas las diferentes formas de presentación de los productos que consultamos, porque a veces algunos XPath funcionarán en algunos casos y otros XPath solucionarán otros.

Para eso dejamos la otra columna de precio. Si analizamos el código fuente de la página, podemos ver que el precio está internamente en muchas partes, y podríamos tomarlo de cualquiera de ellas. Te comparto, por ejemplo, estos otros XPath alternativos para el precio de un producto, usa el que mejor te funcione:

//input[@id='attach-base-product-price']/@value

//span[@class='a-price aok-align-center reinventPricePriceToPayMargin priceToPay']/span[@class='a-offscreen']

Obtener la foto de un producto de Amazon en Google Sheets

Lo siguiente es traer a nuestra hoja la foto del producto para que sea más fácil saber qué es sin tener que leer el título o la URL. Para importar la foto del producto de Amazon, primero tenemos que saber la URL de la imagen. Para eso usaremos la siguiente expresión XPath:

//div[@id='imgTagWrapperId']/img/@src

Si desglosamos un poco esta expresión y la leemos de lo más específico a lo más general, nos damos cuenta de que le estamos pidiendo que nos devuelva el valor del atributo src, a su vez contenido en un nodo de img, y este a su vez, que esté contenido en un nodo div cuyo atributo id sea igual a imgTagWrapperId. Mientras más específicos podamos ser con la ruta del XPath, será mejor. Si es muy ambigua o empata demasiados elementos, no nos servirá en la mayoría de los casos, pues por ahora solo requerimos llenar una celda de la hoja de cálculo por valor de cada producto.

Si en la columna siguiente usamos la fórmula IMAGE referenciando el resultado que acabamos de obtener, mostrará esta imagen.

Obtener la talla seleccionada

La verdad es que puedes obtener prácticamente cualquier dato con este método, si ajustas tu expresión XPath correctamente. Te puedo compartir algunas expresiones que ya he descifrado para ti que seguramente te serán muy útiles.

Por ejemplo, para obtener la talla de un producto del que ya se haya elegido una talla, podemos usar esta expresión XPath:

//*[@id="inline-twister-expanded-dimension-text-size_name"]

Nos arrojará un error en los productos que no tengan talla, pero no nos afecta realmente.

Obtener las calificaciones de un producto

Como último ejemplo, vamos a traer a nuestra hoja las calificaciones de los productos. Para el número de calificaciones, usaremos esta ruta de XPath

(//span[@id="acrCustomerReviewText"])[1]

Como particularidad, fíjate cómo le estamos diciendo que del resultado empatado de la expresión, solo nos traiga el primero, porque si no hacemos eso, nos podría escribir más de una fila al mismo tiempo en nuestra hoja, y entonces chocarían los resultados porque necesitaría espacio para expandirse.

Y para la calificación como tal, usamos este XPath:

(//*[@id="acrPopover"]/@title)[1]

De aquí en adelante, solamente deberás adaptar tu hoja para procesar los datos como mejor te convenga, por si vienen en forma de texto junto con otras palabras y necesitas el número, por ejemplo. Pero la parte más complicada ya está hecha.

¡Y listo! Ahora ya sabes cómo consultar productos de Amazon directamente en tu hoja de cálculo de Google Sheets. Está genial, ¿no lo crees?

Guía en video

Si tienes dudas puedes ver esta misma guía explicada en video:

Espero que te haya sido útil esta guía! No olvides seguirnos en YouTube para más tips, trucos y guías de productividad.

Aprende Sheets: Curso práctico de Hojas de cálculo de Google
Aprende Sheets: Curso práctico de Hojas de cálculo de Google