jsonscraper
Märkte
Zurück zum Journal

IG-Profile in eine tägliche Änderungsübersicht verwandeln

Erfassen Sie öffentliche Profilkennzahlen nach Zeitplan, speichern Sie Momentaufnahmen und weisen Sie Änderungen aus, ohne Kennzahlen zu erfinden.

Redaktionsrichtlinie Fehler melden

Wenn Marketingfachleute Dutzende öffentliche IG-Profile manuell prüfen, kostet nicht das Öffnen der Seiten am meisten Zeit, sondern das Fehlen einer vergleichbaren Historie. Eine Momentaufnahme zeigt die Zahl der Follower von heute; aus zwei Momentaufnahmen lässt sich die Differenz für einen gewählten Zeitraum berechnen. Für eine einfache Profilüberwachung können Sie die Abfrage automatisieren, nur die benötigten Felder speichern und eine Übersicht der Änderungen erstellen.

Unten finden Sie ein minimales, lauffähiges Python-Beispiel: Es ruft anhand des Benutzernamens Profildaten über die IG Scraper API ab und schreibt eine JSONL-Zeile mit Zeitstempel. Das Ergebnis ist eine kleine Historienquelle, die sich mit cron, n8n oder einem eigenen Speicher verbinden lässt. Die offizielle Beschreibung der Route und ihrer Parameter finden Sie im IG-API-Referenzhandbuch.

Welche Frage eine tägliche Momentaufnahme beantwortet

Angenommen, ein Team überwacht öffentliche Konten von Marken oder Partnern und möchte Änderungen bei Followerzahlen, Beiträgen oder dem Verifizierungsstatus erkennen. Auf der Profilseite sehen Sie die aktuellen Werte, doch sie speichert nicht von selbst den Stand der vergangenen Woche. Legen Sie daher zunächst fest, welche Felder wichtig sind, und speichern Sie sie anschließend mit dem Datum der Beobachtung.

Artikel: IG-Profile in eine tägliche Änderungsübersicht verwandeln
Zusammenfassung: Eine praktische Anleitung zur Überwachung öffentlicher IG-Profile: API-Abfragen, sichere Schlüsselverwaltung, historische Momentaufnahmen und die Berechnung von Änderungen zwischen den Abrufen.
Bildfunktion: Titelbild – die zentrale Idee
Abschnitt: Welche Frage eine tägliche Momentaufnahme beantwortet
Bildmotiv: Redaktionelles Foto mit gedruckten IG-Profilkarten, dargestellt als abstrakte farbige Social-Media-Kacheln neben datierten Papier-Momentaufnahmen und einem kleinen
Ein Profil liefert eine aktuelle Momentaufnahme; wiederholte, datierte Einträge schaffen eine Vergleichshistorie.© jsonscraper · mit KI erstellt

Die Route /v1/user/by/username erwartet den Pflichtparameter username. Die Antwort enthält unter anderem follower_count, following_count, media_count, is_verified, is_private und biography. Diese Felder eignen sich für eine Profil-Momentaufnahme; sie enthalten keine Historie der Beiträge und erklären für sich genommen nicht, warum sich Kennzahlen geändert haben.

Das Skript ist bewusst eng gefasst: Es erfasst zu einem festgelegten Zeitpunkt einen beobachtbaren Satz von Feldern und vergleicht ihn mit früheren Einträgen. So sieht eine Analystin oder ein Analyst beispielsweise, dass sich die Followerzahl zwischen gespeicherten Zeitpunkten geändert hat, und kann dies anschließend unabhängig von der automatischen Erfassung weiter untersuchen.

API-Schlüssel und Kontenliste vorbereiten

Installieren Sie die Bibliothek für HTTP-Anfragen und hinterlegen Sie den API-Schlüssel in einer Umgebungsvariable. Schreiben Sie das Geheimnis weder in die Quelldatei noch in ein Repository oder die Programmausgabe. Die API verwendet den Abfrageparameter license_key; die Bibliothek erstellt die Query-String-Parameter selbst.

python -m pip install requests
export JSONSCRAPER_INSTAGRAM_LICENSE_KEY="ihr_schlüssel"

Die Liste der Profile können Sie bequem in einer Konfigurationsdatei oder Projektvariablen speichern. Für den ersten Lauf reicht ein Benutzername, um Antwort, Zugriff und Speicherung zu prüfen. Im Beispiel ist username als API-Parameter gesetzt; der Schlüssel wird ausschließlich aus der Umgebung gelesen.

