scraper google maps
5/5 - (2 votes)

Ça sert à quoi de scraper Google maps ?

Scraper Google Maps, ça consiste à fouiller cette immense carte pour en extraire des infos qui valent de l’or. Pour naviguer correctement sans se prendre les pieds dans le tapis, mieux vaut se munir d’un bon outil.

C’est là que l’API ScrapingBee fait son entrée fracassante, te facilitant la tâche tout en restant dans les clous des règles imposées par Google Maps. Et cet outil, va te changer la vie !

 

C’est quoi scrapingbee ?

C’est un outil de scraping web qui joue les intermédiaires entre toi et les sites web que tu veux explorer. Imaginons que tu veux récupérer des infos d’une page web, mais sans te faire bloquer par les protections anti-scraping comme les CAPTCHAs ou les bannissements d’IP.

ScrapingBee gère tout ça pour toi grâce à la rotation de proxy. Il t’offre aussi la possibilité de rendre ton scraping plus efficace en gérant le JavaScript, ce qui est top pour les sites modernes qui en sont gavés.

En gros, tu envoies ta requête, il se charge de la traiter comme si c’était un visiteur normal, et te renvoie les données. C’est ton passe-partout dans le monde parfois verrouillé du web.

 

On s’inscrit comment ?

C’est hyper simple. Si t’as un compte Google, tu peux t’inscrire en un clic. Pas de formulaires longs comme le bras, juste une connexion rapide pour que tu puisses entrer dans le vif du sujet sans perdre une minute.

Une fois que tu es connecté, dirige-toi vers le « Google API Request Builder« . Cette interface, c’est ton tableau de bord pour paramétrer ta récolte de données (Pays, Langue, Nombre de résultats etc…). Tu vas pouvoir ajuster tes paramètres selon tes besoins spécifiques, sans avoir à toucher une ligne de code.

interface scraping google maps

Et là, ça devient intéressant, avec un simple clic, ça te génère automatiquement le code nécessaire pour ton projet de scraping. Peu importe le langage de programmation que tu préfères, tu as toutes les options à portée de main. Voici la palette de choix qui s’offre à toi pour récupérer ton code prêt à l’emploi :

  • cURL
  • Python
  • NodeJS Axios
  • NodeJS request
  • Java
  • Ruby
  • PHP
  • Go
  • C#

Chaque option te fournit un script adapté, prêt à lancer. Que demander de mieux franchement ?

 

Quelles bibliothèques python pour scraper Google maps ?

Pour te lancer dans le scraping de Google Maps avec l’API ScrapingBee, tu auras besoin de quelques outils Python bien choisis. Commençons par requests, le couteau suisse des librairies Python pour gérer les requêtes HTTP. Simple à utiliser mais redoutablement efficace, elle te permet de dialoguer avec des serveurs web sans prise de tête.

Ensuite, json entre en scène pour te donner un coup de main avec le formatage des données. Quand tu reçois des données de l’API, elles sont souvent en format JSON, qui est essentiellement du texte structuré facile à lire pour les machines. La bibliothèque json de Python te permet de décoder et encoder du JSON sans que tu aies à t’arracher les cheveux.

Avec ces deux bibliothèques, tu es paré pour commencer à explorer le monde du scraping en utilisant Python et ScrapingBee. Maintenant, voyons comment on peut mettre cela en pratique avec un exemple de code.

 

Explication du code Python pour scraper Google Maps

L’objectif ici, c’est de récupérer des infos sur les restaurants à Paris. Un bon plan si tu veux découvrir où aller pour ta prochaine sortie. On commence par importer deux modules essentiels : requests et json. requests c’est le champion pour envoyer des requêtes HTTP.

Facile à utiliser, il te permet de discuter avec des API ou des sites web sans avoir à transpirer. Le module json, lui, est notre interprète personnel qui va traduire le jargon JSON, utilisé par la plupart des API, en un format que Python comprend et peut manipuler facilement.

def send_request():
    response = requests.get(
        url='https://app.scrapingbee.com/api/v1/store/google',
        params={
            'api_key': 'XXX',  # Clé API, remplace 'XXX' par ta clé personnelle
            'search': 'restaurant Paris',  # On cherche des restos à Paris
            'country_code': 'fr',  # Focus sur la France
            'language': 'fr',  # On veut les résultats en français
            'nb_results': '10',  # On demande les 10 premiers résultats
            'search_type': 'maps', 
        }
    )

Dans la fonction send_request(), on utilise requests.get() pour taper une requête GET vers l’API ScrapingBee. Les paramètres de la requête sont bien alignés pour notre mission, récupérer des données sur les restaurants parisiens. Tu remarques qu’on doit fournir une clé API (api_key), donc n’oublie pas d’ajouter la tienne.

    if response.status_code == 200:
        # Conversion de la réponse JSON en dictionnaire Python
        data = json.loads(response.text)
        # Affichage formaté du dictionnaire
        print(json.dumps(data, indent=4, ensure_ascii=False))
    else:
        # En cas de problème, on affiche les détails pour comprendre
        print('Response HTTP Status Code:', response.status_code)
        print('Response HTTP Response Body:', response.content)

