jsonscraper
Trhy
Zpět do magazínu

Jak proměnit profily na IGu v každodenní přehled změn

Plánovaně sbírejte veřejné údaje o profilech, ukládejte snímky a zaznamenávejte změny bez vymýšlení metrik.

Redakční zásady Nahlásit chybu

Pokud marketér ručně kontroluje desítky veřejných profilů na IGu, hlavní ztrátou není čas strávený otevíráním stránek, ale chybějící srovnatelná historie. Jeden snímek ukazuje dnešní počet sledujících; ze dvou snímků lze vypočítat rozdíl za zvolené období. Jednoduché sledování profilů můžete automatizovat: provést požadavek, uložit jen potřebná pole a získat tabulku změn.

Níže najdete minimální funkční příklad v Pythonu: získá údaje o profilu podle uživatelského jména prostřednictvím IG Scraper API a zapíše řádek JSONL s časovým razítkem. Výsledkem je malý zdroj historických dat, který lze připojit ke cron, n8n nebo vlastnímu úložišti. Oficiální popis endpointu a parametrů najdete v dokumentaci IG API.

Jakou otázku řeší každodenní snímek

Předpokládejme, že tým sleduje veřejné účty značek nebo partnerů a chce zaznamenat změny v počtu sledujících, příspěvků nebo ve stavu ověření. Zobrazení profilu ukazuje aktuální hodnoty, samo o sobě ale neuchovává stav z minulého týdne. Nejprve proto určete, která pole jsou důležitá, a pak je ukládejte s datem pozorování.

Článek: Jak proměnit profily na IGu v každodenní přehled změn
Shrnutí: Praktický návod na sledování veřejných profilů na IGu: volání API, bezpečné uchovávání klíče, ukládání historických snímků a výpočet změn mezi jednotlivými spuštěními.
Role obrázku: titulní — ústřední myšlenka
Sekce: Jakou otázku řeší každodenní snímek
Vizuální námět: Redakční fotografie vytištěných profilových karet IGu znázorněných jako abstraktní barevné dlaždice sociálních médií vedle datovaných papírových snímků dat a malého
Profil poskytuje aktuální snímek; opakované datované záznamy vytvářejí historii pro porovnání.© jsonscraper · vytvořeno pomocí AI

Endpoint /v1/user/by/username vyžaduje parametr username. Odpověď obsahuje mimo jiné pole follower_count, following_count, media_count, is_verified, is_private a biography. Tato sada se hodí pro snímek profilu; neobsahuje historii příspěvků a sama o sobě nevysvětluje příčinu změny ukazatelů.

Skript má záměrně úzký rozsah: získat sledovanou sadu polí v určený čas a porovnat ji s předchozími záznamy. Analytik tak například uvidí, že se mezi uloženými daty změnil počet sledujících, a může na to navázat samostatným ověřením, nezávislým na automatizovaném sběru.

Připravte klíč a seznam účtů

Nainstalujte knihovnu pro HTTP požadavky a nastavte klíč API v proměnné prostředí. Nevkládejte tajný klíč do zdrojového souboru, repozitáře ani výstupu programu. API používá parametr požadavku license_key; níže uvedená knihovna vytvoří query string sama.

python -m pip install requests
export JSONSCRAPER_INSTAGRAM_LICENSE_KEY="váš_klíč"

Seznam profilů můžete uložit do konfiguračního souboru nebo projektové proměnné. Pro první spuštění stačí jedno uživatelské jméno, abyste ověřili odpověď, přístup a ukládání dat. V příkladu je pole username nastaveno jako parametr API a klíč se načítá pouze z prostředí.

Požadavek a uložení snímku v Pythonu

Skript ověří HTTP odpověď, externí stav API a přítomnost objektu ig. Poté uloží jen hodnoty, které skutečně existují. Pokud některé pole chybí, zůstane v záznamu null: dosazení nuly by znamenalo zaměnit neznámou hodnotu za skutečnou nulu.

Článek: Jak proměnit profily na IGu v každodenní přehled změn
Shrnutí: Praktický návod na sledování veřejných profilů na IGu: volání API, bezpečné uchovávání klíče, ukládání historických snímků a výpočet změn mezi jednotlivými spuštěními.
Role obrázku: doplňující ilustrace 2 — jiný konkrétní aspekt
Sekce: Požadavek a uložení snímku v Pythonu
Vizuální námět: Přehledná infografika v ruštině znázorňující tok dat: plánovaný požadavek Pythonu na endpoint profilu IGu, soubor JSON
Schéma ukazuje cestu od požadavku na profil až po porovnání dvou uložených pozorování.© jsonscraper · vytvořeno 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"  # nahraďte profilem ze svého seznamu
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 vrátilo neočekávaný stav nebo strukturu")

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("Snímek uložen:", record["username"], record["observed_at"])

