Cartes
Google Maps Reviews Scraper
google.com/maps
Les avis Google Maps sont servis via un endpoint plugin dédié plutôt que par la récupération de page générique. Identifiez un lieu par un feature id (0xHEX:0xHEX), un place_id (ChIJ...) ou une URL de lieu Maps, choisissez l'un des tris de Google (les plus pertinents, les plus récents, la meilleure ou la plus basse note d'abord) et les avis reviennent déjà analysés : la note en étoiles, la date et l'heure exactes en ISO 8601 (la page de Google indique seulement 'il y a 2 ans'), le texte original avec sa langue, la traduction de Google dans la langue que vous fixez avec hl, l'auteur avec son nombre d'avis et de photos, les photos de l'avis, les réponses guidées comme le type de voyage ou une note pour les chambres, le service et l'emplacement, et la réponse du propriétaire. Un court résumé du lieu (nom, adresse, note, nombre d'avis, catégories) accompagne les avis. Les avis arrivent par pages de 20 : max_reviews en rassemble jusqu'à 200 en un appel, et nextPageToken reprend là où un appel s'est arrêté. Le tri par note la plus basse d'abord, celui dont a besoin la surveillance des réclamations et de l'attrition, fonctionne sans compte Google connecté, et les avis sont lus dans le propre flux de Google en HTTP simple, si bien que 20 avis prennent environ 1,8 seconde et qu'aucun projet Google Cloud, compte de facturation ni clé de la Places API n'intervient.
Ce que vous pouvez extraire
- Note en étoiles, date et heure exactes (ISO 8601 UTC et timestamp Unix) et la date relative de Google
- Texte original de l'avis avec sa langue, plus la traduction de Google dans la langue fixée par hl
- Nom de l'auteur, lien vers son profil, avatar et son nombre d'avis et de photos
- Photos de l'avis et réponses guidées (type de voyage, groupe de voyageurs, notes des chambres, du service, de l'emplacement, type de repas)
- La réponse du propriétaire avec sa date relative, l'identifiant de l'avis et un lien vers l'avis sur Google Maps
- Triés comme le fait Google : les plus pertinents, les plus récents, la meilleure ou la plus basse note d'abord
- Résumé du lieu : nom, adresse, note, nombre d'avis, catégories, feature id, cid et lien Maps
- Jusqu'à 200 avis par appel par pages de 20, avec hasMore et nextPageToken pour continuer
Endpoints dédiés
/maps/reviews Les avis Google Maps d'un lieu
Avis d'un lieu indiqué par feature_id (0xHEX:0xHEX, le plus rapide), place_id (ChIJ...) ou une url de lieu Maps, dans les tris de Google avec sort = relevant, newest, highest ou lowest (les valeurs SerpApi qualityScore, newestFirst, ratingHigh et ratingLow sont aussi acceptées). Chaque avis contient reviewId, rating, date (ISO 8601 UTC), timestamp, relativeDate, text, language, translatedText (dans la langue hl), author (name, profileUrl, avatar, reviewCount, photoCount), photos, details, ownerResponse et reviewUrl. La réponse inclut un résumé du lieu (place), reviewsReturned, pagesFetched, hasMore et nextPageToken. max_reviews de 1 à 200 (20 par défaut), récupérés par pages de 20, chaque page étant facturée comme une requête ; hl fixe la langue de la traduction et gl le pays Google.
Comment le scraper
curl -X POST \
-H "X-ScrapeUnblocker-Key: $SU_API_KEY" \
"https://api.scrapeunblocker.com/maps/reviews?feature_id=0xd51baa0e706dffd%3A0x4d6c7dbbf0f408e7&sort=lowest"import requests
resp = requests.post(
"https://api.scrapeunblocker.com/maps/reviews",
headers={"X-ScrapeUnblocker-Key": SU_API_KEY},
params={"feature_id": "0xd51baa0e706dffd:0x4d6c7dbbf0f408e7", "sort": "lowest"},
)
print(resp.text)import { ScrapeUnblockerClient } from 'scrapeunblocker';
const su = new ScrapeUnblockerClient({ apiKey: process.env.SU_API_KEY });
const reviews = await su.mapsReviews({
featureId: '0xd51baa0e706dffd:0x4d6c7dbbf0f408e7',
sort: 'lowest',
});
console.log(reviews); 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
{
"place": {
"name": "Hotel ILUNION San Sebastián",
"address": "Hotel ILUNION San Sebastián, De Zumalakarregi Hiribidea, 20, 20008 Donostia / San Sebastián, Gipuzkoa, Spain",
"rating": 4.2,
"reviewCount": 1638,
"categories": ["Hotel", "Event venue", "Restaurant"],
"featureId": "0xd51baa0e706dffd:0x4d6c7dbbf0f408e7",
"cid": "5578972284560083175",
"googleMapsUrl": "https://www.google.com/maps?cid=5578972284560083175"
},
"featureId": "0xd51baa0e706dffd:0x4d6c7dbbf0f408e7",
"sort": "lowest",
"reviewsReturned": 20,
"pagesFetched": 1,
"hasMore": true,
"nextPageToken": "CjEIARIpCgoAP7-pR_E-____EhAiwW2qhDEwKtcbc_IAAAAAGgn93cgCfaoaRJEYACIA",
"reviews": [
{
"reviewId": "ChdDSUhNMG9nS0VJQ0FnSURIMjZuTzhRRRAB",
"rating": 1,
"date": "2024-09-20T07:24:32Z",
"timestamp": 1726817072,
"relativeDate": "2 years ago",
"text": "La ubicación del hotel es muy buena, ya que estas a un paso de la playa...",
"language": "es",
"translatedText": "The hotel's location is excellent, as it's just steps from the beach...",
"author": {
"name": "Reviewer name",
"profileUrl": "https://www.google.com/maps/contrib/100000000000000000000/reviews",
"avatar": "https://lh3.googleusercontent.com/a-/...",
"reviewCount": 36,
"photoCount": 15
},
"details": [
{ "label": "Trip type", "value": "Vacation" },
{ "label": "Travel group", "value": "Couple" },
{ "label": "Rooms", "rating": 1 },
{ "label": "Service", "rating": 2 },
{ "label": "Location", "rating": 5 }
],
"ownerResponse": {
"text": "Agradecemos que nos haga llegar sus impresiones y sentimos que su estancia no haya sido lo satisfactoria que esperaba...",
"relativeDate": "2 years ago"
},
"reviewUrl": "https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sChdDSUhNMG9nS0VJQ0FnSURIMjZuTzhRRRAB!2m1!1s0x0:0x4d6c7dbbf0f408e7..."
}
]
} Lire la documentation de l'API
Questions fréquentes
Est-il légal de scraper les avis Google Maps ?
Collecter des avis et des notes Google Maps 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, les liens vers leurs profils et le texte des avis peuvent être des données personnelles : respectez les règles de confidentialité qui s'appliquent à vous. ScrapeUnblocker renvoie les avis publics ; ce que vous collectez et la façon dont vous l'utilisez relève de votre responsabilité.
Comment scraper les avis Google Maps sans me faire bloquer ?
Google protège Maps avec ses propres systèmes anti-bot, et l'app web Maps ne permet plus à un visiteur non connecté de trier ni de paginer les avis. Le plugin /maps/reviews lit le flux d'avis que Google sert aux visiteurs non connectés dans la visionneuse de lieux de la recherche, qui accepte toujours les tris de Google et un jeton de page, en HTTP simple via des sorties ISP en rotation : aucun navigateur ni compte Google n'intervient. Dans le benchmark de ScrapeUnblocker, 100 % des 1 106 appels ont renvoyé des avis, chacun sur un lieu différent (hôtels, restaurants, pubs, commerces, hôpitaux, entreprises, écoles et monuments dans plus de 70 pays), en environ 1,8 s par appel.
Puis-je obtenir d'abord les avis Google les plus mal notés ou les plus récents ?
Oui. Réglez sort sur lowest, highest, newest ou relevant (le tri par défaut de Google). La note la plus basse d'abord est le tri dont a besoin la surveillance des réclamations et de l'attrition ; dans Google Maps lui-même, trier les avis demande de se connecter, alors qu'ici aucun compte Google n'intervient. Les valeurs SerpApi qualityScore, newestFirst, ratingHigh et ratingLow sont aussi acceptées : migrer une intégration existante revient donc à changer d'endpoint.
Est-ce que j'obtiens les dates exactes des avis ?
Oui. La page de Google n'affiche qu'une date relative comme 'il y a 2 ans'. Ici, chaque avis porte date, la date et l'heure exactes en ISO 8601 UTC, et timestamp, le même instant en secondes Unix, à côté du relativeDate de Google. Cela permet de filtrer les avis par période ou d'alerter sur les nouveaux ; la réponse du propriétaire arrive avec sa date relative.
Combien d'avis Google Maps puis-je obtenir par appel ?
max_reviews accepte de 1 à 200, 20 par défaut. Google sert les avis par pages de 20, le plugin récupère donc les pages nécessaires l'une après l'autre. S'il y en a davantage, hasMore vaut true et nextPageToken reprend là où l'appel s'est arrêté, avec le même lieu et le même tri ; si max_reviews n'est pas un multiple de 20, la page suivante peut répéter quelques avis, dédupliquez donc sur reviewId. Un lieu sans avis répond 200 avec une liste vide, et un feature id inconnu répond 404.
Les avis dans d'autres langues sont-ils traduits ?
Les deux versions reviennent. text contient l'avis tel qu'il a été écrit, avec son code de langue, et translatedText contient la traduction de Google dans la langue que vous fixez avec hl (en par défaut) dès que l'avis est écrit dans une autre langue. hl fixe aussi la langue des libellés de Google, comme les réponses guidées.
Ai-je besoin d'une clé API ou d'un compte Google Maps ?
Non. La Places API renvoie au plus 5 avis par lieu, sans tri par note la plus basse d'abord et sans pagination. Le plugin /maps/reviews n'a besoin que de votre clé ScrapeUnblocker : passez un feature id, un place_id ou une URL de lieu Maps. Un feature id évite l'étape de résolution par laquelle passe un place_id, et le plugin Google Maps Place Details renvoie le feature id avec le reste du lieu.
Combien coûte le scraping des avis Google Maps ?
Chaque page de 20 avis au plus est facturée comme une requête : les 20 avis par défaut coûtent 1 requête, max_reviews=200 jusqu'à 10, et pagesFetched indique le nombre exact. 1 requête = 1 crédit, 1,00 EUR pour 1 000 en paiement à l'usage, jusqu'à environ 0,55 EUR pour 1 000 sur l'offre Ultimate. Les blocages, timeouts et erreurs côté ScrapeUnblocker ne sont pas facturés, et l'essai gratuit inclut 500 requêtes sans carte bancaire.
Scrapers similaires
Google Maps Reviews et les autres noms et marques de google.com appartiennent à leur titulaire et ne servent ici qu'à désigner le site avec lequel cette API fonctionne. ScrapeUnblocker est un service indépendant, sans lien avec le titulaire de google.com, et n'est ni approuvé ni parrainé par lui.
Commencez à scraper ce site dès aujourd'hui
Palier gratuit inclus. Aucune carte bancaire requise pour tester.