Voyage
Booking.com Reviews Scraper
booking.com
Les avis d'hôtels Booking.com sont servis via un endpoint de plugin dédié plutôt que par la récupération de page générique. Donnez-lui un hôtel - une URL d'hôtel booking.com comme https://www.booking.com/hotel/gb/the-savoy.html, avec ou sans suffixe de langue, ou la forme courte gb/the-savoy - et il renvoie les avis clients les plus récents de l'hôtel déjà analysés : l'identifiant et la date de l'avis, la note sur 10 avec le mot d'appréciation de Booking et une tranche de note, le titre, ce que le client a aimé et ce qu'il n'a pas aimé, le nom et le pays de l'auteur, le type de voyage et le type de voyageur, le nombre de nuits et le mois du séjour, les votes utiles, un indicateur d'envoi depuis un mobile, la langue de l'avis et les tags bruts de Booking. Booking expose les 15 avis les plus récents rédigés dans chaque langue, si bien qu'un appel renvoie jusqu'à 15 avis par langue choisie parmi 18, ou jusqu'à 270 avec toutes, et since écarte les avis antérieurs à une date. Il convient donc au suivi des nouveaux avis et du sentiment dans plusieurs langues, pas au téléchargement de l'historique complet des avis d'un hôtel. La réponse ne contient que les avis, sans le nom ni la note globale de l'hôtel, et aucun compte Booking.com ni API partenaire n'est nécessaire.
Ce que vous pouvez extraire
- Identifiant de l'avis, date de l'avis, langue et tags bruts de Booking
- Note sur 10, mot d'appréciation de Booking et une tranche de note de exceptional à very_poor
- Titre, ce que le client a aimé (positiveText) et ce qu'il n'a pas aimé (negativeText)
- Nom, pays et code pays ISO de l'auteur
- Type de voyage, type de voyageur, nombre de nuits et mois du séjour
- Votes utiles et un indicateur d'envoi depuis un mobile
- Par langue : statut, avis trouvés et un indicateur capped quand Booking détient des avis plus anciens que ceux qu'il sert
- Les 15 avis les plus récents par langue dans 18 langues ou toutes (jusqu'à 270 par appel), avec une date limite (since)
Endpoints dédiés
/travel/booking-reviews Avis d'hôtels Booking.com
Les avis clients les plus récents d'un hôtel Booking.com (hotel comme URL d'hôtel booking.com ou cc/slug, par exemple gb/the-savoy) : hotel (url, countryCode, slug) et un tableau reviews avec id, reviewDate, rating, ratingText, ratingBand, title, positiveText, negativeText, reviewer (name, country, countryCode), tripType, travelerType, nights, stayMonth, helpfulVotes, submittedFromMobile, language et tags. Booking sert les 15 avis les plus récents par langue : choisissez les langues avec languages (une liste séparée par des virgules parmi en, de, fr, es, it, nl, pt, pl, ru, ja, zh, ko, sv, da, no, fi, cs et tr, ou all ; en par défaut), limitez le total avec max_results (1-270) et écartez les avis anciens avec since (AAAA-MM-JJ). languages indique status, reviewsFound et capped pour chaque langue, et pagesFetched compte les pages de langue facturées.
Comment le scraper
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); Les requêtes sont en POST et passent leurs paramètres dans la query string. Le rendu navigateur a toujours lieu : aucun flag à activer.
Exemple de réponse
{
"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
} Lire la documentation de l'API
Questions fréquentes
Le scraping des avis Booking.com est-il légal ?
Collecter des avis et des notes Booking.com publics est licite dans de nombreuses juridictions, mais les règles dépendent de votre pays, des données collectées et de leur usage. Les noms des auteurs et le texte des avis peuvent être des données personnelles, respectez donc les règles de confidentialité qui s'appliquent à vous. ScrapeUnblocker renvoie les avis publics ; ce que vous collectez et comment vous l'utilisez relève de votre responsabilité.
Comment scraper les avis Booking.com sans se faire bloquer ?
Booking.com protège ses pages avec DataDome. Le plugin /travel/booking-reviews lit la liste d'avis de Booking elle-même pour chaque langue via des sorties ISP rotatives, confie une page qui revient bloquée à la chaîne anti-bot complète de ScrapeUnblocker, qui la rend dans un vrai navigateur si nécessaire, et retente une page bloquée une fois de plus via une nouvelle sortie. Dans le benchmark de ScrapeUnblocker, 100 % des 1 311 appels avec des hôtels différents dans 46 pays ont renvoyé des avis, en environ 0,7 s par appel.
Combien d'avis Booking.com puis-je obtenir ?
Booking.com expose les 15 avis les plus récents rédigés dans chaque langue, du plus récent au plus ancien, sans page plus profonde, tri ni filtre derrière. Un appel renvoie donc au plus 15 avis par langue choisie, et jusqu'à 270 avec les 18 langues (max_results de 1 à 270). Quand une langue compte davantage d'avis, son indicateur capped vaut true : des avis plus anciens existent sur Booking mais ne sont pas accessibles ici. Le plugin est conçu pour suivre les nouveaux avis et le sentiment dans plusieurs langues - appelez-le régulièrement, conservez les identifiants d'avis que vous n'avez pas encore et réglez since sur la date de votre dernier passage - et il ne télécharge pas l'historique complet des avis d'un hôtel.
Quelles données j'obtiens pour chaque avis ?
Chaque avis comporte son identifiant et sa date, la note sur 10 avec le mot d'appréciation de Booking quand il en affiche un et un ratingBand allant de exceptional, superb et very_good jusqu'à very_poor, le titre, ce que le client a aimé (positiveText) et ce qu'il n'a pas aimé (negativeText), le nom affiché de l'auteur, son pays et son code pays ISO, le type de voyage (leisure ou business), le type de voyageur (couple, solo, family, group ou friends), le nombre de nuits et le mois du séjour, les votes utiles, s'il a été envoyé depuis un mobile, sa langue et les tags bruts de Booking. La réponse n'inclut ni le nom de l'hôtel, ni sa note globale, ni son nombre d'avis ; le plugin d'hôtels Booking.com, /travel/booking, les renvoie pour chaque hébergement d'une recherche.
Puis-je obtenir des avis Booking.com dans d'autres langues ?
Oui. Réglez languages sur une liste de langues d'avis séparées par des virgules - en, de, fr, es, it, nl, pt, pl, ru, ja, zh, ko, sv, da, no, fi, cs et tr - ou sur all ; la valeur par défaut est en. Les avis reviennent dans la langue où ils ont été rédigés, chacun avec son code de langue, sans traduction automatique. Les langues sont lues dans l'ordre indiqué jusqu'à atteindre max_results, placez donc en premier celles qui comptent le plus ; le tableau languages indique pour chacune si elle a été lue (ok), si elle n'avait aucun avis (empty) ou si elle n'a pas été nécessaire (skipped), avec reviewsFound et capped. Laissez proxy_country vide : fixer le pays de sortie rend l'appel plus lent.
Combien coûte le scraping des avis Booking.com ?
Chaque page de langue servie est facturée comme une requête : un appel qui lit en et de compte pour 2 requêtes, les 18 langues pour 18 au plus, et pagesFetched indique le nombre exact. Une langue pour laquelle Booking ne renvoie aucun avis compte quand même, puisque sa page a été servie ; les langues restées non lues une fois max_results atteint sont marquées skipped et ne sont pas facturées. 1 requête = 1 crédit, 1,00 EUR pour 1 000 en paiement à l'usage, en descendant jusqu'à environ 0,55 EUR pour 1 000 sur l'offre Ultimate. Les blocages et les timeouts ne sont pas facturés, et l'essai gratuit inclut 500 requêtes sans carte bancaire.
Scrapers similaires
Commencez à scraper ce site dès aujourd'hui
Palier gratuit inclus. Aucune carte bancaire requise pour tester.