Articles » Google Map » Comment Extraire les Coordonnées Google Maps : Guide Complet pour Scraper Latitude et Longitude

Comment scraper les coordonnées Google Maps, à savoir comment extraire la latitude et la longitude des établissements présents sur Google Maps ?

Pour récupérer ces coordonnées GPS, il y a deux façons de procéder : on peut scraper les coordonnées en même temps que l'on extrait les autres données Google Maps, ou alors on peut utiliser les données Google Maps pour extraire les coordonnées. C'est ce qu'on appelle de l'enrichissement, et c'est cette seconde méthode que l'on va aborder ici.

Sommaire

  1. Pourquoi choisir la méthode d'enrichissement ?
  2. Méthode 1 : Utiliser l'adresse comme input
  3. Méthode 2 : Utiliser la Place ID
  4. Méthode 3 : La solution optimale avec Scrap.io
  5. FAQ : Questions fréquentes

Pourquoi Choisir la Méthode d'Enrichissement ?

Pourquoi privilégier cette approche ? Parce qu'il est plus facile de passer de la seconde méthode à la première que de la première à la seconde. On verra qu'en fonction de la qualité de notre input, on peut arriver à des résultats plus ou moins satisfaisants.

Avant de commencer, si vous souhaitez découvrir la solution optimale pour scraper Google Maps et extraire des coordonnées GPS automatiquement, rendez-vous sur Scrap.io. On en discutera plus en détail dans la suite de cet article.

Méthode 1 : Utiliser l'Adresse comme Input

La Situation Initiale

Le premier input que l'on va utiliser, ce sera l'adresse. Donc la situation initiale est la suivante : vous avez une adresse, ou plus vraisemblablement une liste d'adresses, et l'objectif c'est de les insérer les unes à la suite des autres dans l'input de Google Maps. On en tirera donc une fiche détaillée à partir de laquelle on va pouvoir extraire les coordonnées.

Démonstration Pratique avec Octoparse

Pour faire cette démonstration, je vais utiliser Octoparse. Je vais taper l'URL en question, donc google.com/maps, je clique sur Start et voici ma tâche. Là, je vais faire l'exemple pour une seule adresse pour des raisons de simplicité.

Je vais activer le browse mode pour enlever la popup, je la désactive et là je vais pouvoir insérer dans mon input. Je vérifie bien que j'ai un input "mon texte enter texte", j'insère mon texte. Voici, je clique sur Confirmer, on voit bel et bien que ça a fonctionné, c'est super !

Je vais changer trois paramètres : par exemple mettre une seconde de temps d'attente. Ce n'est pas toujours obligatoire, mais c'est mieux de le faire. Par la suite, je vais taper sur le bouton entrée. Je tape sur Entrée, je mets un Time Out d'une seconde - on verra si on met plus - et load with Ajax à 5 secondes par exemple.

Voici, et vous voyez qu'alors que je n'ai touché à rien d'autre, ça a tapé sur Entrée, ça a simulé le fait que j'ai tapé sur le bouton entrée et nous voici sur la fiche en question.

Extraire les Coordonnées depuis l'URL

Vous allez me dire : "Très bien, mais maintenant comment est-ce qu'on fait pour extraire les coordonnées ?" Elles ne sont pourtant pas visibles sur la fiche en question. Mais il ne faut pas rechercher sur la fiche, en réalité il faut rechercher au niveau de l'URL. Vous voyez que les coordonnées sont notées juste ici : on a d'abord la latitude, une virgule, suivie de la longitude.

Une fois que je sais ça, je vais pouvoir extraire les données. Pareil, mettre un temps d'attente de 5 secondes par exemple, cliquer sur Apply et je vais faire "add custom field page level data" et "page URL". J'ai donc mon URL, il ne reste plus qu'à le décomposer pour obtenir la latitude et la longitude.

Utilisation des Expressions Régulières

Je vais modifier les données en cliquant sur "More clean data", "add step" et "match expression". En d'autres termes, on va devoir écrire une regex. Alors il est assez difficile de rentrer en détail dans les regex en 2 minutes, mais sachez qu'une regex c'est une formule qui va nous permettre d'identifier un pattern de texte spécifique.

Par exemple, je vois que la latitude se situe après le signe arobase et avant la première virgule. Je vais du coup pouvoir faire "start with @" "end with virgule" "generate match" et vous voyez que j'ai la latitude. Je fais apply, confirm, apply et j'ai ma latitude.

Je vais pouvoir répliquer le même processus avec la longitude. On se rend toujours au même endroit, on va juste supprimer la regular expression que l'on a faite et on va en faire une deuxième. Ici on voit que la longitude se situe entre deux virgules, ici et ici. "Start with virgule", "end with virgule", "generate match" et on a bel et bien la longitude. Apply, confirm et apply.

