Heim BlogWeb-Scraping So erhalten Sie mithilfe der Web Scraping API in drei einfachen Schritten Daten von Google Maps

So erhalten Sie mithilfe der Web Scraping API in drei einfachen Schritten Daten von Google Maps

von Kadek

Schaben ist in der modernen Welt ein wesentlicher Bestandteil jedes Unternehmens. Dadurch verschwenden Sie nicht die Zeit Ihrer Mitarbeiter mit der manuellen Erfassung der erforderlichen Informationen, unabhängig davon, ob es sich um Daten zu Wettbewerbern oder um die Dynamik von Preisänderungen auf dem Handelsplatz handelt.

Zum Sammeln von Minen werden oft Schaber verwendet. Sie ermöglichen Ihnen, aktuelle Datenbanken zu verwalten oder alte schnell zu aktualisieren.

Möglichkeiten, Daten zu erhalten

Um ein so fortschrittliches Tool wie Scraping zu verwenden, müssen Sie entscheiden, wofür Sie bereit sind zu zahlen: Zeit, Geld oder Programmierkenntnisse.

Hier betrachten wir genau die Möglichkeit der Verwendung der Web Scraping API. Und Sie können es sogar kostenlos testen – zumindest die ersten 1000 Anfragen.


Möglichkeiten, Daten zu erhalten
Möglichkeiten, Daten zu erhalten

Wenn Ihnen die Programmierung zu komplex ist, gibt es eine Alternative. Sie können Zapier beispielsweise zur visuellen Anpassung und Integration verwenden.

Scraping von Google Maps mithilfe der Web-Scraping-API

Um die Web-Scraping-API zu verwenden, melden Sie sich bei Scrape-It.Cloud an. Klicken Sie dazu auf „Kostenlos testen“ und geben Sie die Anmeldeinformationen ein. Jetzt können Sie eine einfache Anfrage erstellen, um einige Daten aus Google Maps zu extrahieren. Gehen Sie dazu auf den Reiter „Google Maps Builder“ und geben Sie im Keyword-Feld das Keyword zum Crawlen ein:


Google Maps Scraper Builder
Google Maps Scraper Builder

Führen Sie die Anfrage von der Site aus aus, indem Sie auf „Skript ausführen“ klicken. Es werden die ersten 20 Ergebniszeilen von Google Maps zurückgegeben.

Algorithmus zur Scraper-Erstellung

Wir werden das gesamte Skript in der Programmiersprache Python schreiben. Um es verwenden zu können, müssen Sie einen Interpreter installieren.

Um uns das Endergebnis genauer vorstellen zu können, beschreiben wir nun den Algorithmus dessen, was wir als nächstes betrachten werden.

  1. Probieren Sie ein Beispiel für einen einfachen Google Maps Scraper aus.
  2. Rufen Sie eine Liste mit Schlüsselwörtern aus einem Excel-Dokument ab.
  3. Rufen Sie den Startwert und mehrere Positionen über die Befehlszeile ab.
  4. Daten in einem neuen Dokument speichern.
  5. Das Erstellen einer Python-Datei mit einem einfachen Google Maps Scraper ist der einfachste Teil. Gehen Sie dazu zu Google Maps Builder und wählen Sie den Codetyp Python aus. Kopieren Sie dann den resultierenden Code in eine Datei mit der Erweiterung *.py.

Allerdings wird dann die HTTP.client-Bibliothek verwendet. Der Einfachheit halber sollten wir jedoch die Bibliothek „requests“ verwenden:

import requests
import json

url = "https://api.scrape-it.cloud/scrape/google/locals"

