Scraping ist in der modernen Welt ein wesentlicher Bestandteil eines jeden Unternehmens. Damit müssen Sie die Zeit Ihrer Mitarbeiter nicht mit dem manuellen Sammeln der notwendigen Informationen verschwenden, seien es Daten über Konkurrenten oder die Dynamik von Preisänderungen auf dem Börsenparkett.
Oft werden Scraper verwendet, um Leads zu sammeln. Sie ermöglichen es Ihnen, aktuelle Datenbanken zu verwalten oder alte Datenbanken schnell zu aktualisieren.
Inhaltsübersicht
Möglichkeiten, Daten zu erhalten
Um ein so fortschrittliches Tool wie Scraping zu nutzen, müssen Sie entscheiden, was Sie bereit sind, dafür zu bezahlen: Zeit, Geld oder Programmierkenntnisse.
Hier werden wir genau die Möglichkeit der Verwendung der Web Scraping API betrachten. Und Sie können sie sogar kostenlos ausprobieren - zumindest die ersten 1000 Anfragen.
Wenn Ihnen die Programmierung zu komplex ist, gibt es eine Alternative. Zum Beispiel können Sie Zapier für die visuelle Anpassung und Integration verwenden.
Scraping von Google Maps mit Web Scraping API
Um die Web Scraping API zu nutzen, melden Sie sich bei Scrape-It.Cloud an. Klicken Sie dazu auf "Kostenlos testen" und geben Sie die Anmeldedaten ein. Jetzt können Sie eine einfache Anfrage erstellen, um einige Daten von Google Maps zu scrapen. Gehen Sie dazu auf die Registerkarte "Google Maps Builder" und geben Sie das Schlüsselwort für das Crawling in das Schlüsselwortfeld ein:
Führen Sie die Anfrage von der Website aus, indem Sie auf "Skript ausführen" klicken. Es werden die ersten 20 Zeilen der Ergebnisse von Google Maps zurückgegeben.
Algorithmus der Scraper-Erstellung
Wir werden das gesamte Skript in der Programmiersprache Python schreiben. Um es zu verwenden, müssen Sie einen Interpreter installieren.
Um sich das Endergebnis besser vorstellen zu können, lassen Sie uns nun den Algorithmus beschreiben, den wir als nächstes betrachten werden.
- Versuchen Sie ein Beispiel für einen einfachen Google Maps Scraper.
- Holen Sie eine Liste von Schlüsselwörtern aus einem Excel-Dokument.
- Holen Sie den Startwert und mehrere Positionen aus der Befehlszeile.
- Daten in einem neuen Dokument speichern.
- 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. 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 requests-Bibliothek 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)
Dies ist ein Beispiel für den einfachsten Scraper. Wir können also zum nächsten Schritt übergehen.
Noch nie war es so einfach, Daten von Google Maps zu sammeln
Wenn Sie kopieren und einfügen können, können Sie in weniger als 2 Minuten mehr als 1000 Unternehmen ausfindig machen. So einfach ist das!
- 1.000 Zeilen enthalten
- Keine Kreditkarte erforderlich
- 30-Tage-Testversion
Eine Liste von Schlüsselwörtern aus einem Dokument abrufen
Erstellen Sie eine Datei, in der Sie die Schlüsselwörter speichern. Nennen wir sie "keywords.csv". Jedes Mal, wenn das Programm eine neue Zeile aufruft und ein neues Schlüsselwort sieht, sollte es die Abfrage erneut ausführen.
Fügen Sie eine Zeile hinzu, mit der Sie die Datei keywords.csv zum Lesen öffnen und einen zeilenweisen Zyklus festlegen:
with open("keywords.csv", "r+") as f:
for keyword in f:
Platzieren Sie hier den Anfragekörper, in dem anstelle des angegebenen Schlüsselworts eine Variable steht:
temp = """{
"country": "US",
"domain": "com",
"keyword": """+"\""+keyword.strip()+"\""+""",
"ll": "@40.7455096,-74.0083012,14z"
}
"""
payload = json.loads(json.dumps(temp))
Um sicherzustellen, dass alles funktioniert, können Sie die Datei in der Befehlszeile ausführen.
Anzahl der Zeilen festlegen
Lassen Sie uns in der Befehlszeile nach der Startposition für das Scraping und der Anzahl der Seiten ab dieser Position fragen. Unter einer Seite verstehen wir 20 Zeilen, da die API 20 Zeilen zurückgibt, beginnend mit der angegebenen Position.
Fügen Sie dazu eine Anfrage zur Eingabe der Startposition hinzu und tragen Sie diese in die Variable start ein:
start = int(input("Start position: "))
Und fügen Sie auch eine Anfrage für die Anzahl der Seiten hinzu:
pages = int(input("Number of pages: "))
Ändern Sie also den Anfragetext und fügen Sie eine Schleife hinzu, um die angegebene Anzahl von Seiten ab der Startposition zu durchsuchen:
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, sich daran zu erinnern, dass wir im Anfragekörper nur String-Variablen verwenden können, aber für die Schleife benötigen wir numerische Variablen.
Ergebnisse in einem Excel-Dokument speichern
Damit die Daten bequem verarbeitet werden können, sollten wir sie in einer Excel-Datei speichern. Jedes Mal, wenn das Programm startet, sollte es die Daten in einer bestehenden Datei nicht an das Ende anfügen. In diesem Fall werden wir die alten Daten löschen. Wir fügen am Anfang des Skripts eine Dateiüberschreibung ein. Außerdem benennen wir die Spalten, in denen wir die Daten speichern wollen:
with open("result.csv", "w") as f:
f.write("position; title; phone; address; website; rating; reviews; type\n")
Wir werden die Datenspeicherung in den try..except-Block einfügen, damit das Skript seine Arbeit nicht komplett einstellt, 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")
Lassen Sie uns versuchen, das resultierende Skript auszuführen und die erzeugte Datei result.csv zu überprüfen:
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 Schlussfolgerungen
Die Web Scraping API ermöglicht es dem Entwickler, sich nicht um Proxys und Captcha-Lösungen zu kümmern und sich auf die Erstellung des Hauptprodukts zu konzentrieren. Und mit der Google Maps Scraping API können Sie bei der Erfassung von Leads oder Lieferanten Zeit sparen.
Mit Python ist es ganz einfach, einen vollwertigen Scraper zu erstellen. Ähnlich wie bei der in diesem Artikel besprochenen Option können Sie auch die Koordinaten oder das Land ändern, für das Sie das Scrapen durchführen wollen.