Après avoir envoyé la requête, on vérifie le code de statut de la réponse. Un 200 c’est le feu vert : tout s’est bien passé. On convertit alors la réponse, qui est en format JSON, en un dictionnaire Python avec json.loads(). Ça rend les données super faciles à lire et à manipuler. Avec json.dumps(), on réimprime le tout joliment, pour que ce soit agréable à lire pour un humain.

Si le statut n’est pas un 200, c’est qu’il y a un hic. On affiche donc le code de statut et le corps de la réponse pour débugger. Ça peut aider à identifier le problème rapidement et à trouver comment le résoudre.

Enfin, la fonction send_request() est appelée pour exécuter tout ce processus. En résumé, ce script est ton allié pour sortir et explorer le monde des restaurants à Paris via Google Maps, tout en restant confortablement installé derrière ton écran.

 

Le code complet :

import requests
import json  # Importez le module json pour le formatage

def send_request():
    response = requests.get(
        url='https://app.scrapingbee.com/api/v1/store/google',
        params={
            'api_key': 'XXX',
            'search': 'restaurant Paris',
            'country_code': 'fr',
            'language': 'fr',
	        'nb_results': '10',
            'search_type': 'maps', 
        }
    )
    if response.status_code == 200:
        # Utilisez json.loads pour convertir la réponse en un dictionnaire Python
        data = json.loads(response.text)
        # Imprimez joliment le dictionnaire avec json.dumps
        print(json.dumps(data, indent=4, ensure_ascii=False))
    else:
        print('Response HTTP Status Code:', response.status_code)
        print('Response HTTP Response Body:', response.content)

send_request()

 

Ce que le script va te retourner :

scraping google maps python

 

Métadonnées de ta requête

  • URL de recherche: C’est l’URL générée pour ta recherche sur Google, qui cherche spécifiquement des restaurants à Paris.
  • Nombre de résultats: 758 millions, mon pote ! C’est le nombre total de résultats que Google a trouvés. Oui, c’est énorme !
  • Zéro résultat pour la requête originale ?: Non, ce qui signifie que ta recherche a bien ramené des données.
  • Localisation: La recherche se focalise sur la France.
  • Nombre de résultats organiques: 10. C’est le nombre de résultats naturels (pas des pubs) que ScrapingBee t’a ramenés.
  • Nombre de pubs: Zéro. Clean, pas de pub dans tes résultats pour cette requête.
  • Nombre de pages: Yep, 758 millions de pages possibles, mais qui va aller jusque-là ?

 

Résultats organiques

 

1. TripAdvisor

  • URL: Visite TripAdvisor Paris
  • URL affichée: Celle que tu vois dans les résultats de recherche, ça aide à savoir si tu es au bon endroit.
  • Description: Une petite intro qui te dit que c’est là que tu trouveras les meilleurs restos de Paris, de Blossom à Tiger Thaï.
  • Position: N°1 dans les résultats de recherche, la crème de la crème, quoi.
  • Titre: « LES 10 MEILLEURS restaurants à Paris – Tripadvisor »
  • Domaine: www.tripadvisor.fr
  • Sous-liens: Pas cette fois-ci.

 

2. Best Restaurants Paris

  • URL: Best Restaurants Paris
  • URL affichée: Pareil, une URL simplifiée qui apparaît dans les résultats.
  • Description: Te propose une sélection de 250 restos top à Paris, parfait pour trouver où manger selon ton envie.
  • Position: N°2, juste derrière TripAdvisor.
  • Titre: « Restaurant Paris : le guide des meilleurs restaurants Paris »
  • Domaine: bestrestaurantsparis.com
  • Sous-liens: Plein de liens pour affiner ta recherche, que ce soit par arrondissement ou type de cuisine.

Ces données te donnent une idée précise de ce que les gens voient quand ils cherchent un resto à Paris sur Google. C’est ultra-pratique pour analyser le terrain et voir qui domine le jeu du SEO dans le domaine de la restauration à Paris.

 

Cas concrets d’utilisation

Plongeons dans le vif du sujet avec des exemples bien concrets où un outil comme celui-ci se révèle ultra utile :

 

Veille tarifaire

T’es un commerçant en ligne ? Alors rester alerte sur les prix de la concurrence, c’est crucial. Tu peux capter les prix actuels sans effort et tu ajustes les tiens en direct pour toujours garder une longueur d’avance. Tu te positionnes ainsi toujours au meilleur prix, et tes clients s’en rendent compte.

 

Exploration de marché