Abfrage und Speicherung einer Momentaufnahme mit Python

Das Skript prüft die HTTP-Antwort, den API-Status und das Vorhandensein des Objekts ig. Danach speichert es nur Werte, die ausdrücklich vorhanden sind. Fehlt ein Feld, bleibt in dem Eintrag null stehen: Eine Null einzusetzen, würde einen unbekannten Wert mit einer tatsächlichen Null vermischen.

Artikel: IG-Profile in eine tägliche Änderungsübersicht verwandeln
Zusammenfassung: Eine praktische Anleitung zur Überwachung öffentlicher IG-Profile: API-Abfragen, sichere Schlüsselverwaltung, historische Momentaufnahmen und die Berechnung von Änderungen zwischen den Abrufen.
Bildfunktion: Ergänzende Illustration 2 – ein anderer spezifischer Aspekt
Abschnitt: Abfrage und Speicherung einer Momentaufnahme mit Python
Bildmotiv: Klare Infografik auf Russisch mit einem Datenfluss: eine geplante Python-Abfrage an den IG-Profil-Endpunkt, eine JSON-Datei
Das Schema zeigt den Weg von der Profilabfrage bis zum Vergleich zweier gespeicherter Beobachtungen.© jsonscraper · mit KI erstellt
import json
import os
from datetime import datetime, timezone
from pathlib import Path

import requests

API_URL = "https://ig.jsonscraper.com/v1/user/by/username"
LICENSE_KEY = os.environ["JSONSCRAPER_INSTAGRAM_LICENSE_KEY"]
USERNAME = "apple"  # durch ein Profil aus Ihrer Liste ersetzen
OUTPUT = Path("instagram-profile-snapshots.jsonl")

response = requests.get(
    API_URL,
    params={"username": USERNAME, "license_key": LICENSE_KEY},
    timeout=30,
)
response.raise_for_status()
payload = response.json()

if payload.get("status") != "ok" or not isinstance(payload.get("ig"), dict):
    raise RuntimeError("Die API hat einen unerwarteten Status oder eine unerwartete Struktur zurückgegeben")

profile = payload["ig"]
record = {
    "observed_at": datetime.now(timezone.utc).isoformat(),
    "username": profile.get("username", USERNAME),
    "pk": profile.get("pk"),
    "follower_count": profile.get("follower_count"),
    "following_count": profile.get("following_count"),
    "media_count": profile.get("media_count"),
    "is_verified": profile.get("is_verified"),
    "is_private": profile.get("is_private"),
}

with OUTPUT.open("a", encoding="utf-8") as file:
    file.write(json.dumps(record, ensure_ascii=False) + "\n")

print("Momentaufnahme gespeichert:", record["username"], record["observed_at"])

Felder und Struktur des Beispiels entsprechen den für diese Route beschriebenen Profilinformationen. Eine erfolgreiche Anfrage liefert eine Beobachtung zum Zeitpunkt des Abrufs. Um die Entwicklung zu analysieren, muss das Skript wiederholt ausgeführt und jede Momentaufnahme gespeichert werden. Auf der Seite zur IG Scraper API finden Sie eine einfache Abfrage und eine Beispielantwort im JSON-Format.

Änderungen zwischen Momentaufnahmen berechnen

JSONL speichert einen Eintrag pro Zeile und lässt sich daher mit dem standardmäßigen Python-Modul lesen. Der nächste Ausschnitt wählt die beiden letzten Einträge für ein Profil aus und berechnet die Differenz der Followerzahl. Er gibt das Ergebnis nur aus, wenn beide Einträge einen numerischen Wert enthalten.

import json
from pathlib import Path

rows = [
    json.loads(line)
    for line in Path("instagram-profile-snapshots.jsonl").read_text(encoding="utf-8").splitlines()
]

username = "apple"
profile_rows = [row for row in rows if row.get("username") == username]
profile_rows.sort(key=lambda row: row["observed_at"])

if len(profile_rows) >= 2:
    previous, current = profile_rows[-2:]
    old = previous.get("follower_count")
    new = current.get("follower_count")
    if isinstance(old, int) and isinstance(new, int):
        print({
            "username": username,
            "from": previous["observed_at"],
            "to": current["observed_at"],
            "follower_delta": new - old,
        })

