Kurs
MeetUp ist ein soziales Netzwerk, in dem Mitglieder virtuelle Communities bilden, die Events in ihrer Region organisieren. Die Idee hinter MeetUp ist nicht neu, aber UI und UX gehören in den letzten Jahren zu den innovativsten. Aufgaben wie das Planen von täglichen, wöchentlichen, monatlichen oder zweimonatlichen Community-Events wurden deutlich erleichtert.
Die MeetUp-API ermöglicht es, Daten direkt von der Website abzurufen. Wie bei den meisten APIs begrenzen viele Domains die Anzahl der Abrufe. Manche Betreiber pflegen ihre API-Dokumentation nicht besonders gut, andere machen sie extrem nutzerfreundlich. MeetUp liegt irgendwo dazwischen. Es gibt viele Möglichkeiten, ihre API zu nutzen.
Ich habe die MeetUp-API genutzt, um Daten aus drei Gruppen im Raum Dallas–Fort Worth in Nordtexas zu sammeln. Die Sprache meiner Wahl für den Zugriff auf die API war Python. Je nach Vorliebe können C++ oder Python für die Arbeit mit einer Website-API ausreichen.
Wenn du Python noch nicht kennst, schau dir unbedingt unseren Kurs Intro to Python for Data Science an.
In diesem Tutorial lernst du, wie du die MeetUp-API mit Python aufrufst. Ich zeige dir, wie du die ID einer Gruppe ermittelst und wie du diese ID zusammen mit deinem API-Schlüssel nutzt, um eine Anfrage für die Gruppendaten im JSON-Format zu stellen. Abschließend zeige ich dir, wie du die Daten in eine JSON-Datei schreibst, die auf deinem PC/Mac gespeichert wird.
Wie bekommst du einen API-Schlüssel?
Auf der MeetUp-Website brauchst du ein aktives Konto, um einen API-Schlüssel zu erhalten. Alle Nutzerinnen und Nutzer bekommen einen Schlüssel. Wer noch kein Konto hat, registriert sich zuerst bei MeetUp. Danach kannst du deinen API-Schlüssel hier abrufen.
Du kannst deinen Schlüssel jederzeit zurücksetzen. Achte darauf, deinen API-Schlüssel vertraulich zu behandeln.
Erste Schritte
Importiere zunächst alle Python-Bibliotheken, die du in deinem Skript verwenden wirst.
import meetup.api
import json
import requests
import time
import codecs
import sys
import io
API installieren
Stelle sicher, dass meetup.api auf deinem Rechner installiert ist, bevor du fortfährst. Eine einfache Installation per pip reicht aus, z. B. in einer UNIX-basierten Shell:
pip install meetup.api
In Jupyter Notebooks kannst du die Bibliothek so installieren:
!pip install meetup.api
Damit installierst du die MeetUp-API-Bibliothek für Python.
Da Python eine interpretierte Sprache ist, spielt das Definieren von Objekten in der Syntax eine wichtige Rolle. Wenn du zum Beispiel client definierst, kannst du danach Anfragen schreiben und einfach client verwenden, um den API-Schlüssel aufzurufen, ohne ihn ständig neu eintippen zu müssen. Das ist in Python eine gute Praxis. Definiere deinen API-Schlüssel zunächst als client wie folgt:
client = meetup.api.Client('API Key Here')
Mit der Definition von group_info kannst du die URL einer Gruppe anhand ihres Namens auf der MeetUp-Website abrufen.
group_info = client.GetGroup({'urlname': 'Group Name Here No Spaces'})
Die ID einer Gruppe ermitteln
Damit kannst du nun group_info verwenden und verschiedene Abfragen durchführen. Mit group_info.link erhältst du die vollständige URL der Gruppe.
group_info.link
Der Aufruf von group_info.id gibt dir die Gruppen-ID zurück.
group_info.id
Du benötigst die Gruppen-ID, um mit dem nächsten Schritt fortzufahren.
Anfragen stellen
Jetzt kennst du die Gruppen-ID. Du kannst die Anfrage stellen, indem du df definierst und deine Gruppen-ID sowie deinen API-Schlüssel in die URL einfügst. Das geschieht mit request.get.
df = requests.get('https://api.meetup.com/2/members?group_id=GROUP_ID&key=API_KEY')
Mit df kannst du nun den status_code, Header, Encoding abfragen und dir die Daten direkt als JSON ansehen.
Zuerst gibst du df.status_code ein, der Statuscode sollte 200 lauten.
Für die Header gibst du df.headers['content-type'] ein. Erwarteter Header: application/json;charset=utf-8
Zum Prüfen des Encodings gibst du df.encoding ein. Erwartetes Encoding: utf-8
Die Daten liegen nun in df vor. Um sie inline anzusehen, nutze df.json().
Die Daten in eine JSON-Datei schreiben
Du hast die Daten jetzt vorliegen. Als Nächstes schreibst du sie in eine JSON-Datei, die auf deinem PC/Mac gespeichert wird. Das ist wichtig: Die Daten sind zwar vorhanden, liegen aber noch nicht lokal vor. Mit folgendem Code schreibst du sie in eine Datei.
try:
to_unicode = unicode
except NameError:
to_unicode = str
with io.open('df.json', 'w', encoding='utf8') as outfile:
str_ = json.dumps(data,
indent=4, sort_keys=True,
separators=(',', ': '), ensure_ascii=False)
outfile.write(to_unicode(str_))
Bevor du das ausführst, importiere die io-Bibliothek mit import io.
Sobald du den Code ausführst, werden die per MeetUp-API abgerufenen Daten in eine JSON-Datei geschrieben und auf deiner Festplatte gespeichert. Standardmäßig liegt sie im gleichen Verzeichnis wie die verwendete .ipynb- oder .py-Datei.
Wenn du mit Jupyter Notebook arbeitest, findest du die Datei sofort, wenn du das Verzeichnis nach letzter Änderung sortierst. Du kannst sie natürlich in einen für dich passenden Speicherort verschieben.
Wofür lässt sich die JSON-Datei nutzen? Sie enthält die Daten, die du über die MeetUp-API gezogen hast. Du kannst sie vielseitig verwenden: Fehlende Werte bereinigen, ein Dataset aufbauen und für Datenanalyse einsetzen, die Daten visualisieren und Dashboards bzw. Diagramme erstellen, um Zusammenhänge zu zeigen. Mit einem guten Datensatz kannst du auch Machine-Learning-Algorithmen anwenden und ein Vorhersagemodell entwickeln. Das sind nur einige Einsatzmöglichkeiten für die JSON-Datei aus der MeetUp-API. Deine Vorstellungskraft setzt die Grenzen. Kurz gesagt: Daten über die API einer Website zu beziehen, ist eine von vielen Möglichkeiten, an Datensätze zu kommen — mit dem Ziel, sie sinnvoll für Analyse, Modellierung und Visualisierung zu nutzen.
Fazit
Zusammengefasst: Um Daten über die MeetUp-API abzurufen, gehst du in mehreren Schritten vor. Zuerst besorgst du dir deinen API-Schlüssel, dann ermittelst du die ID der gewünschten Gruppe. Mit diesen Informationen kannst du Daten aus jeder beliebigen Gruppe ziehen. Nach dem Abruf schreibst du die Daten in eine JSON-Datei. Der Umgang mit APIs ist ein nütziges und kosteneffizientes Werkzeug zur Datensammlung — ideal für zukünftige Projekte. Eine Website-API ist oft deutlich weniger invasiv als etwa Webscraping. Mit der JSON-Datei ist die Arbeit noch nicht getan: Du musst die Daten bereinigen. Als Einsteiger solltest du verstehen, was Datenbereinigung bedeutet: Du bringst den Datensatz in Form, sodass keine Spalten oder Zeilen fehlen und prüfst fehlende numerische sowie kategoriale Werte (Namen, Orte usw.). Jetzt hast du die Grundlagen, um Daten aus der MeetUp-API zu ziehen.
Bevor du mit den per API angeforderten Daten arbeitest, musst du sie bereinigen. Wenn du lernen möchtest, wie das geht, besuche unseren Kurs Cleaning Data in Python.
Beachte bei der Nutzung einer Website-API stets die jeweiligen Nutzungsbeschränkungen. Die Regeln legen die Domain-Inhaber fest. Handle verantwortungsvoll und bewusst.
Sieh dir auch unser Tutorial Beginner's Guide to Google's Vision API in Python an.