jsonscraper
Rynki
Powrót do dziennika

Jak zamienić profile na IGie w codzienną listę zmian

Zbieraj publiczne dane profili według harmonogramu, zapisuj migawki i wykrywaj zmiany bez wymyślania wskaźników.

Polityka redakcyjna Zgłoś błąd

Jeśli marketingowiec ręcznie sprawdza dziesiątki publicznych profili na IGie, największą stratą nie jest czas poświęcony na otwieranie stron, lecz brak porównywalnej historii. Jedna migawka pokazuje dzisiejszą liczbę obserwujących; dwie pozwalają obliczyć różnicę w wybranym okresie. Prosty monitoring profili można zautomatyzować: wysyłać zapytanie, zapisywać tylko potrzebne pola i tworzyć tabelę zmian.

Poniżej znajduje się minimalny działający przykład w Pythonie: pobiera informacje o profilu na podstawie nazwy użytkownika za pośrednictwem IG Scraper API i zapisuje wiersz JSONL ze znacznikiem czasu. Rezultatem jest niewielkie źródło danych historycznych, które można podłączyć do cron, n8n lub własnego magazynu danych. Oficjalny opis endpointu i parametrów znajduje się w dokumentacji IG API.

Na jakie pytanie odpowiada codzienna migawka

Załóżmy, że zespół śledzi publiczne konta marek lub partnerów i chce zauważyć zmiany liczby obserwujących, publikacji lub statusu weryfikacji. Obejrzenie strony pokazuje bieżące wartości, ale samo w sobie nie przechowuje danych z poprzedniego tygodnia. Dlatego najpierw trzeba określić, które pola są istotne, a następnie zapisywać je wraz z datą obserwacji.

Artykuł: Jak zamienić profile na IGie w codzienną listę zmian
Podsumowanie: Praktyczny przewodnik po monitorowaniu publicznych profili na IGie: zapytanie do API, bezpieczne przechowywanie klucza, zapisywanie historycznych migawek i obliczanie zmian między kolejnymi uruchomieniami.
Rola obrazu: okładka — główna idea
Sekcja: Na jakie pytanie odpowiada codzienna migawka
Temat wizualny: Zdjęcie redakcyjne przedstawiające wydrukowane karty profili na IGie, odwzorowane jako abstrakcyjne, kolorowe kafelki mediów społecznościowych obok datowanych papierowych migawek danych i sm
Profil pokazuje bieżącą migawkę; kolejne datowane zapisy tworzą historię, którą można porównywać.© jsonscraper · wygenerowano z pomocą AI

Endpoint /v1/user/by/username przyjmuje wymagany parametr username. Odpowiedź zawiera między innymi pola follower_count, following_count, media_count, is_verified, is_private i biography. Ten zestaw nadaje się do tworzenia migawki profilu; nie zawiera historii publikacji i sam w sobie nie wyjaśnia przyczyn zmian wskaźników.

Skrypt ma celowo wąski zakres: pobrać zestaw obserwowalnych pól w określonym czasie i porównać go z wcześniejszymi zapisami. Dzięki temu analityk widzi na przykład, że między zapisanymi datami zmieniła się liczba obserwujących, a następnie może osobno przeprowadzić dalszą weryfikację.

Przygotuj klucz i listę kont

Zainstaluj bibliotekę do obsługi zapytań i ustaw klucz API w zmiennej środowiskowej. Nie umieszczaj sekretu w pliku źródłowym, repozytorium ani danych wyjściowych programu. API używa parametru zapytania license_key; poniższa biblioteka samodzielnie tworzy query string.

python -m pip install requests
export JSONSCRAPER_INSTAGRAM_LICENSE_KEY="twój_klucz"

Listę profili można przechowywać w pliku konfiguracyjnym lub zmiennej projektu. Do pierwszego uruchomienia wystarczy jedna nazwa użytkownika, aby sprawdzić odpowiedź, dostęp i zapis danych. W przykładzie pole username jest ustawione jako parametr API, a klucz jest odczytywany wyłącznie ze środowiska.

Zapytanie i zapis migawki w Pythonie

Skrypt sprawdza odpowiedź HTTP, zewnętrzny status API i obecność obiektu ig. Następnie zapisuje tylko wartości, które rzeczywiście istnieją. Jeśli któregoś pola brakuje, w rekordzie pozostaje null: podstawienie zera mieszałoby nieznaną wartość z rzeczywistym zerem.

Artykuł: Jak zamienić profile na IGie w codzienną listę zmian
Podsumowanie: Praktyczny przewodnik po monitorowaniu publicznych profili na IGie: zapytanie do API, bezpieczne przechowywanie klucza, zapisywanie historycznych migawek i obliczanie zmian między kolejnymi uruchomieniami.
Rola obrazu: ilustracja uzupełniająca 2 — inny konkretny aspekt
Sekcja: Zapytanie i zapis migawki w Pythonie
Temat wizualny: Czytelna infografika w języku rosyjskim przedstawiająca przepływ danych: zaplanowane zapytanie Pythona do endpointu profilu na IGie, plik JSON
Schemat pokazuje drogę od zapytania o profil do porównania dwóch zapisanych obserwacji.© jsonscraper · wygenerowano z pomocą AI
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"  # zastąp profilem z własnej listy
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("API zwróciło nieoczekiwany status lub strukturę")

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("Zapisano migawkę:", record["username"], record["observed_at"])