Il ne reste plus qu'à enregistrer les cookies pour faire en sorte que la popup que l'on a eue au début n'apparaisse plus. Je vais aller dans les options "use cookie", "use cookie from the current page" et cliquer sur Apply. Et maintenant je lance l'extraction.

Les Limites de Cette Méthode

Une fois qu'on a ça, qu'est-ce qu'on fait ? Bien évidemment, il va falloir customiser le script en rajoutant une boucle, parce que scraper des coordonnées une par une, c'est bien gentil mais c'est franchement pas pratique. Et une fois que c'est fait, ça y est, on a un script valide... ou presque.

Bien que l'input de l'adresse fonctionne, c'est une méthode loin d'être optimale. Lorsqu'on insère du texte dans l'input de Google Maps, deux options s'offrent à nous :

  1. Soit on obtient qu'un seul résultat et on arrive directement à la fiche détaillée, au quel cas on peut parfaitement extraire les coordonnées sans problème.
  2. Mais si jamais on obtient deux résultats ou plus comme c'est le cas ici, on obtiendra du coup une erreur. La latitude et la longitude ne seront pas précises et on se retrouve condamné à devoir cliquer sur un des deux résultats en espérant tomber sur le bon.

Et c'est ça le problème lorsqu'on utilise l'adresse comme input : on utilise un input assez peu précis, on joue à la roulette. Dans la majorité des cas, ça va fonctionner, mais il y aura toujours un cas sur 10 où ça ne va pas être le cas.

Donc si vraiment vous devez utiliser l'adresse comme input, faites au moins en sorte que l'adresse soit la plus précise possible. On peut toujours faire une concaténation, ça fonctionne, mais encore une fois, ça reste du bricolage.

Méthode 2 : Utiliser la Place ID

Plutôt que d'utiliser l'adresse comme input, on privilégiera souvent la Place ID. La Place ID, théoriquement, est une façon plus précise de procéder étant donné qu'à chaque Place ID est associée une seule et unique entreprise.

Utiliser l'API Geocoding de Google Maps

Mais pour obtenir les coordonnées à partir de la Place ID, il va falloir qu'on utilise une des API de Google Maps, à savoir la Geocoding API. Alors on verra que dans l'idée, le principe est assez simple : on va faire une simple requête et on va remplacer le output format par JSON et les parameters par deux paramètres. Le premier, ce sera du coup la Place ID ainsi que notre clé API.

Et ça, c'est du coup notre problématique immédiate : à savoir comment créer un projet et comment récupérer notre clé API.

Créer un Projet Google Cloud

Pour avoir ma clé API, je vais aller dans console.cloud.google.com et je vais me créer un nouveau projet. Je lui donne un nom, je clique sur Create et je le sélectionne. Par la suite, je vais activer l'API en question : je vais aller dans navigation, dans "API et services" et dans "bibliothèque".

Je scrolle un peu ou tout simplement je peux taper "geocoding API". La voici et je l'active. Et vous voyez qu'alors que je viens d'activer cette API, on me donne accès à ma clé API justement.

Notez que si c'est la première fois que vous utilisez console.cloud, vous allez également devoir vous créer un compte de facturation étant donné que l'API Google Maps, c'est une API payante. Et si je souhaite récupérer ma clé, eh bien je vais dans "Keys & Credentials" et la voici.

💡 Conseil d'expert : Si vous rencontrez des difficultés avec cette étape, consultez notre guide détaillé pour obtenir sa clé API Google Maps qui vous accompagne pas à pas dans cette procédure.

Implémenter la Solution en Python

Maintenant on va écrire notre code. Encore une fois, développer ce n'est pas mon métier, mais là on va faire quelque chose de très simple : on va importer request et importer JSON et on va lancer une request.get avec l'URL en question.

Je vais dans la documentation, je copie, je colle et on a dit qu'on remplacerait le output format par JSON - on peut également le remplacer par du XML - et les parameters par une Place ID. Alors il me semble que c'est "place_id=" j'insère une Place ID, je mets "&key=" et j'insère ma clé. Voici ma clé API, je ferme.

On n'a pas d'erreur, on a un status code de 200, c'est bien. Et si jamais je fais r.json(), on a quelque chose qui semble cohérent et surtout vous voyez qu'on a bel et bien la latitude et la longitude.

Extraire les Données du JSON

Maintenant, comment est-ce qu'on fait pour scraper des données dans un fichier JSON ? Eh bien c'est très simple. Alors d'abord on va créer une variable pour sauvegarder notre fichier JSON. On regarde un peu dans data et là on va dire : l'attitude est égal à data['results']['results'][0]. Par la suite, il va falloir aller dans géométrie, donc je poursuis, je me dis "géométrie" puis dans "localisation" ou "loc" et enfin dans "latitude" et ça y est, on a la latitude.

