Imagen del scraper Tripadvisor ReviewsHoteles, restaurantes y atracciones

Tripadvisor Reviews Scraper.

Recopila las reseñas públicas de Tripadvisor de un hotel, restaurante o atracción y de los lugares con los que compite. Cada reseña llega tal como se escribió, con la traducción al inglés de Tripadvisor, para comparar mercados en una sola tabla.

Ejecutar en Apify

Cómo puedes usar este scraper.

Prueba estos ejemplos para marketing, crecimiento y análisis de la competencia.

01

Compara un hotel con sus competidores

Recopila seis meses de reseñas de tu hotel y de cuatro competidores cercanos. Compara las valoraciones medias y las subvaloraciones de habitaciones, servicio y precio para ver en qué destaca cada uno.

Mantén una tabla comparativa por establecimiento, con enlaces a las reseñas detrás de cada puntuación.

02

Descubre qué mencionan los huéspedes internacionales

Recopila reseñas en todos los idiomas y usa las traducciones al inglés para leerlas juntas. Busca temas que aparecen más en un mercado, como el desayuno o el check-in.

Redacta un breve informe de experiencia del huésped por mercado, citando reseñas traducidas.

03

Revisa los tiempos y el tono de las respuestas

Mira qué reseñas negativas recibieron respuesta de la dirección, quién la escribió y con qué rapidez. Compáralo con la competencia y elige ejemplos a seguir.

Mantén un registro de respuestas con sus fechas y el cargo de quien responde.

DE LA PRIMERA EJECUCIÓN A UN FLUJO RECURRENTE

Tu primera ejecución, paso a paso.

  1. Abre el Actor en Apify, entra en Input y cambia al editor JSON para pegar una configuración.
  2. Sustituye el enlace de ejemplo por un enlace de Tripadvisor a tu hotel, restaurante o atracción, o a los de un competidor. Cópialo desde la página del lugar en tu navegador.
  3. Mantén maxReviewsPerPlace en 100 en la primera ejecución y deja los filtros vacíos. Revisa el texto original, la traducción al inglés y los campos del lugar, y luego añade filtros de valoración, idioma, tipo de viaje o fecha.
  4. Inicia la ejecución y revisa el registro. Comprueba qué objetivos y filtros se interpretaron antes de concluir que no hay datos.
  5. Abre Storage → Dataset, revisa varios registros y exporta JSON para datos anidados o CSV para una primera revisión en una hoja.
Configuración inicial
{
  "places": [
    "https://www.tripadvisor.com/Hotel_Review-g186338-d187591-Reviews-The_Ritz_London_Hotel-London_England.html"
  ],
  "maxReviewsPerPlace": 100
}

Pégalo en el editor JSON del Actor. Cambia los ejemplos por tus propios objetivos antes de ejecutar.

Consulta el formulario actual en Apify

Elige cómo buscar.

Dale al scraper un enlace de Tripadvisor, un ID de ubicación o un nombre de lugar. Los enlaces y los ID apuntan a un lugar; los nombres pueden coincidir con varios. Cada reseña llega tal como se escribió, con la traducción al inglés de Tripadvisor, y el historial completo está disponible desde la primera reseña.

Método de búsquedaCuándo usarloQué cambia
Enlaces de TripadvisorCuándo usarloYa configuraste la búsqueda en el sitio de origen.Qué cambiaUn enlace de tripadvisor.com, .co.uk, .de o cualquier otro sitio de Tripadvisor da el mismo lugar y las mismas reseñas. Es la forma más clara de indicar un lugar.
IDs de ubicaciónCuándo usarloSabes exactamente qué entidad quieres recopilar.Qué cambiaEl ID de ubicación es el número con d de un enlace de Tripadvisor, como d187591. Es corto y estable, ideal para una lista guardada.
Nombres de lugaresCuándo usarloQuieres encontrar resultados relevantes antes de elegir objetivos concretos.Qué cambiaUn nombre lee todos los lugares que encuentra la búsqueda de Tripadvisor, empezando por los más grandes. Ritz London da el hotel y varios restaurantes Ritz. Revisa place_name o pega un enlace para un solo lugar.

La diferencia importante

Cada reseña llega en el idioma en que se escribió, con la traducción al inglés de Tripadvisor en title_english y text_english. Lee las versiones en inglés para comparar mercados y cita el texto original en los informes.

