jsonscraper

Jak zbudować codzienny monitoring twórców na IGie w Pythonie

Potok danych dla marketera lub analityka: pobieraj publiczne dane profili, zapisuj migawki i wykrywaj zmiany bez ręcznego sprawdzania kont.

Polityka redakcyjna Zgłoś błąd

Zespoły marketingowe muszą ręcznie sprawdzać dziesiątki kont, aby ustalić, którzy potencjalni twórcy są aktywni, jak zmienia się ich liczba odbiorców i kiedy profil był ostatnio aktualizowany. Jednorazowo przygotowany arkusz szybko się dezaktualizuje: liczba obserwujących i opis profilu ulegają zmianie, a daty publikacji i wskaźniki poszczególnych postów trzeba zbierać od nowa.

Artykuł: Jak zbudować codzienny monitoring twórców na IGie w Pythonie
Podsumowanie: Pokazujemy, jak zautomatyzować codzienny monitoring listy publicznych profili na IGie za pomocą IG Scraper API: pobierać dane profilu, przechowywać historię obserwacji i tworzyć raport zmian.
Rola obrazu: okładka — główna idea
Sekcja: 
Temat wizualny: Koncepcja pulpitu potoku danych przedstawiająca uporządkowaną siatkę kart publicznych profili w mediach społecznościowych, z których dane trafiają do oznaczonych znacznikami czasu rekordów JSON i prostego panelu analitycznego c
© jsonscraper · ilustracja wygenerowana przez AI

Praktycznym rozwiązaniem jest prowadzenie niewielkiego dziennika obserwacji: raz dziennie pobierać publiczne profile z przygotowanej wcześniej listy, zapisywać odpowiedź wraz z czasem pobrania i porównywać nowe wartości z poprzednimi migawkami. Takie podejście pomaga wybierać konta do dalszej ręcznej weryfikacji, oceniać aktywność i przygotowywać regularne raporty. Nie zastępuje ono analityki dostępnej właścicielowi konta: na przykład publiczne informacje o profilu nie zapewniają dostępu do wewnętrznych wskaźników zasięgu.

Najpierw określ, co dokładnie chcesz śledzić

Do wyszukiwania potencjalnych partnerów zwykle wystarczy krótka lista pól: nazwa użytkownika, identyfikator profilu, informacja o weryfikacji, liczba obserwujących, liczba publikacji, biografia i czas pobrania. Te wartości pozwalają zauważyć zmiany profilu i porównywać konta według wybranej niszy. Dostępne pola zależą od odpowiedzi API; przed przetwarzaniem warto sprawdzić aktualny JSON w dokumentacji i nie zakładać istnienia pól, których tam nie ma.

Aby śledzić aktywność w publikowaniu treści, można uzupełnić dane profili o informacje o postach. Mapa IG Scraper API wymienia osobne trasy dla mediów użytkownika i klipów wideo, a także zapytania dotyczące mediów i komentarzy. Dodaj je jako osobny etap po sprawdzeniu profilu: najpierw potwierdź potrzebne parametry i format odpowiedzi w Postmanie, a następnie zapisuj tylko pola, które są rzeczywiście potrzebne w raporcie.

Przydatna zasada monitoringu: przechowuj surowe odpowiedzi osobno od znormalizowanych rekordów. Surowy JSON pozwala ponownie sprawdzić interpretację, jeśli odpowiedź API się zmieni; znormalizowana tabela ułatwia tworzenie wykresów i filtrowanie. W obu przypadkach zapisuj czas zapytania, aby odróżnić aktualną wartość od historycznej.

Połącz się z IG Scraper API

Podstawowy adres IG API w jsonscraper to https://ig.jsonscraper.com. W oficjalnej dokumentacji przedstawiono zapytanie o profil według nazwy użytkownika: GET /v1/user/by/username z parametrami username, license_key i cache_timeout. Na przykład dla konta testowego dokumentacja podaje adres URL w formacie https://ig.jsonscraper.com/v1/user/by/username?username=apple&license_key=YOUR_LICENSE_KEY&cache_timeout=60. Parametru buforowania należy używać wyłącznie zgodnie z warunkami danej trasy i własnym celem: częstotliwość odpytywania powinna odpowiadać temu, jak szybko potrzebujesz aktualizacji.

Aby sprawdzić strukturę odpowiedzi, otwórz stronę IG Scraper API i przejdź do powiązanej kolekcji Postmana. W przykładzie poprawna odpowiedź zawiera status, obiekt ig z identyfikatorem profilu, nazwą użytkownika i informacją o weryfikacji, a także znacznik czasu. Dokumentacja osobno wymienia grupy tras dotyczące użytkowników, mediów, wyszukiwania, hashtagów i lokalizacji; dzięki temu można rozszerzać pobieranie danych w miarę doprecyzowywania potrzeb analitycznych.

Przechowuj klucz API w zmiennej środowiskowej, a nie w kodzie źródłowym ani aplikacji klienckiej. Dokumentacja jsonscraper zaleca przechowywanie klucza w środowisku i niewbudowywanie go w kompilacje klienckie. Ogranicz dostęp do klucza w procesie roboczym, na przykład udostępniając go wyłącznie zadaniu działającemu w tle.

Minimalny działający przykład w Pythonie

