2026-09-15 — SPAB: evaluación de capas Apify de reseñas/comentarios y su lugar en el state-factbook

Proyecto: ~/nef/estado_turismo/spab-retrieval. Continúa 2026-09-14-spab-retrieval-huecos.md y la decisión de usar el state-factbook como fuente de decisiones (Q. Roo).

1. El hueco que estos actores pueden cerrar

googleplaces.ts pide rating,userRatingCount,reviews (5 reseñas máx., elegidas por Google). Todo lo que se deriva de reseñas —menciones_caro, rating, reviews_conteo— corre sobre una muestra chica y sesgada (README ya lo declara: “pesa 1.5 y no 10 porque corre sobre muestra chica”). Un scraper de reseñas Go ogle Maps elimina ese techo: misma población (reseñas públicas del lugar), muestra grande → la métrica NO cambia de significado, solo gana profundidad. Eso pasa el test anti-basura del esquema.

2. Evaluación de las capas propuestas (verificado en vivo, 2026-09-15)

ActorQué haceCostoMadurezVeredicto
scrapesmith/google-maps-reviews-scraperReseñas Maps completas: texto, rating, fechas ISO, idioma, autor, likes, reply del dueño, 25+ campos. API/MCP/scheduling$0.50/1k372 users, 98–100% runs okADOPTAR — capa principal
memo23/google-maps-reviews-scraperIdem, + filtros de idioma/fecha/estrellas, búsqueda por texto, modo GDPR$0.25/1k (el más barato)227 users, 90% okADOPTAR (alterno) — respaldo/barato
tri_angle/hotel-review-aggregator (y h_reviews)Agrega 7 plataformas normalizando a un rating—587+ users, 99% okUsar solo por plataforma; NUNCA mezclado (anti-basura)
antsarlabs/hotel-review-aggregatorGoogle Travel + TripAdvisor, REST/MCP$0.003/req1 user, 0 runs okRECHAZAR — inmaduro
cloud9_ai/trustpilot-scraperReviews Trustpilot——RECHAZAR — Trustpilot no cubre hoteles MX
dainty_screw/ultimate-google-play-review-extractorReviews de apps de Google Play——RECHAZAR — sin señal turística
reviewbot/universal-review-scraperScraper genérico multi-plataforma——RECHAZAR — genérico sin profundidad
`scrapeforgescrapestorm/tiktok-comments-*`Comentarios TikTok——

3. Por qué NO TikTok (por ahora)

  • Duplica la intención del corpus de YouTube (voz social) sin añadir estructura de lugar; el corpus ya existe (data/corpus/*.jsonl).
  • Comentarios sueltos sin contexto de lugar = ruido; extraer señal requiere etiquetado.
  • ToS de TikTok es agresiva y los actores mueren a menudo (“se rompe en silencio”).
  • Datos personales de menores y de terceros → GDPR/CCPA sin ningún análisis que lo justifique.

4. Lucimiento de ariete: el caso scraper-engine/google-maps-scraper

No venía en la lista pero merece mención: audita cobertura (claimed vs collected), corre sobre proxy residencial EE.UU., trae toggle personalData:false y una sección legal seria. Es la opción “cómoda para un entregable institucional”: si el índice se va a mostrar a autoridades, esta es la capa defendible. Mayor calidad, más cara y más pesada de correr.

5. Cómo entra al pipeline (sin romper nada)

  • Modo archivo, no dependencia viva: corrida mensual del actor → depósito en data/raw/reviews_google_<slug>.jsonl (patrón SESNSP/DataTur, no exponer el pipeline a la fragilidad de actores comunitarios).
  • Cada reseña = una Observacion? NO. El corpus se deposita y menciones_caro / rating / reviews_conteo se recalculan con n real sobre él. El esquema no cambia (mismo nombre de métrica, misma unidad, mayor n).
  • personalData:false salvo consentimiento; retener solo texto + fecha + rating → el n y el periodo de cada Observación quedan honestos.
  • Costo: ~10k reseñas/corrida ≈ **170+ de Places API).

6. Qué alimenta en cada arista del factbook

  • Índice / burbuja: menciones_caro, rating, reviews_conteo con n real por destino → sube confianza de forma capturable.
  • Estado-factbook Q. Roo: sección “voz del visitante” (léxico de sobreprecio, temas de queja recurrente), la que el índice no narra.
  • Rama rutas-culturales: reseñas de sitios arqueológicos (Cobá, La Venta…) corren tal cual — el conector sirve para cualquier Destino con lat/lon.

7. Próximo paso (si se decide)

  1. Crear cuenta Apify (o reutilizar la gratis), correr scrapesmith y memo23 sobre Tulum (3 GIROS) y comparar salida/costo/duplicados en vivo.
  2. Escribir scripts/reviews_desde_apify.py + plantilla data/plantillas/reviews.csv.
  3. Recalcular menciones_caro contra el corpus y comparar vs. el valor Places n=5.
  4. Decidir entre Scrapesmith y scraper-engine según a quién se enseña el resultado.