Compara el scraper relacionado

Todos los parámetros, explicados.

Usa estos nombres exactos en JSON. En el formulario de Apify, introduce cada elemento de las listas por separado y mantén números y booleanos en su tipo correcto.

Default y prefill son distintos. El valor por defecto se aplica si omites un ajuste; el prellenado es un ejemplo introducido en el formulario de Apify. Revisa objetivos y límites antes de cada ejecución. Algunos ajustes no tienen valor por defecto en el esquema. Debes indicar al menos un objetivo admitido.

Objetivos y búsquedas1
places
ListaEjemplo precargado: ["https://www.tripadvisor.com/Hotel_Review-g186338-d187591-Reviews-The_Ritz_London_Hotel-London_England.html"]

Un lugar por línea: un enlace de Tripadvisor a un hotel, restaurante, atracción o tour de cualquier país, su ID de ubicación (d187591) o su nombre. Un nombre equivale a todos los lugares que encuentra la búsqueda de Tripadvisor.

Mercados, fechas y filtros5
ratings
Lista

Solo reseñas con estas valoraciones, como texto de 1 (Terrible) a 5 (Excellent). Elige 1 y 2 para las reseñas negativas. Vacío significa todas.

languages
Lista

Solo reseñas escritas en estos idiomas, como códigos o nombres: en, de o French. Vacío significa todos los idiomas: cada reseña en su idioma original, con la traducción al inglés de Tripadvisor al lado.

dateFrom
Texto

Solo reseñas publicadas en esta fecha o después. Usa YYYY-MM-DD o un periodo relativo como 30 days o 6 months. Con una programación diaria o semanal, una fecha relativa recoge solo lo nuevo.

tripTypes
Lista

Solo reseñas de estos tipos de viaje: Business, Couples, Family, Friends o Solo. Muchos autores no indican el tipo de viaje, así que el filtro también descarta esas reseñas. Vacío significa todas.

searchText
Texto

Solo reseñas que mencionan esta palabra o frase, según la búsqueda de reseñas de Tripadvisor, por ejemplo breakfast, noise o rooftop. Usa un tema por ejecución.

Límites, detalles y proxies3
maxReviewsPerPlace
EnteroEjemplo precargado: 100

Las reseñas más recientes de cada lugar, hasta este número. Empieza con 100. Vacío significa todas las reseñas, hasta la primera.

maxReviews
Entero

Un límite total de reseñas en toda la ejecución, sumando todos los objetivos. Úsalo para limitar duración y coste. Vacío significa sin límite global; el límite por objetivo sigue aplicándose.

proxyConfiguration
ObjetoPor defecto: {"useApifyProxy":true,"apifyProxyGroups":["RESIDENTIAL"],"apifyProxyCountry":"US"}Ejemplo precargado: {"useApifyProxy":true,"apifyProxyGroups":["RESIDENTIAL"],"apifyProxyCountry":"US"}

El proxy residencial de EE. UU. es el valor que funciona por defecto. Tripadvisor responde a salidas residenciales, el proxy datacenter de Apify también funciona y otros ajustes vuelven al residencial si Tripadvisor los rechaza.

Ajustes avanzados y recuperación2
resume
Verdadero o falsoPor defecto: true

Guarda el progreso aproximadamente cada 30 segundos para continuar tras un reinicio o migración. Déjalo activado.

continueFromLastRun
Verdadero o falsoPor defecto: false

Continúa el trabajo pendiente de la ejecución anterior con la misma entrada. Los resultados anteriores quedan en su dataset. Usa false para una colección nueva o periódica.

Esta referencia sigue los campos del Actor. Revisa el formulario actual antes de cambiar un flujo de producción. Consulta el formulario actual en Apify.

Configuraciones listas para copiar.

Cada ejemplo es una ejecución independiente. Empieza con poco, revisa los resultados y amplía después. Adapta objetivos, países y fechas a tu pregunta.

Compara tres hoteles

Recoge seis meses de reseñas de un hotel por ID de ubicación y de dos competidores por nombre, hasta 300 por lugar. Revisa place_name antes de comparar, porque un nombre también puede coincidir con restaurantes dentro de un hotel.

Compara tres hoteles
{
  "places": ["d187591", "The Savoy London", "The Langham London"],
  "dateFrom": "6 months",
  "maxReviewsPerPlace": 300
}