Pola i struktura przykładu odpowiadają informacjom o profilu opisanym dla tego endpointu. Pomyślne zapytanie zwraca obserwację z chwili jego wykonania; aby analizować dynamikę, trzeba uruchamiać skrypt ponownie i zapisywać każdą migawkę. Na stronie IG Scraper API pokazano podstawowe zapytanie i przykładową odpowiedź w formacie JSON.

Oblicz zmianę między migawkami

JSONL przechowuje po jednym rekordzie w wierszu, więc można go odczytać za pomocą standardowego modułu Pythona. Poniższy fragment wybiera dwa ostatnie rekordy dla profilu i oblicza różnicę w liczbie obserwujących. Wyświetla wynik tylko wtedy, gdy obie wartości są liczbami.

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,
        })

Różnica dotyczy dokładnie dwóch wybranych obserwacji. Jeśli pominiesz uruchomienia, odstęp między nimi będzie dłuższy, dlatego raport powinien podawać obie daty, zamiast automatycznie określać zmianę jako „dzienną”. Aby regularnie wykonywać zadanie, skonfiguruj harmonogram w cron lub w planerze platformy chmurowej. W n8n można zbudować ten sam przepływ z węzłów harmonogramu, żądania HTTP i zapisu wyniku w bazie lub tabeli; nazwy węzłów i konfiguracja magazynu zależą od instalacji.

Rozszerzenie monitoringu na kilka profili

W przypadku listy kont umieść nazwy w osobnym pliku i przetwarzaj je w pętli. Zapisuj status każdego zapytania oddzielnie, aby awaria dotycząca jednego profilu nie usuwała poprawnie pobranych danych pozostałych. Dodaj limit czasu oczekiwania, dziennik błędów i ponawiaj zapytania tylko dla kont, w przypadku których zakończyły się niepowodzeniem.

Jako klucza rekordu można użyć pk, jeśli API go zwróciło, zachowując również nazwę użytkownika dla czytelności. Identyfikator pomaga odróżnić profil od tekstowej etykiety w raporcie; jeśli go brakuje, nie należy go wymyślać ani zastępować innym polem. W analizie warto przechowywać pierwotny czas zbierania danych w UTC i jawnie określać okres porównania.

Jeśli do danego zadania wystarczy pobieranie informacji z określoną częstotliwością, udokumentowany parametr cache_timeout pozwala ustawić czas cache’owania w sekundach; w przypadku IGa cache’owanie jest domyślnie wyłączone. Wybierz czas odpowiedni do interwału monitorowania i zapisuj go wraz z ustawieniami zbierania danych, aby przy interpretacji wyników uwzględniać parametry zapytania.

Co otrzymasz

Po kilku uruchomieniach będziesz mieć plik z migawkami publicznych wskaźników zapisanymi w czasie oraz prostą różnicę obliczoną między wybranymi datami. Można go wczytać do Google Sheets, PostgreSQL lub systemu analitycznego; osobna warstwa przetwarzania może generować powiadomienie, gdy zmiana przekroczy ustalony przez zespół próg. Próg jest regułą biznesową, a nie wbudowaną funkcją API.

Endpoint profilu udostępnia pola konta, dlatego do audytu nowych publikacji potrzebne jest odpowiednie pobieranie danych o mediach, a nie wnioski wyciągane z media_count. W dokumentacji IG API wymieniono osobny endpoint pobierania publikacji z paginacją za pomocą user_id i parametru end_cursor; skorzystaj z niego, jeśli zadanie wymaga analizy samych postów. Do opisanego tutaj celu — historycznej tabeli wskaźników profilu — wystarczy jedno zapytanie na użytkownika i powtarzalny zapis migawek.

Zacznij od jednego profilu i kilku uruchomień: upewnij się, że status odpowiedzi jest prawidłowy, daty są zapisywane, a brakujące dane pozostają jawnie nieznane. Następnie dodaj listę kont i harmonogram. W ten sposób uzyskasz powtarzalną obserwację z jasno określonym interwałem i wartościami źródłowymi, którą można weryfikować i przekazywać dalej do procesu analitycznego.

Ludzie

Nie ma jeszcze żadnych osób na liście dla tego artykułu.

Czytaj dalejJak oceniać twórców na IGie na podstawie dynamiki publikacji: praktyczny pipeline w Pythonie
Przeczytaj następny artykuł

Zmień lekturę w działającą integrację

Poznaj API danych społecznościowych jsonscraper, testuj zapytania i buduj kolejne procesy.

Poznaj API