Todos los artículos

Agregación de reseñas de productos para análisis de sentimiento a gran escala

Las reseñas se ocultan tras renderizados de JS, paginación y barreras anti-bot. Esto es lo que necesita un pipeline de agregación para alimentar un modelo de sentimiento con datos útiles.

El desafío

Las marcas de consumo ya no pueden depender del panel de reseñas de un solo marketplace. El mismo SKU tiene una puntuación en Amazon, otra en Walmart, una tercera en Best Buy, y otra más en Trustpilot o en la propia tienda de Shopify de la marca. Si tu equipo de producto, tu modelo de sentimiento o tu cola de operaciones de CX solo ven una de ellas, estás conduciendo a ciegas.

Esa es la versión cotidiana del problema de las reseñas: la fragmentación. Las reseñas existen, solo que viven detrás de diez inicios de sesión diferentes, diez stacks de renderizado distintos y diez posturas anti-bot diferentes. Para alimentar un clasificador de sentimiento cada semana (o para activar una alerta cuando aparece una mala reseña en un listado principal), necesitas todas ellas, recientes, en un solo lugar.

Agregarlas es un problema de renderizado antes de ser un problema de datos. Y la mayoría de los equipos subestiman la magnitud de esa primera mitad.

Qué hace que esto sea difícil

Una página de reseñas en 2026 no se parece en nada a una de 2018. Todo lo importante se carga después del HTML inicial:

  • La lista de reseñas se obtiene mediante JSON después de que el navegador dibuja la estructura.
  • Las páginas más profundas (Mostrar más reseñas, paginación) requieren que la sesión incluya las cookies correctas, y a menudo también una interacción de desplazamiento.
  • Los filtros de orden (más recientes, solo verificados) alteran la firma de la request. Si te equivocas en uno, el marketplace te mostrará la vista por defecto junto con un sutil rate limit.
  • Toda la página está detrás de defensas contra bots que inspeccionan la firma de bajo nivel de la request, el orden de los headers y los tiempos de ejecución antes de siquiera revisar el User-Agent.

Al solicitar esa página con una request HTTP normal obtienes una estructura vacía (sin reseñas, sin veredicto). Al solicitarla con un navegador headless que configures tú mismo, asumes el costo continuo de mantener ese navegador, rotar salidas y aplicar parches contra nuevas reglas de detección cada vez que un marketplace lanza una actualización anti-bot.

La solución

El patrón que funciona es un fetch basado en navegador que puedes llamar como un único endpoint de API. Le pasas la URL de la reseña. Renderiza la página, ejecuta el JavaScript, espera a que el payload de la reseña se hidrate y te devuelve el DOM. Los detalles de la sesión vienen con la response, por lo que el siguiente fetch paginado puede reutilizarlos.

Con el producto Browser de FourA, eso se ve así en Python:

import requests

def fetch_reviews(url, api_key, sticky_proxy=None):
    body = {
        "url": url,
        "unblocker": True,
    }
    if sticky_proxy:
        body["proxy"] = sticky_proxy

    r = requests.post(
        "https://api.foura.ai/api/browser",
        headers={"Authorization": f"Bearer {api_key}"},
        json=body,
        timeout=60,
    ).json()

    return {
        "status": r.get("status"),
        "html": r.get("body"),
        "cookies": r.get("cookies"),
        "sticky_proxy": r.get("proxy"),
        "defense_solved": r.get("defenseSolved"),
    }

Hay dos detalles importantes para el scraping de reseñas.

Primero, unblocker: true maneja las defensas a nivel de red detrás de las que se esconden la mayoría de las páginas de reseñas de los marketplaces. Sin ello, obtendrás una página de desafío en lugar de reseñas.

Segundo, el valor proxy devuelto es el id en base36 de la salida que logró un renderizado exitoso. Al enviarlo de vuelta en la siguiente llamada para el mismo producto, la paginación te tratará como el mismo visitante. Por lo tanto, la diferencia entre que la página 1 cargue bien y que la página 3 no devuelva nada suele depender de si fijaste la sesión.

Para productos donde solo necesitas una captura semanal de las 20 reseñas principales, puedes saltarte la fijación y dejar que cada llamada elija su propia salida. Reserva la fijación de sesiones para los SKUs donde la paginación profunda es realmente importante.

Resultados que puedes esperar

Un equipo que ejecute agregación de reseñas bajo este patrón debería pensar en estos términos:

  • Cobertura: reseñas de cada producto de todos los marketplaces donde vendas, actualizadas al ritmo que requieran tus procesos downstream, desde diario para alertas de CX hasta semanal para análisis de tendencias.
  • Profundidad: primeras 3-5 páginas de reseñas por SKU por marketplace, que es donde se encuentra la señal procesable. El resto a partir de la página 5 es principalmente ruido para modelos de sentimiento.
  • Frescura: las nuevas reseñas llegan a tu pipeline de sentimiento al cabo de un día de ser publicadas, no dos semanas después cuando se ejecuta una exportación mensual.
  • Previsibilidad de costos: pagas por fetch renderizado, por lo que el presupuesto se adapta al número de SKUs que te interesan, no al tamaño del equipo necesario para mantener los navegadores.

Estos no son números mágicos. Es lo que obtienes cuando la mitad del problema relacionada con el renderizado ya no es responsabilidad de tu equipo.

Si comparas esto con un stack de monitorización de marketplace completo, la agregación de reseñas es la versión enfocada en sentimiento. El mismo músculo de renderizado, pero un downstream diferente.

Conclusión clave

Cada panel que mira tu marca termina en un gráfico. Pero el gráfico está en el downstream. El costo upstream (la razón por la que la mayoría de las marcas no lo hacen bien) es la flota de renderizado: mantener accesibles 15 superficies de marketplace, mantenerlas vivas contra defensas diseñadas para dejarte fuera, a un precio que no suponga el de tres ingenieros más un contrato de proxy.

Si la parte del renderizado es lo que bloquea tu proyecto de agregación de reseñas, esa es la pieza que debes resolver. El modelo de sentimiento, el panel y las alertas son las partes que tu equipo puede construir en una tarde en cuanto comiencen a llegar reseñas recientes.