Die Differenz bezieht sich genau auf die beiden ausgewählten Beobachtungen. Werden Läufe ausgelassen, verlängert sich der Zeitraum zwischen ihnen. Daher sollte der Bericht beide Zeitpunkte anzeigen, statt die Änderung automatisch als „pro Tag“ zu bezeichnen. Für einen regelmäßigen Betrieb richten Sie einen geplanten Lauf mit cron oder dem Scheduler einer Cloud-Plattform ein. In n8n lässt sich dieselbe Abfolge mit Scheduler-, HTTP-Anfrage- und Speicher-Knoten in einer Datenbank oder Tabelle abbilden; die Namen der Knoten und die Anbindung des Speichers hängen von Ihrer Installation ab.

Auf mehrere Profile erweitern

Für eine Kontenliste können Sie die Benutzernamen in eine separate Datei auslagern und sie mit einer Schleife durchgehen. Speichern Sie den Status jeder Anfrage separat: Dann löscht der Ausfall eines Profils nicht die erfolgreich erfassten Daten der übrigen. Ergänzen Sie ein Zeitlimit, ein Fehlerprotokoll und einen erneuten Lauf nur für Konten, bei denen die Anfrage fehlgeschlagen ist.

Als Schlüssel des Eintrags können Sie pk verwenden, sofern die API diesen Wert zurückgegeben hat; speichern Sie den Benutzernamen für die bessere Lesbarkeit zusätzlich. Die ID hilft, ein Profil von einer Textbezeichnung im Bericht zu unterscheiden. Fehlt sie, sollten Sie keine erfinden oder durch ein anderes Feld ersetzen. Für Analysen empfiehlt es sich, den ursprünglichen Erfassungszeitpunkt in UTC zu speichern und den Vergleichszeitraum ausdrücklich festzulegen.

Wenn es für Ihre Aufgabe genügt, Informationen in einer bestimmten Häufigkeit abzurufen, können Sie mit dem dokumentierten Parameter cache_timeout die Cache-Dauer in Sekunden angeben; für IG ist Caching standardmäßig ausgeschaltet. Wählen Sie die Dauer passend zum Überwachungsintervall und speichern Sie sie zusammen mit den Erfassungseinstellungen, damit sich die Ergebnisse unter Berücksichtigung der Abfrageparameter interpretieren lassen.

Das Ergebnis

Nach mehreren Läufen haben Sie eine Datei mit zeitgestempelten Momentaufnahmen öffentlicher Kennzahlen und eine einfache, für ausgewählte Zeitpunkte berechnete Differenz. Sie können die Daten in Google Sheets, PostgreSQL oder ein Analysesystem laden; eine separate Verarbeitungsebene kann eine Benachrichtigung auslösen, wenn eine Änderung einen vom Team festgelegten Schwellenwert überschreitet. Dieser Schwellenwert ist Ihre Geschäftsregel und keine integrierte Funktion der API.

Die Profilroute liefert Kontofelder. Wenn Sie neue Beiträge gezielt überprüfen möchten, benötigen Sie daher eine entsprechende Medienabfrage, statt aus media_count Schlussfolgerungen zu ziehen. Das IG-API-Referenzhandbuch führt eine separate Route zum Abruf von Beiträgen mit seitenweiser Abfrage über user_id und den Parameter end_cursor auf. Nutzen Sie sie, wenn Ihre Aufgabe eine Untersuchung der Beiträge selbst erfordert. Für das hier beschriebene Ergebnis – eine historische Tabelle der Profilkennzahlen – genügt eine Abfrage pro Nutzer und das wiederholte Speichern der Momentaufnahmen.

Beginnen Sie mit einem Profil und zwei Läufen: Prüfen Sie, ob der Antwortstatus korrekt ist, die Zeitpunkte gespeichert werden und fehlende Daten ausdrücklich unbekannt bleiben. Fügen Sie anschließend die Kontenliste und den Zeitplan hinzu. So erhalten Sie eine reproduzierbare Beobachtung mit einem nachvollziehbaren Zeitraum und Ausgangswerten, die sich überprüfen und in den weiteren Analyseprozess übergeben lässt.

Menschen

Für diesen Artikel sind noch keine Personen aufgeführt.

Lesen Sie weiterIG-Creator anhand ihrer Veröffentlichungsdynamik bewerten: eine praktische Python-Pipeline
Lesen Sie den nächsten Artikel

Vom Artikel zur funktionierenden Integration

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

APIs entdecken