Il ne reste plus qu'à copier-coller ça en faire la longitude. "LNG", "LNG", "LNG" et on a la longitude.

Les Limites de Place ID

La bonne nouvelle, c'est qu'on voit que cette méthode fonctionne et il y a fort à parier que si on insérait plusieurs Place ID, on obtiendrait un résultat beaucoup plus précis qu'avec les adresses. Néanmoins, le travail ici n'est pas fini : on a fait à peine 10 à 20% du travail.

Une fois qu'on a extrait la latitude et la longitude, il faut par la suite peut-être l'enregistrer dans un fichier CSV ou Excel, donc utiliser une librairie comme Pandas par exemple, et surtout il faut faire une boucle pour insérer toutes les Place ID les unes à la suite des autres.

Mais à la rigueur, s'il n'y avait que ça, ça irait, c'est juste un peu plus de travail, on peut se le permettre. Non, le vrai problème ici c'est que la Place ID, c'est une information très difficilement scrappable. Alors bien évidemment, vous avez des moyens d'obtenir des Place ID une par une, mais ça reste encore une fois du bricolage.

Méthode 3 : La Solution Optimale avec Scrap.io

Donc finalement, quel choix s'offre à nous ? On a le choix entre une adresse facilement scrappable mais peu précise, une Place ID très précise mais difficilement scrappable. Du coup, qu'est-ce qui reste ?

📖 Pour aller plus loin : Découvrez notre analyse complète dans l'article API Google Map versus scraping : Quelle est la meilleure approche ? qui détaille les avantages et inconvénients de chaque méthode.

Les Meilleurs Types d'Input

Il reste le troisième type d'input à savoir des données comme le site internet, le téléphone ou l'adresse email. Et ça, il faut qu'on en parle. Ou pour être plus spécifique, on peut partir de quatre types de données : le site internet, mais aussi le nom de domaine, le téléphone international ou l'adresse email.

Et le principe, le suivant : à partir d'une de ces quatre données, on va pouvoir récupérer toutes les autres données Google Maps. On récupère bien évidemment ces données si et seulement si elles sont présentes sur la plateforme.

Pourquoi Scrap.io est la Solution

Le problème ici, c'est que ce n'est pas quelque chose que l'on peut faire avec l'API de Google Maps, ce n'est pas possible. En revanche, on peut parfaitement obtenir ce résultat avec Scrap.io.

Scrap.io, c'est le boss final du web scraping sur Google Maps ! On peut obtenir un fichier de leads en définissant une catégorie, une localisation, en apposant certains filtres comme par exemple en disant que l'on souhaite obtenir les leads contenant au minimum une adresse email. Et par la suite, on a notre fichier CSV ou Excel, le tout en l'espace de quelques clics - mais littéralement quelques clics !

Scrap.io se positionne comme la solution de référence pour extraire des données d'entreprises à partir de Google Maps en temps réel. Avec 200 millions d'établissements indexés et une capacité de 5 000 requêtes par minute, c'est la seule solution qui permet d'extraire toutes les fiches Google Maps à l'échelle d'un pays entier en deux clics, sans code.

En cliquant sur le lien en description, vous pouvez obtenir vos 100 premiers leads gratuitement.

Automatisation Avancée avec Make.com

Pour ceux qui souhaitent pousser l'automatisation encore plus loin, Scrap.io s'intègre parfaitement avec Make.com (anciennement Integromat). Cette intégration permet d'automatiser complètement le processus d'extraction de coordonnées et de les synchroniser directement avec vos outils CRM ou tableurs.

🚀 Bonus automation : Découvrez comment transformer automatiquement Google Maps en opportunités avec Make.com grâce à notre intégration dédiée.

Utiliser l'API Scrap.io

Et bien que Scrap.io soit une plateforme où vous pouvez scraper Google Maps sans coder, vous pouvez également faire usage de notre API. Comme d'habitude, on va importer request et JSON et là on va faire un simple copier-coller de ce qu'il y a noté sur l'API et on va le customiser.

Je scrolle un peu, l'API elle est ici, je vais dans "GMaps" et dans "enrich". Je vérifie bien que je suis sur Python, pas sur du JavaScript - ou enfin vous pouvez toujours, ma foi, mais nous on va rester sur du Python. Je copie, je colle et on va changer tout ça.

Alors on a déjà importé request et JSON, l'URL ne change pas. Les paramètres : alors les paramètres, on va également en mettre un de plus à savoir le "per_page". J'ai envie de mettre un "per_page" égal à 1, tout simplement parce que si j'ai un nom de domaine ou une URL, j'attends grossièrement qu'un seul résultat.

Ce n'est pas toujours le cas évidemment : dans le cas de grandes enseignes comme par exemple McDonald's ou Starbucks, on va avoir plusieurs résultats. Mais de manière générale, le bistrot de quartier n'est pas disponible aux quatre coins de la planète.