Pole a struktura příkladu odpovídají údajům o profilu popsaným pro tento endpoint. Úspěšný požadavek vrací pozorování z okamžiku dotazu; pro analýzu vývoje je třeba skript spouštět opakovaně a ukládat každý snímek. Na stránce IG Scraper API najdete základní požadavek a ukázkovou odpověď ve formátu JSON.

Výpočet změny mezi snímky

JSONL ukládá jeden záznam na řádek, takže jej lze číst standardním modulem Pythonu. Následující úryvek vybere dva poslední záznamy pro profil a vypočítá rozdíl v počtu sledujících. Výsledek vypíše pouze tehdy, když oba záznamy obsahují číselnou hodnotu.

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

Rozdíl se vztahuje výhradně ke dvěma vybraným pozorováním. Pokud některá spuštění vynecháte, interval mezi nimi bude delší; report by proto měl uvádět obě data a automaticky změnu neoznačovat jako „za den“. Pro pravidelný provoz nastavte spouštění podle plánu v cron nebo plánovači cloudové platformy. V n8n lze stejný postup sestavit z uzlů plánovače, HTTP požadavku a zápisu výsledku do databáze či tabulky; názvy uzlů a připojení úložiště se liší podle vaší instalace.

Rozšíření na více profilů

U seznamu účtů uložte uživatelská jména do samostatného souboru a projděte je ve smyčce. Stav každého požadavku ukládejte samostatně: chyba u jednoho profilu pak nesmaže úspěšně získaná data ostatních. Přidejte časový limit, protokol chyb a opakujte požadavek pouze u účtů, u nichž skončil chybou.

Jako klíč záznamu můžete použít pk, pokud jej API vrátilo, a pro přehlednost zároveň uchovávat uživatelské jméno. Identifikátor pomáhá odlišit profil od textového označení v reportu; pokud chybí, nevymýšlejte jej ani jej nenahrazujte jiným polem. Pro analytiku je užitečné uchovávat původní čas sběru v UTC a výslovně určit období porovnání.

Pokud pro daný úkol stačí získávat údaje v určité frekvenci, zdokumentovaný parametr cache_timeout umožňuje nastavit dobu ukládání do mezipaměti v sekundách; ukládání IGu do mezipaměti je ve výchozím nastavení vypnuté. Zvolte dobu s ohledem na interval sledování a uložte ji spolu s nastavením sběru, abyste při interpretaci výsledků znali parametry požadavku.

Jaký bude výsledek

Po několika spuštěních budete mít soubor s časovými snímky veřejných ukazatelů a jednoduchým vypočteným rozdílem mezi zvolenými daty. Lze jej nahrát do Google Sheets, PostgreSQL nebo analytického systému; samostatná vrstva zpracování může vytvořit upozornění, když změna překročí týmově nastavený limit. Tento limit je vaše obchodní pravidlo, nikoli vestavěná funkce API.

Endpoint profilu poskytuje pole účtu, takže k auditu nových příspěvků potřebujete odpovídající sběr médií, nikoli závěry odvozené z media_count. Dokumentace IG API uvádí samostatný endpoint pro výpis příspěvků s načítáním po stránkách pomocí user_id a parametru end_cursor; použijte jej, pokud potřebujete analyzovat samotné příspěvky. Pro popsaný výsledek — historickou tabulku ukazatelů profilu — stačí jeden požadavek na uživatele a opakované ukládání snímků.

Začněte s jedním profilem a dvěma spuštěními: ověřte správný stav odpovědi, ukládání dat a to, že chybějící údaje zůstávají výslovně neznámé. Potom přidejte seznam účtů a plán spouštění. Získáte tak reprodukovatelné pozorování s jasným intervalem a zdrojovými hodnotami, které lze ověřit a předat do dalšího analytického procesu.

Lidé

Pro tento článek zatím nejsou uvedeni žádní lidé.

Pokračujte ve čteníJak hodnotit tvůrce na IGu podle vývoje příspěvků: praktický postup v Pythonu
Přečtěte si další článek

Proměňte přečtené ve funkční integraci

Prozkoumejte API sociálních dat jsonscraper, testujte požadavky a sestavte další workflow.

Prozkoumat API