Zurück zum Blog
Anleitungen & How-tos2026-03-15·11 Min. Lesezeit

Leitfaden Google Maps Python Selenium: Daten extrahieren

Von Ibrahim DemolCEO IBLeadAktualisiert am 15. März 2026

Sie möchten Daten von Google Maps mit Python und Selenium extrahieren? Dieser Leitfaden deckt alles ab: die Vorbereitung der Umgebung, das Schreiben des Skripts, die Fallstricke, die es zu vermeiden gilt. Das Keyword leitfaden google maps python selenium extrahieren taucht häufig in den Suchanfragen von Entwicklern auf, die die lokale Datensammlung automatisieren möchten — und das aus gutem Grund. Google Maps enthält Millionen von Geschäftseinträgen mit Adressen, Telefonnummern, Bewertungen und Öffnungszeiten. All diese Informationen sind nützlich für die Akquise, Marktanalysen oder Wettbewerbsanalysen.


Warum Python und Selenium kombinieren, um Google Maps zu scrapen?

Python ist die Referenzsprache für Web-Scraping. Seine Syntax ist klar, die Community ist riesig, und seine Bibliotheken decken alle Bedürfnisse ab: Datenmanipulation mit Pandas, HTTP-Anfragen mit Requests, HTML-Parsing mit BeautifulSoup.

Aber Google Maps stellt ein spezifisches Problem dar. Ein großer Teil der Daten befindet sich nicht im statischen HTML. Die Informationen werden nach Benutzerinteraktionen angezeigt: Klick auf einen Eintrag, Scrollen in der Liste, Öffnen eines Seitenpanels. Ein einfaches requests.get() reicht nicht aus.

Hier kommt Selenium ins Spiel. Selenium steuert einen echten Browser (Chrome, Firefox, Edge) und simuliert das Verhalten eines echten Benutzers. Es kann klicken, scrollen, warten, bis ein Element erscheint, und den dynamisch gerenderten Inhalt extrahieren. In Kombination mit Python wird es zu einem leistungsstarken Werkzeug zur Automatisierung der Datenerfassung auf komplexen Weboberflächen wie Google Maps.


Die Entwicklungsumgebung vorbereiten

Bevor Sie auch nur eine Zeile Code schreiben, müssen Sie die richtigen Werkzeuge installieren.

1. Python installieren

Laden Sie die neueste stabile Version von Python von python.org herunter. Achten Sie bei der Installation unter Windows darauf, die Option "Add Python to PATH" auszuwählen — ohne dies funktionieren die pip-Befehle im Terminal nicht.

Überprüfen Sie die Installation mit:

python --version

2. Selenium installieren

Öffnen Sie Ihr Terminal oder die Eingabeaufforderung und geben Sie ein:

pip install selenium

Selenium wird in wenigen Sekunden installiert. Sie benötigen auch Pandas, um die Daten zu organisieren:

pip install pandas

3. Den WebDriver herunterladen

Selenium benötigt einen WebDriver, um Ihren Browser zu steuern. Der WebDriver ist eine ausführbare Datei, die die Verbindung zwischen Ihrem Python-Skript und dem Browser herstellt.

Die Version des WebDrivers muss genau mit der Version Ihres Browsers übereinstimmen. Überprüfen Sie Ihre Chrome-Version unter chrome://settings/help und laden Sie den entsprechenden ChromeDriver herunter.

Seit Selenium 4.6+ können Sie auch selenium-manager verwenden, der den Download automatisch verwaltet. Praktisch, um Versionsfehler zu vermeiden.


Die Struktur von Google Maps verstehen, bevor Sie scrapen

Bevor Sie das Skript schreiben, nehmen Sie sich 5 Minuten Zeit, um Google Maps in den Entwicklertools Ihres Browsers (F12) zu inspizieren.

Das werden Sie beobachten:

  • Die Ergebnisliste befindet sich in einem scrollbaren Container mit einer spezifischen CSS-Klasse
  • Jeder Geschäftseintrag ist ein klickbares Element
  • Die Details (Telefon, Website, Öffnungszeiten) erscheinen erst, nachdem Sie auf einen Eintrag geklickt haben
  • Google Maps lädt die Ergebnisse im Lazy Loading — die Elemente am Ende der Liste existieren nicht im DOM, solange Sie nicht scrollen

Diese dynamischen Verhaltensweisen erklären, warum Selenium notwendig ist. Sie erklären auch, warum das Scraping von Google Maps technisch komplexer ist als bei einer statischen Website.