payload = json.dumps({
  "country": "US",
  "domain": "com",
  "keyword": "Pizza",
  "ll": "@40.7455096,-74.0083012,14z"
})
headers = {
  'x-api-key': 'YOUR-API-KEY',
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

Es ist ein Beispiel für den einfachsten Schaber. Damit wir zum nächsten Schritt übergehen können.

Es war noch nie so einfach, Daten aus Google Maps zu sammeln

Wenn Sie kopieren/einfügen können, können Sie mehr als 1.000 Unternehmen in weniger als 2 Minuten durchsuchen. So einfach ist das!

  • 1.000 Zeilen enthalten
  • Keine Kreditkarte benötigt
  • 30-Tage-Testversion

Rufen Sie eine Liste von Schlüsselwörtern aus einem Dokument ab

Erstellen Sie eine Datei, in der die Schlüsselwörter gespeichert werden. Nennen wir es „keywords.csv“. Deshalb sollte das Programm jedes Mal, wenn es in eine neue Zeile geht und ein neues Schlüsselwort sieht, die Abfrage erneut ausführen.

Fügen Sie eine Zeile hinzu, die die Datei keywords.csv zum Lesen öffnet, und geben Sie einen zeilenweisen Zyklus an:

with open("keywords.csv", "r+") as f:
  for keyword in f:

Platzieren Sie hier den Anfragetext, wobei anstelle des angegebenen Schlüsselworts eine Variable vorhanden ist:

 temp = """{
      "country": "US",
      "domain": "com",
      "keyword": """+"\""+keyword.strip()+"\""+""",
      "ll": "@40.7455096,-74.0083012,14z"
    }
    """
    payload = json.loads(json.dumps(temp))

Um sicherzustellen, dass alles in Ordnung ist und funktioniert, können Sie die Datei in der Befehlszeile ausführen.

Zeilenanzahl festlegen

Fragen wir in der Befehlszeile nach der Startposition des Scrapings und der Anzahl der Seiten ab dieser Position. Wir verstehen 20 Zeilen pro Seite, da die API 20 Zeilen zurückgibt, beginnend mit der angegebenen.

Fügen Sie dazu eine Aufforderung zur Eingabe der Startposition hinzu und tragen Sie diese in die Variable start ein:

start = int(input("Start position: "))

Fügen Sie außerdem eine Anfrage für die Anzahl der Seiten hinzu:

pages = int(input("Number of pages: "))

Und vor diesem Hintergrund ändern wir den Anfragetext und fügen eine Schleife zum Scrapen der angegebenen Anzahl von Seiten beginnend mit dem Positionsanfang hinzu:

    for i in range(start, 20*pages, 20):
      temp = """{
        "country": "US",
        "domain": "com",
        "keyword": """+"\""+keyword.strip()+"\""+""",
        "ll": "@40.7455096,-74.0083012,14z",
        "start": """+str(i)+"""
      }
      """

Es ist wichtig zu bedenken, dass wir im Anfragetext nur String-Variablen verwenden können, für die Schleife benötigen wir jedoch numerische Variablen.

Speichern Sie die Ergebnisse in einem Excel-Dokument

Damit die Daten bequem verarbeitet werden können, speichern wir sie in einer Excel-Datei. Bei jedem Programmstart sollten die Daten einer vorhandenen Datei nicht am Ende hinzugefügt werden. In diesem Fall werden wir die alten Daten löschen. Wir fügen am Anfang des Skripts eine Dateiüberschreibung hinzu. Wir benennen auch die Spalten, in denen wir die Daten speichern:

with open("result.csv", "w") as f:
  f.write("position; title; phone; address; website; rating; reviews; type\n")

Wir werden die Datenspeicherung im Block try..exclusive platzieren, damit das Skript seine Arbeit nicht vollständig stoppt, wenn die Anfrage eine leere Antwort zurückgibt:

      try:
        for item in data("scrapingResult")("locals"):
          with open("result.csv", "a") as f:
            f.write(str(item("position"))+"; "+str(item("title"))+"; "+str(item("phone"))+"; "+str(item("address"))+"; "+str(item("website"))+"; "+str(item("rating"))+"; "+str(item("reviews"))+"; "+str(item("type"))+"\n")
      except Exception as e:
        print("There are no locals")

Versuchen wir, das resultierende Skript auszuführen und die generierte Datei result.csv zu überprüfen:


Ergebnis des Scrapings von Google Maps
Ergebnis des Scrapings von Google Maps

Vollständiger Scraper-Code

import requests
import json

url = "https://api.scrape-it.cloud/scrape/google/locals"

headers = {
  'x-api-key': 'YOUR-API-KEY',
  'Content-Type': 'application/json'
}

with open("result.csv", "w") as f:
  f.write("position; title; phone; address; website; rating; reviews; type\n")

start = int(input("Start position: "))
pages = int(input("Number of pages: "))
with open("keywords.csv", "r+") as f:
  for keyword in f:
    for i in range(start, 20*pages, 20):
      temp = """{
        "country": "US",
        "domain": "com",
        "keyword": """+"\""+keyword.strip()+"\""+""",
        "ll": "@40.7455096,-74.0083012,14z",
        "start": """+str(i)+"""
      }
      """
      payload = json.loads(json.dumps(temp))
      response = requests.request("POST", url, headers=headers, data=payload)
      data = json.loads(response.text)
      try:
        for item in data("scrapingResult")("locals"):
          with open("result.csv", "a") as f:
            f.write(str(item("position"))+"; "+str(item("title"))+"; "+str(item("phone"))+"; "+str(item("address"))+"; "+str(item("website"))+"; "+str(item("rating"))+"; "+str(item("reviews"))+"; "+str(item("type"))+"\n")
      except Exception as e:
        print("There are no locals")

Fazit und Erkenntnisse

Die Web-Scraping-API ermöglicht es dem Entwickler, sich nicht um Proxys und das Lösen von Captchas zu kümmern und sich auf die Erstellung des Hauptprodukts zu konzentrieren. Und durch die Verwendung der Google Maps Scraping API können Sie beim Sammeln von Leads oder Lieferanten Zeit sparen.

Mit Python ist die Erstellung eines vollwertigen Scrapers recht einfach. Ähnlich wie bei der im Artikel beschriebenen Option können Sie auch die Koordinaten oder das Land ändern, für das Sie das Scraping durchführen möchten.

Related Posts

Hinterlasse einen Kommentar