Comment récupérer les résultats de Google Maps sur le Web ?
Andrei Ogiolan le 20 avril 2023

Introduction
Google Maps est l'un des services de cartographie et de navigation les plus utilisés au monde. Il permet aux utilisateurs de trouver et d'explorer facilement des lieux, des entreprises et des centres d'intérêt. L'une des principales fonctionnalités de Google Maps est la possibilité de rechercher des lieux et d'afficher des informations détaillées à leur sujet, telles que leur emplacement, des commentaires, des photos, etc.
L'extraction de ces données de Google Maps peut être utile à diverses fins. Par exemple, les entreprises peuvent utiliser ces données pour suivre et analyser les performances de leurs sites, les chercheurs peuvent les utiliser pour étudier les modèles de comportement des consommateurs, et les particuliers peuvent les utiliser pour trouver et explorer de nouveaux endroits.
L'objectif de cet article est de fournir un guide étape par étape sur la façon de récupérer les résultats de Google Maps avec notre API en utilisant Node.js. Nous couvrirons tous les aspects, de la configuration de l'environnement de développement à l'extraction des données pertinentes, en passant par la description des problèmes potentiels. À la fin de cet article, vous disposerez des connaissances et des outils nécessaires pour extraire les résultats de Google Maps par vous-même.
Pourquoi utiliser un racleur professionnel au lieu de construire le vôtre ?
L'utilisation d'un scraper professionnel peut être une meilleure option que la création de votre propre scraper, et ce pour plusieurs raisons. Tout d'abord, les scrappers professionnels sont conçus pour gérer une grande variété de tâches de scraping et sont optimisés pour la performance, la fiabilité et l'évolutivité. Ils sont conçus pour traiter de grandes quantités de données et peuvent prendre en charge différents types de sites web et de technologies web. Cela signifie que les scrapers professionnels peuvent souvent extraire des données plus rapidement et avec plus de précision qu'un scraper personnalisé.
En outre, les scrapers professionnels sont souvent dotés de fonctions intégrées telles que la résolution des CAPTCHA, la rotation des IP et la gestion des erreurs, qui peuvent rendre le processus de scraping plus efficace et moins sujet aux erreurs. Ils proposent également une assistance et une documentation qui peuvent s'avérer utiles en cas de problème.
Un autre aspect important est que les fournisseurs de scrapers professionnels respectent les politiques de scraping des sites web qu'ils scrappent et qu'ils peuvent fournir une utilisation légale des données, ce qu'il est important de garder à l'esprit lorsqu'on scrappe des données.
Enfin, dans notre cas particulier, afin de récupérer les résultats de Google Maps, vous devez passer un paramètre de données à votre URL Google comme ceci :
Le paramètre de données ressemble généralement à ceci : !4m5!3m4!1s + data_id + !8m2!3 + latitude + !4d + longitude. Je sais que cela peut sembler intimidant au début car vous n'avez peut-être aucune idée de la façon d'obtenir la propriété data_id pour un lieu spécifique et vous avez raison car Google cache cette information et elle n'est pas visible sur la page lorsque vous recherchez un lieu dans Google Maps. Mais, heureusement, l'utilisation d'un scraper professionnel comme le nôtre s'occupe de cela en trouvant ces données pour vous. Nous verrons dans les sections suivantes comment obtenir le data_id, les coordonnées et comment construire facilement le paramètre de données.
Définir notre objectif
Qu'est-ce que les résultats de Google Maps Place ?
Les résultats des lieux de Google Maps sont les résultats qui s'affichent lorsqu'un utilisateur recherche un lieu sur Google Maps. Ces résultats peuvent inclure des lieux tels que des entreprises, des restaurants, des hôtels, des points de repère et d'autres centres d'intérêt. Chaque résultat comprend des informations telles que le nom, l'adresse, le numéro de téléphone, le site web, les commentaires et les photos du lieu. Les résultats relatifs aux lieux comprennent également une image Street View de Google Maps et une carte indiquant l'emplacement du lieu. Les résultats peuvent également inclure un lien vers la page Google My Business de l'établissement.
Lorsqu'un utilisateur recherche un lieu sur Google Maps, il obtient une liste de résultats correspondant à sa requête. Ces résultats sont affichés sur la carte et sous forme de liste, et peuvent être filtrés selon différents critères tels que l'évaluation, le prix et la distance.
L'exploitation de ces données peut être utile aux entreprises qui souhaitent suivre et analyser les performances de leurs sites, aux chercheurs qui veulent étudier les modèles de comportement des consommateurs et aux particuliers qui veulent trouver et explorer de nouveaux endroits.
À quoi ressemble notre objectif ?