Achtung: Google Maps begrenzt die Ergebnisse auf 120 Einträge pro Suche. Wenn Ihr geografisches Gebiet mehr als 120 Unternehmen in einer Kategorie enthält, müssen Sie Ihre Suche aufteilen (nach Stadtteil, Postleitzahl usw.), um das gesamte Gebiet abzudecken.


Das Python Selenium-Skript für Google Maps schreiben

Hier ist ein funktionierendes Beispiel, das nach Restaurants in einer Stadt sucht und deren Adressen extrahiert.

Struktur des Skripts

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
import pandas as pd

# Den Chrome-Browser starten
driver = webdriver.Chrome()
driver.get("https://www.google.com/maps")

# Warten, bis die Seite geladen ist
time.sleep(3)

# Die Suchanfrage eingeben
search_bar = driver.find_element(By.NAME, "q")
search_bar.send_keys("Restaurants Paris 11")
search_bar.send_keys(Keys.ENTER)

# Auf die Ergebnisse warten
time.sleep(5)

# In der Liste scrollen, um mehr Ergebnisse zu laden
results_panel = driver.find_element(By.CSS_SELECTOR, "div[role='feed']")
for _ in range(5):
    driver.execute_script("arguments[0].scrollTop = arguments[0].scrollHeight", results_panel)
    time.sleep(2)

# Die Einträge extrahieren
results = driver.find_elements(By.CSS_SELECTOR, "div.Nv2PK")
addresses = []

for result in results:
    try:
        name = result.find_element(By.CSS_SELECTOR, ".qBF1Pd").text
        address_elements = result.find_elements(By.CSS_SELECTOR, ".W4Efsd span")
        address = " ".join([el.text for el in address_elements if el.text])
        addresses.append({"Name": name, "Adresse": address})
    except Exception:
        pass

# In CSV exportieren
df = pd.DataFrame(addresses)
df.to_csv("restaurants_paris.csv", index=False, encoding="utf-8-sig")
print(f"{len(addresses)} Restaurants extrahiert.")

# Den Browser schließen
driver.quit()

Was dieses Skript Schritt für Schritt macht

Schritt 1 — Chrome starten: webdriver.Chrome() öffnet ein Chrome-Fenster, das von Selenium gesteuert wird. Sie werden sehen, wie es auf Ihrem Bildschirm geöffnet wird.

Schritt 2 — Zu Google Maps navigieren: driver.get() lädt die Seite. Der time.sleep(3) gibt dem JavaScript Zeit, um ausgeführt zu werden.

Schritt 3 — Die Suche starten: Das Skript findet die Suchleiste über ihr Attribut name="q", gibt die Anfrage ein und drückt die Eingabetaste.

Schritt 4 — Scrollen: Die Schleife scrollt das Ergebnisfeld 5 Mal, um das Lazy Loading auszulösen und mehr Einträge zu laden.

Schritt 5 — Extrahieren: Für jeden gefundenen Eintrag ruft das Skript den Namen und die Adresse ab. Der try/except-Block verhindert, dass das Skript abstürzt, wenn ein Element fehlt.

Schritt 6 — Exportieren: Pandas organisiert die Daten in einem DataFrame und speichert sie als CSV. Die Kodierung utf-8-sig stellt sicher, dass Sonderzeichen (Akzentzeichen usw.) in Excel korrekt angezeigt werden.


Zusätzliche Daten extrahieren: Telefon, Website, Bewertung

Um die Telefonnummer, die Website und die Google-Bewertung abzurufen, müssen Sie auf jeden Eintrag klicken und warten, bis das Detailfenster geöffnet ist.

for result in results:
    try:
        result.click()
        time.sleep(3)  # Auf das Detailfenster warten
        
        # Google-Bewertung
        try:
            rating = driver.find_element(By.CSS_SELECTOR, "span.MW4etd").text
        except:
            rating = ""
        
        # Telefon
        try:
            phone = driver.find_element(
                By.CSS_SELECTOR, 
                "button[data-item-id^='phone'] span.Io6YTe"
            ).text
        except:
            phone = ""
        
        # Website
        try:
            website = driver.find_element(
                By.CSS_SELECTOR, 
                "a[data-item-id='authority']"
            ).get_attribute("href")
        except:
            website = ""
            
        addresses.append({
            "Name": name,
            "Telefon": phone,
            "Website": website,
            "Bewertung": rating
        })
        
    except Exception:
        pass

