jsonscraper

Tägliches Monitoring von IG-Creators mit Python einrichten

Eine Pipeline für Marketingfachleute und Analysten: öffentliche Profildaten abrufen, Snapshots speichern und Änderungen erkennen – ohne Accounts manuell zu prüfen.

Redaktionsrichtlinie Fehler melden

Marketingteams müssen Dutzende Accounts manuell prüfen, um herauszufinden, welche passenden Creator aktiv sind, wie sich ihre Zielgruppe verändert und wann ein Profil zuletzt aktualisiert wurde. Eine einmal erstellte Tabelle ist schnell veraltet: Followerzahlen und Profilbeschreibungen ändern sich, Veröffentlichungsdaten und Kennzahlen einzelner Beiträge müssen erneut zusammengetragen werden.

Artikel: Tägliches Monitoring von IG-Creators mit Python einrichten
Zusammenfassung: Wir zeigen, wie sich eine Liste öffentlicher IG-Profile mit der IG Scraper API täglich überwachen lässt: Profile abfragen, Beobachtungen dokumentieren und einen Änderungsbericht erstellen.
Bildrolle: Titelbild – die zentrale Idee
Abschnitt: 
Bildmotiv: Ein Dashboard-Konzept für eine Datenpipeline: Eine übersichtlich angeordnete Rasteransicht öffentlicher Social-Media-Profilkarten speist mit Zeitstempeln versehene JSON-Datensätze in eine einfache Analyseoberfläche.
© jsonscraper · KI-generierte Illustration

Eine praktische Lösung ist ein kleines Beobachtungsprotokoll: Einmal täglich werden öffentliche Profile aus einer zuvor erstellten Liste abgefragt, die Antwort samt Erfassungszeit gespeichert und die neuen Werte mit früheren Snapshots verglichen. So lassen sich Accounts für eine spätere manuelle Prüfung auswählen, Aktivitäten bewerten und regelmäßige Berichte erstellen. Die Methode ersetzt nicht die Analyse durch den Account-Inhaber: Öffentliche Profilangaben bieten beispielsweise keinen Zugriff auf interne Reichweitenkennzahlen.

Legen Sie zuerst fest, was Sie erfassen möchten

Für die Suche nach potenziellen Partnern genügt meist eine kurze Liste von Feldern: Benutzername, Profil-ID, Verifizierungsstatus, Followerzahl, Anzahl der Beiträge, Biografie und Erfassungszeit. Anhand dieser Werte lassen sich Profiländerungen erkennen und Accounts nach der ausgewählten Nische vergleichen. Die tatsächlich verfügbaren Felder hängen von der API-Antwort ab. Sehen Sie sich vor der Verarbeitung das aktuelle JSON in der Dokumentation an und verlassen Sie sich nicht auf Felder, die dort nicht aufgeführt sind.

Um die Content-Aktivität zu beobachten, können Sie die Profile um Beitragsdaten ergänzen. Die IG Scraper API-Übersicht führt separate Endpunkte für Benutzermedien und Videoclips sowie Abfragen für Medien und Kommentare auf. Fügen Sie diese als eigenen Schritt hinzu, nachdem Sie das Profil geprüft haben: Bestätigen Sie zunächst die erforderlichen Parameter und die Antwortstruktur in Postman und erfassen Sie anschließend nur die Felder, die Ihr Bericht tatsächlich benötigt.

Eine nützliche Regel für das Monitoring: Speichern Sie Rohantworten getrennt von normalisierten Datensätzen. Mit dem Roh-JSON können Sie die Interpretation erneut prüfen, falls sich die API-Antwort ändert; eine normalisierte Tabelle eignet sich besser für Diagramme und Filter. Speichern Sie in beiden Fällen die Abfragezeit, damit sich aktuelle Werte von historischen unterscheiden lassen.

Richten Sie die IG Scraper API ein

Die Basisadresse der IG API von jsonscraper lautet https://ig.jsonscraper.com. Die offizielle Dokumentation zeigt eine Profilabfrage anhand des Benutzernamens: GET /v1/user/by/username mit den Parametern username, license_key und cache_timeout. Für ein Testkonto zeigt die Dokumentation beispielsweise eine URL der Form https://ig.jsonscraper.com/v1/user/by/username?username=apple&license_key=YOUR_LICENSE_KEY&cache_timeout=60. Verwenden Sie den Cache-Parameter nur gemäß den Bedingungen des jeweiligen Endpunkts und Ihrer Aufgabe: Die Abfragehäufigkeit sollte dazu passen, wie schnell Sie Aktualisierungen benötigen.