Poniższy skrypt odczytuje nazwy użytkowników ze zmiennej środowiskowej, pobiera dane każdego profilu i zapisuje je w pliku JSONL. JSONL sprawdza się w początkowym prototypie: jeden wiersz to jedna migawka. Kod celowo zapisuje cały obiekt odpowiedzi, zamiast zakładać, że wszystkie pola profilu będą zawsze obecne. Po pierwszym uruchomieniu sprawdź rzeczywistą odpowiedź i dopiero potem utwórz stabilny schemat tabeli.

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)

Przed uruchomieniem ustaw konfigurację w środowisku:

export JSONSCRAPER_LICENSE_KEY="twój_klucz"
export IG_USERNAMES="creator_one,creator_two,creator_three"
python monitor.py

Przerwa w przykładzie pozwala spokojniej przetwarzać listę po kolei; nie jest deklarowanym limitem API. W przypadku harmonogramu produkcyjnego dostosuj częstotliwość i obsługę błędów do swojego planu, dokumentacji i wymagań dotyczących aktualności danych. Jeśli zapytanie zakończy się błędem, zapisany rekord pozwoli zauważyć problem zamiast po cichu pominąć konto.

Normalizuj dane po sprawdzeniu odpowiedzi

Po zapoznaniu się z odpowiedzią dla używanej trasy wybierz stabilny zestaw kolumn. Tabela obserwacji może na przykład zawierać czas pobrania, username, identyfikator profilu, zweryfikowany status odpowiedzi i potrzebne liczniki — jeśli występują w JSON-ie. Dla każdego pola jasno określ sposób postępowania w razie braku: zapisz pustą wartość, oznacz rekord jako niekompletny albo skieruj go do ponownej weryfikacji.

Nie zastępuj wczorajszego wiersza dzisiejszą wartością. Historia migawek jest potrzebna do obliczania różnic między datami i wykrywania zmian. W przypadku liczby obserwujących oblicz różnicę między sąsiednimi, poprawnymi obserwacjami tego samego profilu; porównanie według stabilnego identyfikatora jest lepsze niż porównywanie wyłącznie nazw użytkowników, które mogą się zmieniać.

Jeśli surowa odpowiedź zawiera więcej danych, niż potrzeba w raporcie, warto przechowywać ją przez ograniczony czas. Znormalizowana tabela powinna obejmować tylko pola uzasadnione konkretnym celem. W przypadku publicznego badania twórców zazwyczaj ogranicza to ilość danych i ułatwia wyjaśnienie, dlaczego są zbierane.

Dodaj codzienne uruchamianie i powiadomienie

Na serwerze można uruchamiać skrypt za pomocą harmonogramu zadań, takiego jak cron, a w narzędziu automatyzującym — według harmonogramu i przez żądanie HTTP. Podstawowy przepływ obejmuje wyzwalacz, odczyt listy profili, sekwencyjne wywołanie trasy, sprawdzenie poprawności odpowiedzi, zapis wiersza w magazynie i przygotowanie podsumowania. W n8n lub Make te same etapy można wygodnie rozdzielić na osobne węzły, tak aby błąd jednego profilu nie zatrzymywał przetwarzania całej listy.

W raporcie obliczaj proste wskaźniki: ile profili przetworzono poprawnie, które zmieniły liczbę obserwujących względem poprzedniej poprawnej migawki oraz kiedy rekord był ostatnio aktualizowany. Osobna lista błędów ułatwia wykrywanie nieprawidłowych nazw, niedostępnych profili i tymczasowych problemów z zapytaniami. Jeśli dodajesz publikacje, najpierw uzgodnij wymaganą głębokość historii i zestaw pól, a następnie podłącz odpowiednią trasę z dokumentacji.

Warto też rozsądnie skonfigurować buforowanie. Dokumentacja opisuje cache_timeout jako parametr obsługiwanych tras, służący do ponownego wykorzystania niedawnych wyników. W przypadku codziennego raportu porównawczego wybierz tryb odpowiedni do wymaganej świeżości danych; nie łącz odpowiedzi z pamięci podręcznej z nowym punktem kontrolnym bez odnotowania tego w dzienniku.

Co pokaże taki monitoring

Po zgromadzeniu migawek zespół będzie dysponował możliwą do zweryfikowania historią obserwacji wybranych publicznych profili. Można porównywać zmiany liczników, wyszukiwać dawno nieaktualizowane rekordy i tworzyć krótką listę kont do ręcznej oceny. Jeśli pobieranie mediów jest dostępne dla wybranej trasy i danego celu, można dodać publikacje do profili i analizować tempo publikowania lub formaty treści — pod warunkiem potwierdzenia konkretnych pól w dokumentacji.

Traktuj wskaźniki jako filtr do pracy badawczej, a nie jako automatyczną podstawę decyzji o współpracy. Sama liczba obserwujących nie mówi, czy odbiorcy pasują do marki, jaka jest jakość treści ani czy twórca nadaje się do celów komercyjnych. Dodaj ręczną weryfikację profilu i przechowuj kryteria wyboru osobno od technicznego procesu zbierania danych.

Aby przeprowadzić próbne uruchomienie, otwórz kolekcję IG API w Postmanie, skonfiguruj klucz i wykonaj zapytanie o profil. Następnie przenieś sprawdzone parametry do skryptu lub automatyzacji. W ten sposób uzyskasz powtarzalny codzienny proces pobierania danych, historię zmian i podstawę do raportu analitycznego, bez konieczności tworzenia własnego parsera stron od zera.

People

No people listed for this article yet.

Keep readingJak mierzyć dynamikę treści konkurencji na IGie: potok API w Pythonie
Read the next article

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

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

Poznaj API