Dieser Code ist langsamer. Jeder Klick + Warten dauert 3 bis 5 Sekunden. Für 100 Einträge rechnen Sie mit mindestens 5 bis 8 Minuten Ausführungszeit.


Die CSS-Selektoren von Google Maps brechen regelmäßig

Das ist das größte Problem beim Scraping von Google Maps mit Selenium. Google ändert seine CSS-Klassen ohne Vorwarnung. Ein Skript, das heute funktioniert, kann morgen null Ergebnisse zurückgeben.

Einige gute Praktiken zur Minimierung von Problemen:

Verwenden Sie stabile Attribute: Die Attribute data-item-id, aria-label und role ändern sich seltener als die automatisch generierten CSS-Klassen.

Fügen Sie Protokolle hinzu: Lassen Sie die Anzahl der gefundenen Elemente in jedem Schritt anzeigen. Wenn ein Selektor 0 Ergebnisse zurückgibt, wissen Sie sofort Bescheid.

Versionieren Sie Ihr Skript: Bewahren Sie die alten Versionen auf. Wenn Google Ihre Selektoren bricht, können Sie vergleichen und herausfinden, was sich geändert hat.

Testen Sie mit driver.page_source: Speichern Sie das HTML der Seite, um es offline zu inspizieren, wenn etwas nicht funktioniert.


Umgang mit Einschränkungen und CAPTCHA

Google erkennt automatisierte Verhaltensweisen. Hier sind die Signale, die Blockierungen auslösen:

  • Zu viele Anfragen von derselben IP in kurzer Zeit
  • Kein Zeitabstand zwischen den Aktionen (nicht-menschliches Verhalten)
  • Fehlender oder generischer User-Agent
  • Keine Sitzungscookies

Strategien zur Reduzierung von Blockierungen

Fügen Sie zufällige Verzögerungen hinzu: Ersetzen Sie time.sleep(3) durch time.sleep(random.uniform(2, 5)). Feste Verzögerungen werden leichter erkannt.

Verwenden Sie ein echtes Chrome-Profil: Starten Sie Chrome mit Ihrem vorhandenen Benutzerprofil, um von Ihren Cookies und Ihrem Verlauf zu profitieren.

options = webdriver.ChromeOptions()
options.add_argument("--user-data-dir=/path/to/your/chrome/profile")
driver = webdriver.Chrome(options=options)

Verwenden Sie einen Proxy oder VPN: Wenn Ihre IP blockiert ist, ermöglicht Ihnen ein rotierender Proxy oder ein VPN, die IP-Adresse zu ändern. Dienste wie Bright Data oder Oxylabs bieten Wohnproxies an, die sich gut für Scraping eignen.

Begrenzen Sie das Volumen pro Sitzung: Scrapen Sie nicht 500 Einträge am Stück. Teilen Sie in Sitzungen von 50-100 Einträgen mit Pausen dazwischen auf.


Die Grenze von 120 Ergebnissen bei Google Maps

Google Maps gibt niemals mehr als 120 Ergebnisse pro Suche zurück, unabhängig von der geografischen Region. Das ist eine strukturelle Einschränkung, kein Fehler.

Um diese Grenze zu umgehen und eine ganze Stadt abzudecken:

  1. Teilen Sie nach Stadtteil oder Viertel auf: "Restaurants Paris 1er", "Restaurants Paris 2ème", usw.
  2. Teilen Sie nach Postleitzahl auf: Iterieren Sie über eine Liste von Postleitzahlen.
  3. Verwenden Sie ein geografisches Raster: Teilen Sie das Gebiet in Zellen auf und führen Sie eine Suche pro Zelle durch.

Dieser Ansatz vervielfacht die Anzahl der Anfragen und damit die Ausführungszeit. Um eine große Stadt mit mehreren Kategorien abzudecken, rechnen Sie mit mehreren Stunden Scraping.


Weiterführende Informationen mit BeautifulSoup und Requests

Selenium ist nicht immer notwendig. Für einige Daten, die im statischen HTML zugänglich sind, genügen BeautifulSoup und Requests und sind viel schneller.

pip install beautifulsoup4 requests

Aber speziell für Google Maps macht das dynamische Rendering Selenium für die meisten Daten unverzichtbar. BeautifulSoup ist nützlicher, um die Websites der Unternehmen zu scrapen, nachdem Sie deren URLs von Google Maps abgerufen haben — zum Beispiel um die Kontakt-E-Mails zu extrahieren.