On va changer également le "domain" en "url" et on va piocher la première URL. Et on a dit qu'on va faire quelque chose comme "per_page = 1". Après il y a l'autorisation : il faut simplement remplacer le "XXXXX" par notre clé API que l'on va devoir créer.

Créer sa Clé API Scrap.io

Je retourne sur Scrap.io et une fois que j'ai créé mon compte, j'ai accès à mon dashboard ou mon tableau de bord en français. Je clique sur mon profil et je vais dans sécurité. Je clique sur "clé d'API" et je vais pouvoir créer ma nouvelle clé très facilement. J'ai "Maps", je crée.

Et là, il est très important de copier notre clé API, de la sauvegarder quelque part, tout simplement parce que par la suite on ne pourra plus y avoir accès. C'est bon, je l'ai bien sauvegardée et je remplace "xxx" par ma clé API.

Tester l'API

On a response = request.get(url, params=params, headers=headers). Je vais faire data = response.json(). Je lance la cellule, je n'ai pas d'erreur. Et est-ce que j'ai quelque chose si je vais dans data ? Restaurant Gavroche avec la latitude et la longitude.

De la même manière, pour identifier les deux types d'éléments, je vais pouvoir faire data['data'][0] et par la suite "location"["latitude"]. On a la latitude et vraisemblablement on peut également faire de même avec la longitude.

Conclusion : La Meilleure Méthode

Cette façon de procéder est très certainement la meilleure des trois, tout simplement parce qu'elle allie à la fois précision et facilité de scraping. Peut-être pas pour l'adresse email qui nécessite d'être scrappée à partir du site internet, mais pour le nom de domaine et les numéros de téléphone, ce sont deux informations très facilement trouvables directement sur Google Maps.

D'autant plus qu'à chaque site internet et qu'à chaque numéro de téléphone est associée une entreprise unique. Finalement, tout ce qui reste à faire à présent, c'est de faire une boucle pour trouver toutes les coordonnées de tous les sites internet. Il nous reste donc un tout petit peu plus de travail pour avoir un script adéquat.


FAQ : Questions Fréquentes

Comment extraire des coordonnées de Google Maps ?

Il existe trois méthodes principales : utiliser l'adresse comme input (méthode simple mais imprécise), utiliser la Place ID avec l'API Geocoding (précise mais complexe), ou utiliser Scrap.io avec des données comme le site web ou téléphone (optimal).

Comment récupérer les coordonnées GPS Google Maps ?

Les coordonnées GPS sont visibles dans l'URL de Google Maps après une recherche. Elles apparaissent au format latitude,longitude après le symbole "@". Vous pouvez les extraire manuellement ou automatiser le processus avec des outils comme Octoparse ou Scrap.io.

Quelle est la différence entre latitude et longitude ?

La latitude mesure la distance par rapport à l'équateur (nord-sud) et varie de -90° à +90°. La longitude mesure la distance par rapport au méridien de Greenwich (est-ouest) et varie de -180° à +180°. Dans Google Maps, la latitude apparaît toujours en premier.

Comment utiliser l'API Geocoding de Google ?

L'API Geocoding nécessite une clé API obtenue via Google Cloud Console. Elle permet de convertir une Place ID en coordonnées GPS via une requête HTTP. Format : https://maps.googleapis.com/maps/api/geocode/json?place_id=VOTRE_PLACE_ID&key=VOTRE_CLE_API

Comment automatiser l'extraction de coordonnées ?

Pour automatiser, vous pouvez utiliser Octoparse (scraping avec interface), Python avec l'API Geocoding (développement requis), ou Scrap.io (solution clé en main). Scrap.io est recommandé pour son efficacité et sa simplicité.

Pourquoi utiliser Scrap.io plutôt que d'autres méthodes ?

Scrap.io combine précision et facilité d'usage. Avec 200 millions d'établissements indexés et 5 000 requêtes/minute, c'est la seule solution permettant d'extraire les coordonnées à l'échelle d'un pays entier en quelques clics, sans programmation.

Comment éviter les erreurs lors du scraping avec des adresses ?

Les adresses peuvent générer plusieurs résultats dans Google Maps, causant des erreurs. Pour minimiser ce problème : utilisez des adresses complètes et précises, ajoutez le code postal et la ville, ou préférez la Place ID ou les données de contact comme alternative.

L'extraction de coordonnées Google Maps est-elle légale ?

Oui, l'extraction de données publiques depuis Google Maps est légale selon les lois européennes et américaines, à condition de respecter les conditions d'utilisation. Scrap.io garantit la conformité RGPD et l'usage commercial autorisé.

Prêt à générer des prospects depuis Google Maps?

Essayez Scrap.io gratuitement pendant 7 jours.