Viajes
Booking.com Reviews Scraper
booking.com
Las reseñas de hoteles de Booking.com se sirven mediante un endpoint de plugin dedicado en lugar de la obtención de página genérica. Dale un hotel (una URL de hotel de booking.com como https://www.booking.com/hotel/gb/the-savoy.html, con o sin sufijo de idioma, o la forma corta gb/the-savoy) y devuelve las reseñas más recientes de los huéspedes ya analizadas: el id y la fecha de la reseña, la puntuación sobre 10 con la palabra de valoración de Booking y una franja de valoración, el título, lo que le gustó al huésped y lo que no, el nombre y el país del autor, el tipo de viaje y el tipo de viajero, el número de noches y el mes de la estancia, los votos de utilidad, un indicador de envío desde el móvil, el idioma de la reseña y las etiquetas en bruto de Booking. Booking muestra las 15 reseñas más recientes escritas en cada idioma, así que una llamada devuelve hasta 15 por cada idioma que elijas entre 18, o hasta 270 con todos ellos, y since descarta las reseñas anteriores a una fecha. Por eso encaja para seguir las reseñas nuevas y el sentimiento en varios idiomas, no para descargar el historial completo de reseñas de un hotel. La respuesta solo contiene las reseñas, sin el nombre ni la puntuación global del hotel, y no hace falta cuenta de Booking.com ni API de partner.
Qué puedes extraer
- Id de la reseña, fecha de la reseña, idioma y etiquetas en bruto de Booking
- Puntuación sobre 10, palabra de valoración de Booking y una franja de valoración de exceptional a very_poor
- Título, lo que le gustó al huésped (positiveText) y lo que no (negativeText)
- Nombre, país y código ISO de país del autor
- Tipo de viaje, tipo de viajero, número de noches y mes de la estancia
- Votos de utilidad y un indicador de envío desde el móvil
- Por idioma: estado, reseñas encontradas y un indicador capped cuando Booking guarda reseñas más antiguas de las que sirve
- Las 15 reseñas más recientes por idioma en 18 idiomas o en todos (hasta 270 por llamada), con un corte por fecha (since)
Endpoints dedicados
/travel/booking-reviews Reseñas de hoteles de Booking.com
Las reseñas más recientes de los huéspedes de un hotel de Booking.com (hotel como URL de hotel de booking.com o cc/slug, como gb/the-savoy): hotel (url, countryCode, slug) y un array reviews con id, reviewDate, rating, ratingText, ratingBand, title, positiveText, negativeText, reviewer (name, country, countryCode), tripType, travelerType, nights, stayMonth, helpfulVotes, submittedFromMobile, language y tags. Booking sirve las 15 reseñas más recientes por idioma: elige los idiomas con languages (una lista separada por comas de en, de, fr, es, it, nl, pt, pl, ru, ja, zh, ko, sv, da, no, fi, cs y tr, o all; por defecto en), limita el total con max_results (1-270) y descarta las reseñas antiguas con since (AAAA-MM-DD). languages informa de status, reviewsFound y capped por idioma, y pagesFetched cuenta las páginas de idioma facturadas.
Cómo rastrearlo
curl -X POST \
-H "X-ScrapeUnblocker-Key: $SU_API_KEY" \
"https://api.scrapeunblocker.com/travel/booking-reviews?hotel=https%3A%2F%2Fwww.booking.com%2Fhotel%2Fgb%2Fthe-savoy.html&languages=en%2Cde&max_results=30"import requests
resp = requests.post(
"https://api.scrapeunblocker.com/travel/booking-reviews",
headers={"X-ScrapeUnblocker-Key": SU_API_KEY},
params={"hotel": "https://www.booking.com/hotel/gb/the-savoy.html", "languages": "en,de", "max_results": "30"},
)
print(resp.text)import { ScrapeUnblockerClient } from 'scrapeunblocker';
const su = new ScrapeUnblockerClient({ apiKey: process.env.SU_API_KEY });
const data = await su.bookingReviews('https://www.booking.com/hotel/gb/the-savoy.html', {
languages: 'en,de',
maxResults: 30,
});
console.log(data); Las peticiones son POST y sus parámetros van en la query string. El renderizado en navegador siempre ocurre: no hay ningún flag que activar.
Ejemplo de respuesta
{
"hotel": {
"url": "https://www.booking.com/hotel/gb/the-savoy.html",
"countryCode": "gb",
"slug": "the-savoy"
},
"reviews": [
{
"id": "c035aefe035f7172",
"language": "en",
"reviewDate": "2026-09-29",
"reviewDateText": "Reviewed: September 29, 2026",
"rating": 10.0,
"ratingText": null,
"ratingBand": "exceptional",
"title": "Quality, classic and elegant.",
"positiveText": "Location was fantastic, the history of the hotel and beautiful decor. The staff are lovely, very kind and friendly. Loved the American Bar and the Spa...",
"negativeText": "Going home!",
"reviewer": { "name": "Emma", "country": "United Kingdom", "countryCode": "GB" },
"tripType": "leisure",
"travelerType": "solo",
"nights": 3,
"stayMonth": "2026-09",
"stayText": "Stayed in September 2026",
"helpfulVotes": 5,
"submittedFromMobile": true,
"tags": ["Leisure trip", "Solo traveler", "Stayed 3 nights", "Submitted from a mobile device"]
},
{
"id": "755717066e20eec1",
"language": "de",
"reviewDate": "2026-05-25",
"reviewDateText": "Bewertung abgegeben: 25. Mai 2026",
"rating": 8.0,
"ratingText": null,
"ratingBand": "very_good",
"title": "Es ist ein tolles Hotel mit dem besten Service, den ich jemals hatte.",
"positiveText": "Die Lage des Hotels kann nicht besser sein, das Service ist top! Die Ausstattung ist sehr edel...",
"negativeText": null,
"reviewer": { "name": "Sabine", "country": "Österreich", "countryCode": "AT" },
"tripType": "leisure",
"travelerType": "couple",
"nights": 3,
"stayMonth": "2026-05",
"stayText": "Übernachtet am Mai 2026",
"helpfulVotes": 0,
"submittedFromMobile": false,
"tags": ["Urlaub", "Paar", "Länge des Aufenthalts: 3 Nächte"]
}
],
"resultsCollected": 25,
"languages": [
{ "language": "en", "status": "ok", "reviewsFound": 15, "capped": true },
{ "language": "de", "status": "ok", "reviewsFound": 10, "capped": false }
],
"pagesFetched": 2,
"since": null
} Preguntas frecuentes
¿Es legal hacer scraping de reseñas de Booking.com?
Recopilar reseñas y puntuaciones públicas de Booking.com es lícito en muchas jurisdicciones, pero las normas dependen de tu país, de los datos que recopiles y de cómo los uses. Los nombres de los autores y el texto de las reseñas pueden ser datos personales, así que cumple las normas de privacidad que se te apliquen. ScrapeUnblocker devuelve las reseñas públicas; qué recopilas y cómo lo usas es responsabilidad tuya.
¿Cómo hago scraping de reseñas de Booking.com sin que me bloqueen?
Booking.com protege sus páginas con DataDome. El plugin /travel/booking-reviews lee la propia lista de reseñas de Booking para cada idioma a través de exits ISP rotativos, pasa una página que llega bloqueada a la cadena antibot completa de ScrapeUnblocker, que la renderiza en un navegador real cuando hace falta, y vuelve a intentar una página bloqueada una vez más con un exit nuevo. En el benchmark de ScrapeUnblocker devolvió reseñas en el 100 % de 1.311 llamadas con hoteles distintos en 46 países, unos 0,7 s por llamada.
¿Cuántas reseñas de Booking.com puedo obtener?
Booking.com muestra las 15 reseñas más recientes escritas en cada idioma, de la más reciente a la más antigua, sin páginas más profundas, orden ni filtros detrás. Así que una llamada devuelve como máximo 15 reseñas por cada idioma que elijas, y hasta 270 con los 18 idiomas (max_results de 1 a 270). Cuando un idioma tiene más reseñas, su indicador capped es true: hay reseñas más antiguas en Booking, pero no se pueden alcanzar aquí. El plugin está pensado para seguir las reseñas nuevas y el sentimiento en varios idiomas (llámalo de forma periódica, guarda los ids de reseña que aún no tengas y fija since en la fecha de tu última ejecución) y no descarga el historial completo de reseñas de un hotel.
¿Qué datos obtengo de cada reseña?
Cada reseña trae su id y su fecha, la puntuación sobre 10 con la palabra de valoración de Booking cuando la muestra y un ratingBand que va de exceptional, superb y very_good hasta very_poor, el título, lo que le gustó al huésped (positiveText) y lo que no (negativeText), el nombre visible del autor, su país y su código ISO de país, el tipo de viaje (leisure o business), el tipo de viajero (couple, solo, family, group o friends), el número de noches y el mes de la estancia, los votos de utilidad, si se envió desde un móvil, su idioma y las etiquetas en bruto de Booking. La respuesta no incluye el nombre del hotel, su puntuación global ni su número de reseñas; el plugin de hoteles de Booking.com, /travel/booking, los devuelve para cada alojamiento de una búsqueda.
¿Puedo obtener reseñas de Booking.com en otros idiomas?
Sí. Fija languages con una lista separada por comas de idiomas de reseña (en, de, fr, es, it, nl, pt, pl, ru, ja, zh, ko, sv, da, no, fi, cs y tr) o con all; por defecto es en. Las reseñas llegan en el idioma en que se escribieron, cada una marcada con su código de idioma, sin traducción automática. Los idiomas se leen en el orden que indiques hasta alcanzar max_results, así que pon primero los que más te interesan; el array languages muestra para cada uno si se leyó (ok), si no tenía reseñas (empty) o si no hizo falta (skipped), con reviewsFound y capped. Deja proxy_country vacío: fijar el país del exit hace la llamada más lenta.
¿Cuánto cuesta hacer scraping de reseñas de Booking.com?
Cada página de idioma servida se factura como una petición: una llamada que lee en y de cuenta como 2 peticiones, los 18 idiomas como hasta 18, y pagesFetched muestra el número exacto. Un idioma al que Booking responde sin reseñas también cuenta, porque su página se sirvió; los idiomas que quedan sin leer al alcanzar max_results se marcan como skipped y no se facturan. 1 petición = 1 crédito, 1,00 EUR por cada 1.000 en Pay as you go, bajando hasta unos 0,55 EUR por cada 1.000 en el plan Ultimate. No se facturan los bloqueos ni los timeouts, y la prueba gratuita incluye 500 peticiones sin tarjeta.
Scrapers relacionados
Empieza a rastrear este sitio hoy
Plan gratuito incluido. No necesitas tarjeta para probarlo.