Wann manuelles Scraping kontraproduktiv wird

Das Schreiben und Warten eines Google Maps Scrapers kostet Zeit. Viel Zeit.

  • Die anfängliche Einrichtung: 2 bis 4 Stunden für einen erfahrenen Entwickler
  • Die Wartung, wenn Google seine Selektoren ändert: 1 bis 3 Stunden pro Vorfall
  • Die Verwaltung von Proxies und CAPTCHAs: variierende monatliche Kosten
  • Die Ausführungszeit für große Volumina: mehrere Stunden pro Export

Für einen Entwickler, der das Web-Scraping lernen möchte, ist es eine hervorragende Übung. Für ein Vertriebsteam, das schnell 10.000 qualifizierte Kontakte benötigt, ist es Zeitverschwendung.

IBLead ist eine direkte Alternative. Die Datenbank enthält über 50 Millionen Google Maps-Unternehmen in 37 Ländern, die bereits indexiert und wöchentlich aktualisiert werden. Sie filtern nach Stadt, Kategorie, Google-Bewertung, Anzahl der Bewertungen, verwendeten Technologien auf der Website — und exportieren in 2 Minuten als CSV. Kein Code, kein WebDriver, kein CAPTCHA. Für 44€ für 10.000 Leads, also 0,004€ pro Kontakt.

Wenn Sie lokale Daten für die Akquise benötigen und kein technisches Scraping-Projekt haben, spart Ihnen IBLead mehrere Stunden.


FAQ

Die Nutzungsbedingungen von Google verbieten das automatisierte Scraping seiner Dienste. In der Praxis kann Google Ihre IP oder Ihr Konto blockieren. Rechtlich variiert die Situation je nach Land und Nutzung der Daten. Für kommerzielle Zwecke in großem Umfang sollten Sie einen auf digitales Recht spezialisierten Juristen konsultieren.

Warum findet mein Selenium-Skript die Elemente nicht mehr?

Google Maps aktualisiert regelmäßig seine CSS-Klassen. Öffnen Sie die Entwicklertools (F12), inspizieren Sie die Elemente, die Sie suchen, und aktualisieren Sie Ihre CSS-Selektoren. Das ist die häufigste Ursache dafür, dass Skripte nicht mehr funktionieren.

Wie extrahiere ich E-Mails von Google Maps?

Google Maps zeigt die E-Mails nicht direkt an. Um sie abzurufen, müssen Sie zuerst die URLs der Websites der Unternehmen extrahieren und dann diese Websites scrapen, um die E-Mail-Adressen auf den Seiten „Kontakt“ oder im Footer zu finden. IBLead erledigt diese Vorarbeit: Die E-Mails werden von den Websites angereichert und in jedem Export enthalten.

Was ist die Grenze der Ergebnisse pro Google Maps-Suche?

Google Maps begrenzt die Ergebnisse auf 120 Einträge pro Suche. Um ein größeres Gebiet abzudecken, müssen Sie die Anfragen multiplizieren, indem Sie nach Stadtteil, Postleitzahl aufteilen oder ein geografisches Raster verwenden.

Selenium oder Playwright zum Scrapen von Google Maps?

Beide funktionieren. Playwright (von Microsoft) ist neuer und oft schneller. Es verwaltet asynchrone Wartezeiten besser und wird weniger als Bot erkannt. Wenn Sie ein neues Scraping-Projekt starten, lohnt es sich, Playwright zu erkunden. Selenium ist jedoch besser dokumentiert und hat eine größere Community.


Fazit

Die Kombination aus Python und Selenium ermöglicht es, Daten automatisiert von Google Maps zu extrahieren. Es ist eine nützliche Fähigkeit für jeden Entwickler, der an Projekten zur Datensammlung oder Webautomatisierung arbeitet. Die Einrichtung erfordert Sorgfalt: Zeitmanagement, Wartung der Selektoren, Umgehung von Einschränkungen.

Wenn Ihr Ziel die kommerzielle Akquise und nicht das technische Lernen ist, gibt Ihnen IBLead Zugang zu denselben Daten, ohne eine Zeile Code zu schreiben. Probieren Sie es mit 200 credits aus.

kostenlose Credits — 200 credits inklusive

Bereit loszulegen?

Zugriff auf jedes Google Maps Unternehmen, angereichert mit E-Mails und rechtlichen Daten.

IBLead kostenlos testen