Revisa un año de opiniones negativas

Recoge las reseñas de 1 y 2 estrellas de un restaurante de los últimos 12 meses. Revisa cuáles recibieron respuesta de la dirección y con qué rapidez.

Revisa un año de opiniones negativas
{
  "places": ["d719141"],
  "ratings": ["1", "2"],
  "dateFrom": "12 months",
  "maxReviewsPerPlace": 200
}

Sigue un tema en varios mercados

Recoge reseñas que mencionan breakfast de viajes en familia y en pareja, escritas en inglés, francés o alemán. Compara lo que dice cada grupo usando las traducciones al inglés para leerlas juntas.

Sigue un tema en varios mercados
{
  "places": ["d187591"],
  "searchText": "breakfast",
  "tripTypes": ["Family", "Couples"],
  "languages": ["en", "fr", "de"],
  "maxReviewsPerPlace": 200
}

Ejecuta, revisa, exporta y repite.

Espera una fila por reseña con su valoración, texto original, traducción al inglés, fechas, tipo de viaje, subvaloraciones, autor y respuesta de la dirección, además de la valoración y la dirección del lugar. El registro SUMMARY indica cuántas reseñas tiene cada lugar, cuántas coinciden con tus filtros y cuántas se recogieron. Los datos de cada lugar se guardan como el registro PLACES del almacén clave-valor.

  1. Revisa el dataset y el registro SUMMARY. Compara el total con tu límite, revisa entradas fallidas u omitidas y verifica algunos enlaces originales.
  2. Conserva los IDs originales y añade collected_at y run_id al guardar. Usa CSV para columnas planas y JSON para arrays o detalles anidados.
  3. Guarda la configuración probada como Apify Task y prográmala. Para capturas periódicas, deja continueFromLastRun en false. Elimina duplicados por ID conservando la fecha de cada observación.
  4. En Make o n8n, espera una ejecución correcta, obtiene el dataset y mapea campos a Sheets o tu almacén. Alimenta Looker Studio mediante una tabla de informes y usa dbt para transformar y validar modelos.
  5. El mismo JSON sirve con la API de Actors de Apify. En Claude con Apify MCP, indica este Actor, pide que revise el esquema y define objetivos, mercados y límites antes de ejecutar.

Reanudar no es obtener una captura nueva

resume protege la ejecución actual si Apify la reinicia. continueFromLastRun continúa una anterior con la misma configuración; sus registros siguen en el dataset anterior. Une ambos datasets y aumenta un límite ya alcanzado. Empieza de nuevo si quieres ver qué ha cambiado hoy.

Sigue las guías para Sheets, Claude, Looker y BigQuery
Ejecuta este Actor con la API

Guarda una configuración anterior como input.json. Define APIFY_TOKEN con tu token de Apify en la terminal y envía el archivo como cuerpo de la solicitud.

Inicia la ejecución
curl --fail-with-body --request POST \
  --url "https://api.apify.com/v2/actors/jmlp~tripadvisor-reviews-scraper/runs" \
  --header "Authorization: Bearer $APIFY_TOKEN" \
  --header "Content-Type: application/json" \
  --data-binary @input.json

La respuesta contiene un ID de ejecución y defaultDatasetId, no resultados finales. Espera a que termine con éxito, define DATASET_ID con ese ID y recupera los elementos. Para datasets grandes, usa limit y offset para paginar.

Recupera el dataset
curl --fail-with-body \
  --url "https://api.apify.com/v2/datasets/$DATASET_ID/items?format=json" \
  --header "Authorization: Bearer $APIFY_TOKEN"

Referencia de la API de ejecución y exportación de Apify
Opciones de exportación del dataset

Cuando los resultados no cuadran.

Cambia un ajuste cada vez, mantén un límite bajo y revisa el resumen antes de ampliar.

Los resultados incluyen lugares que no pedí.

Un nombre lee todos los lugares que encuentra la búsqueda de Tripadvisor, empezando por los más grandes. Ritz London da el hotel y varios restaurantes Ritz. Revisa place_name o pega un enlace para un solo lugar.

Muchas reseñas no tienen subvaloraciones ni tipo de viaje.