Mise en place
Avant de commencer à récupérer les résultats de Google Maps, nous devons nous assurer que nous disposons des outils nécessaires. La première chose dont nous aurons besoin est Node.js, un moteur d'exécution JavaScript qui nous permet d'exécuter JavaScript sur le côté serveur et que vous pouvez installer depuis leur site officiel. La deuxième chose dont vous avez besoin est une CLÉ API, que vous pouvez obtenir facilement en créant un compte ici et en activant le service SERP.
Une fois ces éléments mis en place, pour exécuter un script Node.js, il suffit de créer un fichier js. Vous pouvez y parvenir en exécutant la commande suivante :
$ touch scraper.js
Et maintenant, collez la ligne suivante dans votre fichier :
console.log("Hello World !")
Puis exécutez la commande suivante :
$ node scraper.js
Si vous pouvez maintenant voir le message "Hello World !" imprimé sur le terminal, cela signifie que vous avez installé Node.js avec succès et que vous êtes prêt à passer à la dernière étape.
La dernière étape consiste à obtenir les informations data_id sur le lieu qui vous intéresse. C'est à ce moment-là que notre API entre en jeu. Son utilisation est très simple et ne nécessite pas l'installation de bibliothèques externes.
Tout d'abord, dans un fichier js, vous devez importer le module Node.js `https` intégré afin de pouvoir envoyer des requêtes à notre API. Cela peut être fait comme suit :
const https = require("https") ;
Deuxièmement, vous devez spécifier votre clé API, un terme de recherche et les coordonnées du lieu qui vous intéresse :
const API_KEY = "<YOUR-API-KEY-HERE>" // You can get by creating an account - https://app.webscrapingapi.com/register
const query = "Waldo%20Pizza"
const coords = "@38.99313451901278,-94.59368586441806"
Vous devez maintenant transmettre ces informations dans un objet d'options afin que notre API comprenne de quel endroit vous avez besoin de récupérer des informations :
const options = {
"method": "GET",
"hostname": "serpapi.webscrapingapi.com",
"port": null,
"path": `/v1?engine=google_maps&api_key=${API_KEY}&type=search&q=${query}&ll=${coords}`,
"headers": {}
};
Ensuite, vous devez mettre en place un appel à notre API avec toutes ces informations :
const req = https.request(options, function (res) {
const chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function () {
const body = Buffer.concat(chunks);
const response = JSON.parse(body.toString());
const data_id = response.place_results.data_id;
if (data_id) {
console.log(data_id);
}
else {
console.log('We could not find a data_id property for your query. Please try using another query')
}
});
});
req.end();
Enfin, il vous suffit d'exécuter le script que vous avez créé et d'attendre les résultats :
$ node scraper.js
Vous devriez obtenir la propriété data_id imprimée à l'écran :
$ 0x87c0ef253b04093f:0xafdfd6dc1d3a2b4es
Et voilà, à ce stade vous avez tout ce qu'il faut pour créer le paramètre de données et vous êtes prêt à passer à la section suivante qui contient l'objet de cet article.
Commençons par récupérer les résultats de Google Place
Maintenant que votre environnement est configuré, vous êtes prêt à commencer à récupérer les résultats de Google Maps avec Node.js. Comme nous l'avons déjà mentionné, afin de récupérer les résultats de Google Maps, vous devez maintenant configurer le paramètre de données. Comme vous disposez de tous les éléments nécessaires, vous pouvez procéder de la manière suivante :
const data_id = "0x87c0ef253b04093f:0xafdfd6dc1d3a2b4e" // le data_id que nous avons récupéré plus tôt
const latitude = '38.99313451901278'
const longitude = '-94.59368586441806'
const data = '!4m5!3m4!1s' + data_id + '!8m2!3d' + latitude + '!4d' + longitude
Vous devez maintenant modifier votre objet d'options pour indiquer à notre API que vous recherchez des résultats sur les lieux. Grâce à ce nouveau paramètre de données, notre API saura exactement quel est le lieu dont vous avez besoin pour récupérer des informations :
const options = {
"method": "GET",
"hostname": "serpapi.webscrapingapi.com",
"port": null,
"path": `/v1?engine=google_maps&api_key=${API_KEY}&type=place&data=${data}`, // this time the type is place and there is no query needed
"headers": {}
};
Le script résultant devrait ressembler à ceci :
const https = require("https");
const API_KEY = "<YOUR-API-KEY-HERE>" // You can get by creating an account - https://app.webscrapingapi.com/register
const data_id = "0x87c0ef253b04093f:0xafdfd6dc1d3a2b4e" // the data_id we retrieved earlier
const latitude = '38.99313451901278'
const longitude = '-94.59368586441806'
const data = '!4m5!3m4!1s' + data_id + '!8m2!3d' + latitude + '!4d' + longitude
const options = {
"method": "GET",
"hostname": "serpapi.webscrapingapi.com",
"port": null,
"path": `/v1?engine=google_maps&api_key=${API_KEY}&type=place&data=${data}`, // this time the type is place and there is no query needed
"headers": {}
};
const req = https.request(options, function (res) {
const chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function () {
const body = Buffer.concat(chunks);
const response = JSON.parse(body.toString());
console.log(response)
});
});
req.end();
Après avoir exécuté ce script, vous devriez obtenir une réponse ressemblant à celle-ci :
place_results: {
title: 'Waldo Pizza',
data_id: '0x89c259a61c75684f:0x79d31adb123348d2',
place_id: 'ChIJT2h1HKZZwokR0kgzEtsa03k',
data_cid: '8778389626880739538',
website: 'https://www.stumptowntogo.com/',
gps_coordinates: { latitude: 38.99313451901278, longitude: -94.59368586 },
reviews_link: 'https://serpapi.webscrapingapi.com/v1?engine=google_maps_reviews&data_id=0x89c259a61c75684f:0x79d31adb123348d2',
place_id_search: 'https://serpapi.webscrapingapi.com/v1?engine=google_maps&type=place&device=desktop&data=!4m5!3m4!1s0x89c259a61c75684f:0x79d31adb123348d2!8m2!3d38.99313451901278!4d-94.59368586',
thumbnail: 'https://lh5.googleusercontent.com/p/AF1QipNtnPBJ2Oi_C2YNamHTXyqU9I8mRBarCIvM5g5v=w408-h272-k-no',
rating: 4.6,
reviews: 2594,
price: '$$',
type: [ 'Pizza restaurant' ],
service_options: { dine_in: true, curbsidepickup: true, no_contactdelivery: true },
extensions: [
[Object], [Object],
[Object], [Object],
[Object], [Object],
[Object], [Object],
[Object], [Object]
],
open_state: 'Closed',
hours: [
[Object], [Object],
[Object], [Object],
[Object], [Object],
[Object]
],
contact_details: {
address: [Object],
action_1: [Object],
menu: [Object],
phone: [Object],
plus_code: [Object]
},
address: '7433 Broadway St, Kansas City, MO 64114',
images: [
[Object], [Object],
[Object], [Object],
[Object], [Object],
[Object], [Object],
[Object], [Object],
[Object], [Object]
],
people_also_search_for: [ [Object], [Object], [Object] ],
user_reviews: { summaries: [Array], most_relevant: [Array] },
popular_times: { graph_results: [Object] }
}
}
Et c'est tout. Cela signifie que vous avez réussi à récupérer les résultats de Google Maps à l'aide de notre API et que vous êtes maintenant prêt à utiliser les données obtenues à des fins diverses telles que l'analyse de données, l'analyse commerciale, l'apprentissage automatique, et bien plus encore. Pour plus de références et des exemples de code dans d'autres 6 langages de programmation pour vous aider à démarrer, n'hésitez pas à explorer notre documentation sur Google Maps.
Limites des résultats de Google Maps Place
Les résultats de Google Maps concernant les lieux, bien qu'ils constituent un outil puissant pour trouver et explorer des lieux, présentent certaines limites qu'il convient de garder à l'esprit. Tout d'abord, la quantité de données disponibles pour chaque lieu est limitée et certaines données telles que les photos, l'ID du lieu, etc. ne sont disponibles que par l'intermédiaire de l'API de Google Maps et nécessitent une clé API. En outre, les données fournies dans les résultats de Google Maps peuvent être dynamiques et changer au fil du temps, ce qui signifie que les données que vous récupérez peuvent ne pas être exactes ou à jour.
Conclusion
En conclusion, l'extraction des résultats de Google Maps peut être un outil utile pour les entreprises, les chercheurs et les particuliers afin de trouver et d'explorer de nouveaux endroits. En suivant les étapes décrites dans cet article, vous devriez maintenant avoir les connaissances et les outils nécessaires pour récupérer les résultats des lieux de Google Maps à l'aide de notre API en utilisant Node.js.
Nouvelles et mises à jour
Restez au courant des derniers guides et nouvelles sur le web scraping en vous inscrivant à notre lettre d'information.
We care about the protection of your data. Read our <l>Privacy Policy</l>.Privacy Policy.

Articles connexes

Collectez sans effort des données en temps réel à partir des moteurs de recherche à l'aide de l'API SERP Scraping. Améliorez vos analyses de marché, votre référencement et vos recherches thématiques en toute simplicité. Commencez dès aujourd'hui !


Comparaison des 7 meilleures API SERP de Google : WebScrapingAPI, Apify, Serp API & More - Meilleur rapport qualité-prix, fonctionnalités, avantages et inconvénients


Découvrez 3 façons de télécharger des fichiers avec Puppeteer et construisez un scraper web qui fait exactement cela.