Récupère des tonnes de données sur les habitudes des consommateurs, et tu auras une vision claire de là où le vent souffle. Cela te permet de sculpter tes stratégies marketing pour qu’elles résonnent parfaitement avec tes cibles.

 

Optimisation SEO

Pour les as du SEO, analyser comment les concurrents se positionnent sur Google peut donner un avantage énorme. Examine les mots-clés pour lesquels ils sont optimisés, découvre leurs meilleures pages, et utilise ces infos pour booster ton propre classement. C’est un peu comme faire de l’espionnage industriel, mais tout à fait légal et incroyablement efficace.

 

Script de surveillance de positionnement

import requests
import json
import pandas as pd
from datetime import datetime
import os

def send_request():
	response = requests.get(
		url='https://app.scrapingbee.com/api/v1/store/google',
		params={
			'api_key': 'XXX',	# Remplacez par votre clé API réelle
			'search': 'restaurant Paris',
			'country_code': 'fr',
			'language': 'fr',
			'nb_results': '10',
            'search_type': 'maps', 
		}
	)
	
	if response.status_code == 200:
		data = json.loads(response.text)
		
		# Extraire les données pertinentes
		urls = [result['url'] for result in data['organic_results']]
		positions = [result['position'] for result in data['organic_results']]
		dates = [datetime.now().strftime("%Y-%m-%d %H:%M:%S") for _ in data['organic_results']]
		
		# Créer un DataFrame pour mieux manipuler les données
		df = pd.DataFrame({
			'URL': urls,
			'Position': positions,
			'Date Checked': dates
		})
		
		# Définir le nom du fichier Excel
		file_name = 'SEO_data_restaurants_Paris.xlsx'
		# Vérifier si le fichier existe, sinon créer un fichier vide avec une feuille
		if not os.path.exists(file_name):
			with pd.ExcelWriter(file_name, engine='openpyxl') as writer:
				pd.DataFrame().to_excel(writer)

		# Maintenant, le fichier existe sûrement, on peut ouvrir en mode 'a'
		with pd.ExcelWriter(file_name, engine='openpyxl', mode='a', if_sheet_exists='replace') as writer:
			df.to_excel(writer, index=False)
		# Écrire les données dans un fichier Excel, créer le fichier si ce n'est pas déjà fait
		with pd.ExcelWriter(file_name, engine='openpyxl', mode='a', if_sheet_exists='replace') as writer:
			df.to_excel(writer, index=False)
		
		print(f'Données sauvegardées dans {file_name}')
		
	else:
		print('Response HTTP Status Code:', response.status_code)
		print('Response HTTP Response Body:', response.content)

send_request()

 

Déroulement du script :

Importations : On commence par importer les outils dont on a besoin. requests pour taper des requêtes HTTP, json pour jongler avec les données en format JSON, pandas pour manipuler les données comme un pro, datetime pour dater chaque opération, et os pour interagir avec le système d’exploitation, notamment pour vérifier l’existence de fichiers.

Fonction send_request : C’est le cœur de l’opération. Cette fonction envoie une requête GET à l’API ScrapingBee avec des paramètres bien définis : clé API, recherche de « restaurant Paris », code pays et langue, et le nombre de résultats désirés.

Gestion de la réponse :

Réponse réussie (200 OK) : Si tout se passe bien, on décode le JSON reçu pour extraire des URLs, des positions dans les résultats de recherche, et la date de la requête.

DataFrame Pandas : On assemble ces données dans un DataFrame pour un traitement facile. C’est une sorte de table virtuelle avec des colonnes pour les URLs, les positions, et les dates de vérification.

Gestion du fichier Excel :

Vérification de l’existence du fichier : On vérifie si le fichier SEO_data_restaurants_Paris.xlsx existe déjà. S’il n’existe pas, on en crée un vide pour éviter les erreurs lors de l’ajout de nouvelles données.

Écriture des données : On écrit ou on ajoute les données dans le fichier Excel. Grâce à if_sheet_exists='replace', si la feuille existe déjà, elle sera remplacée pour ne pas avoir de doublons ou d’informations obsolètes.

Messages de sortie : Le script imprime où les données ont été sauvegardées ou, en cas d’erreur, le code de statut HTTP pour aider au débogage.

Et te voila avec ton fichier excel tout prêt !

script scraper google avec surveillance position

 

Gestion de la réputation en ligne

Surveiller ce qui se dit sur ta marque ou sur celles des concurrents te permet de réagir rapidement. Un commentaire négatif ? Une critique sur un nouveau produit ? Tu es toujours le premier informé et tu peux prendre les devants pour gérer la situation.

Chaque exemple montre comment transformer un océan de données web en informations précieuses qui te permettent de naviguer habilement dans le monde compétitif des affaires. Avec les bons outils, les données ne sont plus un mystère, mais une carte au trésor prête à être exploitée.