Las subvaloraciones, el tipo de viaje y la fecha del viaje son opcionales en Tripadvisor, y muchos autores no los indican. Los valores que faltan quedan vacíos, sin estimarse. Indica cuántas reseñas respaldan cada media.

La fuente devuelve páginas vacías o errores de acceso.

El proxy residencial de EE. UU. es el valor que funciona por defecto. Tripadvisor responde a salidas residenciales, el proxy datacenter de Apify también funciona y otros ajustes vuelven al residencial si Tripadvisor los rechaza.

La ejecución terminó sin resultados

El éxito indica que el Actor terminó, no que la fuente devolviera datos. Revisa SUMMARY.inputProblem, SUMMARY.problem y el registro: pueden faltar objetivos, haber filtros inválidos o solicitudes rechazadas. Prueba un objetivo conocido con menos filtros.

Menos registros de lo esperado

Revisa límites globales, por búsqueda y por página, cobertura y duplicados. Varias búsquedas pueden encontrar el mismo registro. El total de la fuente puede incluir datos no disponibles públicamente. Revisa los trabajos pendientes antes de dar el dataset por completo.

Usa los resultados en tus herramientas.

Google Sheets

Añade review_id, place_name, rating, published_at, trip_type y language. Agrega columnas de tema y seguimiento, y filtra las reseñas negativas sin respuesta.

Leer la guía
Claude + MCP

Pide a Claude que compare lo que mencionan los huéspedes de cada lugar, usando text_english y citando review_url. Que indique qué puntos se basan en pocas reseñas.

Leer la guía
Looker Studio

Grafica la valoración media y las subvaloraciones por mes para cada lugar. Añade filtros de tipo de viaje e idioma, y muestra en cuántas reseñas se basa cada cifra.

Leer la guía
BigQuery + dbt

Guarda las reseñas por review_id con la hora de recogida. Separa subratings en una tabla hija y guarda instantáneas de cada lugar aparte para seguir los cambios de valoración.

Leer la guía
Copiar un prompt para Claude
Prompt para Claude + Apify MCP
Revisa jmlp/tripadvisor-reviews-scraper y recopila hasta 200 reseñas publicadas en los últimos seis meses de https://www.tripadvisor.com/Hotel_Review-g186338-d187591-Reviews-The_Ritz_London_Hotel-London_England.html. Resume lo que los huéspedes elogian y critican usando text_english, cita review_url en cada punto e indica la tasa de respuesta a las reseñas de 1 y 2 estrellas.

Los campos que obtendrás.

Conserva la hora de recopilación y los ID originales. Los necesitarás para comprobar el origen de un resultado o compararlo con otra ejecución.

Antes de sacar conclusiones

Las reseñas son de huéspedes que decidieron escribirlas, así que no son una encuesta representativa de todas las visitas. Las subvaloraciones y el tipo de viaje son opcionales y muchas reseñas no los incluyen. Las versiones en inglés son traducciones automáticas de Tripadvisor, así que revisa el texto original antes de citar una reseña. Un nombre puede coincidir con varios lugares, así que pega un enlace cuando necesites un lugar concreto.

review_id / review_url
ID estable y página pública de la reseña.
rating / title / text / language
La valoración y la reseña tal como se escribieron, y su idioma.
title_english / text_english
Traducción al inglés de Tripadvisor de las reseñas escritas en otros idiomas.
travel_date / trip_type / subratings
Cuándo fue la visita, el tipo de viaje y las valoraciones por aspecto.
reply_text / reply_author
La respuesta de la dirección y el cargo de quien responde.
place_name / place_rating / place_review_count
El lugar y su valoración global al recogerlo.

Preguntas frecuentes.

¿Necesito una cuenta de Tripadvisor?

No. El scraper lee las reseñas públicas de Tripadvisor como un visitante sin sesión. Necesitas una cuenta de Apify para ejecutarlo.

¿Por qué algunas reseñas no tienen versión en inglés?

text_english solo se rellena en reseñas escritas en otro idioma. Las reseñas en inglés no necesitan traducción.

Fuente y detalles actuales del producto: Actor Tripadvisor Reviews de JMLP en Apify.

Otros scrapers
que podrían servirte.

Hablemos de
tu proyecto.

Cuéntame qué necesitas recopilar o entender. Puedo ayudarte con un scraper a medida, un pipeline o el análisis.

Hablemos de tu proyecto