Um die Antwortstruktur zu prüfen, öffnen Sie die Seite zur IG Scraper API und wechseln Sie zur verknüpften Postman-Sammlung. Im Beispiel enthält eine erfolgreiche Antwort einen Status, ein ig-Objekt mit Profil-ID und Benutzernamen sowie Verifizierungsstatus und einen Zeitstempel. Die Dokumentation führt außerdem Endpunktgruppen für Benutzer, Medien, Suche, Hashtags und Standorte auf. So können Sie die Datenerfassung erweitern, sobald die Analyseaufgabe feststeht.

Speichern Sie den API-Schlüssel in einer Umgebungsvariablen und nicht im Quellcode oder in einer Clientanwendung. jsonscraper empfiehlt in der Dokumentation, den Schlüssel in der Umgebung zu speichern und nicht in Client-Builds einzubetten. Beschränken Sie den Zugriff auf den Schlüssel im laufenden Betrieb, sodass ihn beispielsweise nur der Hintergrundprozess für die Datenerfassung verwenden kann.

Ein minimales funktionsfähiges Python-Beispiel

Das folgende Skript liest Benutzernamen aus Umgebungsvariablen, ruft jedes Profil ab und schreibt die Ergebnisse in eine JSONL-Datei. JSONL eignet sich für einen ersten Prototyp: Eine Zeile entspricht einem Snapshot. Der Code speichert absichtlich das gesamte Antwortobjekt, statt vorauszusetzen, dass immer alle Profilfelder vorhanden sind. Prüfen Sie nach dem ersten Lauf die tatsächliche Antwort, bevor Sie ein stabiles Tabellenschema erstellen.

import json
import os
import time
from datetime import datetime, timezone
from pathlib import Path
from urllib.parse import urlencode
from urllib.request import Request, urlopen

API_KEY = os.environ["JSONSCRAPER_LICENSE_KEY"]
USERNAMES = [name.strip() for name in os.environ["IG_USERNAMES"].split(",") if name.strip()]
BASE_URL = "https://ig.jsonscraper.com/v1/user/by/username"
OUTPUT = Path("instagram_profiles.jsonl")


def fetch_profile(username: str) -> dict:
    query = urlencode({
        "username": username,
        "license_key": API_KEY,
        "cache_timeout": 60,
    })
    request = Request(f"{BASE_URL}?{query}", headers={"Accept": "application/json"})
    with urlopen(request, timeout=30) as response:
        return json.load(response)


with OUTPUT.open("a", encoding="utf-8") as output:
    for username in USERNAMES:
        collected_at = datetime.now(timezone.utc).isoformat()
        try:
            payload = fetch_profile(username)
            row = {
                "collected_at": collected_at,
                "requested_username": username,
                "ok": True,
                "payload": payload,
            }
        except Exception as exc:
            row = {
                "collected_at": collected_at,
                "requested_username": username,
                "ok": False,
                "error": str(exc),
            }

        output.write(json.dumps(row, ensure_ascii=False) + "\n")
        output.flush()
        time.sleep(1)

Legen Sie die Konfiguration vor dem Start in der Umgebung fest:

export JSONSCRAPER_LICENSE_KEY="ihr_schlüssel"
export IG_USERNAMES="creator_one,creator_two,creator_three"
python monitor.py

Die Pause im Beispiel sorgt dafür, dass die Liste in Ruhe nacheinander verarbeitet wird; sie ist keine angegebene API-Ratenbegrenzung. Richten Sie für den produktiven Zeitplan die Häufigkeit und Fehlerbehandlung entsprechend Ihrem Tarif, der Dokumentation und den Anforderungen an die Aktualität ein. Wird eine Abfrage nicht erfolgreich abgeschlossen, hilft der gespeicherte Eintrag dabei, das Problem zu erkennen, statt den Account stillschweigend zu überspringen.

Normalisieren Sie die Daten, nachdem Sie die Antwort geprüft haben

Wenn Sie die Antwort des verwendeten Endpunkts untersucht haben, legen Sie eine stabile Spaltenauswahl fest. Eine Beobachtungstabelle könnte beispielsweise Erfassungszeit, Benutzername, Profil-ID, bestätigten Antwortstatus und erforderliche Zähler enthalten – sofern diese im JSON vorhanden sind. Legen Sie für jedes Feld ausdrücklich fest, wie fehlende Werte behandelt werden sollen: einen leeren Wert speichern, den Datensatz als unvollständig markieren oder zur erneuten Prüfung vormerken.

Überschreiben Sie den gestrigen Datensatz nicht mit dem heutigen Wert. Die Snapshot-Historie wird benötigt, um Unterschiede zwischen Zeitpunkten zu berechnen und Änderungen zu erkennen. Berechnen Sie die Differenz bei der Followerzahl zwischen aufeinanderfolgenden erfolgreichen Beobachtungen desselben Profils. Ein stabiler Identifikator ist für den Vergleich besser geeignet als allein der Benutzername, der sich ändern kann.

Wenn die Rohantwort mehr Daten enthält, als der Bericht benötigt, sollte sie nur für einen begrenzten Zeitraum gespeichert werden. Die normalisierte Tabelle sollte lediglich Felder enthalten, die durch die konkrete Aufgabe begründet sind. Bei der öffentlichen Recherche zu Creators verringert das üblicherweise das Datenvolumen und erleichtert es, den Zweck der Erfassung zu erläutern.

Ergänzen Sie einen täglichen Lauf und Benachrichtigungen

Auf einem Server lässt sich das Skript mit einem Aufgabenplaner wie cron starten; in einem Automatisierungstool kann es zeitgesteuert und über eine HTTP-Anfrage ausgeführt werden. Die grundlegende Ablaufkette besteht aus einem Trigger, dem Einlesen der Profilliste, dem nacheinander erfolgenden Aufruf des Endpunkts, der Prüfung auf eine erfolgreiche Antwort, dem Speichern eines Datensatzes und dem Erstellen einer Zusammenfassung. In n8n oder Make können Sie dieselben Schritte auf separate Knoten verteilen, sodass ein Fehler bei einem Profil nicht die gesamte Liste stoppt.

Berechnen Sie für den Bericht einfache Kennzahlen: wie viele Profile erfolgreich verarbeitet wurden, bei welchen sich die Followerzahl gegenüber dem letzten erfolgreichen Snapshot geändert hat und wann ein Datensatz zuletzt aktualisiert wurde. Eine separate Fehlerliste hilft dabei, ungültige Benutzernamen, nicht erreichbare Profile und vorübergehende Abfrageprobleme schnell zu erkennen. Wenn Sie Beiträge ergänzen, legen Sie zuerst die gewünschte Verlaufstiefe und die benötigten Felder fest und binden Sie dann den entsprechenden Endpunkt aus der Dokumentation ein.

Auch das Caching sollte gezielt konfiguriert werden. In der Dokumentation wird cache_timeout als Parameter unterstützter Endpunkte beschrieben, mit dem sich kürzlich abgerufene Ergebnisse wiederverwenden lassen. Wählen Sie für einen täglichen Vergleichsbericht einen Modus, der zur erforderlichen Aktualität passt. Vermischen Sie keine zwischengespeicherte Antwort mit einem neuen Kontrollpunkt, ohne dies im Protokoll zu vermerken.

Was dieses Monitoring zeigt

Mit der Zeit erhält das Team einen überprüfbaren Verlauf der Beobachtungen für die ausgewählten öffentlichen Profile. Sie können Zähleränderungen vergleichen, lange nicht aktualisierte Datensätze finden und eine kurze Liste von Accounts für die manuelle Bewertung erstellen. Wenn die Datenerfassung von Medien mit dem gewählten Endpunkt und der Aufgabe vereinbar ist, können Sie den Profilen Beiträge hinzufügen und die Veröffentlichungsfrequenz oder Inhaltsformate analysieren – vorausgesetzt, die konkreten Felder sind durch die Dokumentation bestätigt.

Nutzen Sie Kennzahlen als Filter für die Recherche, nicht als automatisierte Entscheidung über eine Zusammenarbeit. Die Followerzahl allein sagt nichts darüber aus, ob die Zielgruppe zur Marke passt, wie gut die Inhalte sind oder ob ein Creator kommerziell geeignet ist. Prüfen Sie das Profil zusätzlich selbst und dokumentieren Sie die Auswahlkriterien getrennt von der technischen Datenerfassung.

Öffnen Sie für einen Testlauf die IG-API-Sammlung in Postman, richten Sie den Schlüssel ein und führen Sie eine Profilabfrage aus. Übertragen Sie anschließend die geprüften Parameter in das Skript oder die Automatisierung. So erhalten Sie eine reproduzierbare tägliche Erfassung, einen Verlauf der Änderungen und eine Grundlage für Analyseberichte, ohne einen eigenen Webseiten-Parser schreiben zu müssen.

People

No people listed for this article yet.

Keep readingSo messen Sie die Content-Dynamik von IG-Konkurrenten: eine API-Pipeline mit Python
Read the next article

Vom Artikel zur funktionierenden Integration

Entdecke die Social-Data-APIs von jsonscraper, teste Anfragen und entwickle deinen nächsten Workflow.

APIs entdecken