jsonscraper
Markeder
Tilbake til journalen

Slik gjør du IG-profiler om til en daglig endringslogg

Hent offentlige profilverdier etter en tidsplan, lagre øyeblikksbilder og registrer endringer uten å finne på måltall.

Redaksjonelle retningslinjer Meld fra om en feil

Når en markedsfører sjekker dusinvis av offentlige IG-profiler manuelt, er det største tidstapet ikke å åpne sidene, men mangelen på en sammenlignbar historikk. Ett øyeblikksbilde viser antall følgere i dag; to øyeblikksbilder lar deg beregne forskjellen over et valgt tidsrom. For enkel profilovervåking kan du automatisere forespørselen, lagre bare feltene du trenger og lage en endringstabell.

Nedenfor finner du et minimalt, fungerende eksempel i Python: Det henter profilinformasjon etter brukernavn via IG Scraper API og skriver en JSONL-linje med et tidsstempel. Resultatet er et lite historikkgrunnlag som kan kobles til cron, n8n eller din egen lagringsløsning. Den offisielle beskrivelsen av endepunktet og parameterne står i referansen for IG API.

Hvilket spørsmål løser et daglig øyeblikksbilde?

Anta at et team følger offentlige kontoer for merkevarer eller samarbeidspartnere og ønsker å oppdage endringer i antall følgere, innlegg eller verifiseringsstatus. En profilside viser gjeldende verdier, men lagrer ikke i seg selv tilstanden fra forrige uke. Derfor må du først bestemme hvilke felt som er viktige, og deretter lagre dem med datoen de ble observert.

Artikkel: Slik gjør du IG-profiler om til en daglig endringslogg
Sammendrag: En praktisk veiledning i overvåking av offentlige IG-profiler: API-forespørsler, sikker lagring av nøkkelen, historiske øyeblikksbilder og beregning av endringer mellom kjøringer.
Bilderolle: omslagsbilde – hovedideen
Del: Hvilket spørsmål løser et daglig øyeblikksbilde?
Visuelt motiv: Redaksjonelt foto av utskrevne IG-profilkort fremstilt som abstrakte, fargede sosiale medier-fliser ved siden av daterte papirutskrifter med dataøyeblikksbilder og en sm
En profil gir et øyeblikksbilde av nåsituasjonen; gjentatte, daterte registreringer skaper en historikk som kan sammenlignes.© jsonscraper · laget med KI

Endepunktet /v1/user/by/username krever parameteren username. Svaret inneholder blant annet follower_count, following_count, media_count, is_verified, is_private og biography. Dette passer til et profiløyeblikksbilde; det inneholder ikke en historikk over innlegg og forklarer ikke i seg selv hvorfor verdiene endret seg.

Skriptet har med vilje et avgrenset formål: å hente et sett med observerbare felt på et bestemt tidspunkt og sammenligne dem med tidligere registreringer. Analytikeren kan for eksempel se at antall følgere endret seg mellom datoene som ble lagret, og undersøke dette videre utenfor den automatiserte innsamlingen.

Gjør klar nøkkelen og kontolisten

Installer forespørselsbiblioteket, og angi API-nøkkelen i en miljøvariabel. Ikke legg hemmeligheten i kildefilen, et kodearkiv eller programmets utskrift. API-et bruker forespørselsparameteren license_key; biblioteket nedenfor lager query string automatisk.

python -m pip install requests
export JSONSCRAPER_INSTAGRAM_LICENSE_KEY="din_nøkkel"

Du kan lagre profillisten i en konfigurasjonsfil eller en prosjektvariabel. For første kjøring holder det med ett brukernavn, slik at du kan kontrollere svaret, tilgangen og lagringen. I eksemplet angis username som en API-parameter, mens nøkkelen bare leses fra miljøet.

Hent og lagre et øyeblikksbilde med Python

Skriptet kontrollerer HTTP-svaret, API-ets eksterne status og at objektet ig finnes. Deretter lagrer det bare verdier som faktisk er tilgjengelige. Hvis et felt mangler, blir null stående i registreringen: Å sette inn null ville blandet en ukjent verdi sammen med en faktisk nullverdi.

Artikkel: Slik gjør du IG-profiler om til en daglig endringslogg
Sammendrag: En praktisk veiledning i overvåking av offentlige IG-profiler: API-forespørsler, sikker lagring av nøkkelen, historiske øyeblikksbilder og beregning av endringer mellom kjøringer.
Bilderolle: illustrasjon 2 – et annet konkret aspekt
Del: Hent og lagre et øyeblikksbilde med Python
Visuelt motiv: Tydelig infografikk på russisk som viser en dataflyt: planlagt Python-forespørsel til IG-profilens endepunkt, JSON-fi
Diagrammet viser veien fra profilforespørselen til sammenligningen av to lagrede observasjoner.© jsonscraper · laget med KI
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"  # bytt ut med en profil fra listen din
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-et returnerte uventet status eller 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("Øyeblikksbilde lagret:", record["username"], record["observed_at"])

Feltene og strukturen i eksemplet samsvarer med profilinformasjonen som er beskrevet for dette endepunktet. En vellykket forespørsel gir en observasjon på forespørselstidspunktet; for å analysere utviklingen må skriptet kjøres på nytt, og hvert øyeblikksbilde må lagres. Siden for IG Scraper API viser en grunnleggende forespørsel og et eksempel på svar i JSON-format.

Beregn endringen mellom øyeblikksbilder

JSONL lagrer én registrering per linje, så du kan lese filen med Pythons standardbibliotek. Den følgende kodesnutten finner de to siste registreringene for en profil og beregner forskjellen i antall følgere. Resultatet skrives bare ut når begge registreringene inneholder en tallverdi.

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

Forskjellen gjelder nøyaktig de to valgte observasjonene. Hvis du hopper over kjøringer, blir tidsrommet mellom dem lengre; rapporten bør derfor vise begge datoene i stedet for automatisk å omtale endringen som «daglig». Sett opp en planlagt kjøring med cron eller en skytjenestes planlegger. I n8n kan du sette sammen samme arbeidsflyt med noder for planlegging, HTTP-forespørsel og lagring av resultatet i en database eller et regneark; nodenavnene og tilkoblingen til lagringen avhenger av oppsettet ditt.

Utvid til flere profiler

For en kontoliste kan du legge brukernavnene i en egen fil og gå gjennom dem med en løkke. Lagre statusen for hver forespørsel separat: Da sletter ikke en feil for én profil data som ble hentet for de andre. Legg til en tidsavbruddsgrense, en feillogg og en ny kjøring bare for kontoer der forespørselen mislyktes.

Du kan bruke pk som nøkkel for en registrering hvis API-et returnerte den, og samtidig lagre brukernavnet for å gjøre informasjonen lettere å lese. En identifikator gjør det mulig å skille profilen fra en tekstetikett i rapporten; hvis verdien mangler, skal du ikke finne på en eller erstatte den med et annet felt. For analyse er det nyttig å lagre det opprinnelige innsamlingstidspunktet i UTC og angi sammenligningsperioden tydelig.

Hvis oppgaven bare krever at du henter informasjon med en bestemt frekvens, kan den dokumenterte parameteren cache_timeout angi en bufreperiode i sekunder; bufre er som standard slått av for IG. Velg en varighet som passer overvåkingsintervallet, og lagre den sammen med innsamlingsinnstillingene, slik at du kan ta forespørselsparametrene med i betraktningen når resultatene tolkes.

Hva du får ut

Etter flere kjøringer har du en fil med tidsstemplede øyeblikksbilder av offentlige profilverdier og en enkel beregnet forskjell mellom valgte datoer. Du kan laste filen inn i Google Sheets, PostgreSQL eller et analysesystem; et eget behandlingslag kan sende et varsel når endringen overskrider en terskel teamet har satt. Terskelen er en forretningsregel dere definerer, ikke en innebygd API-funksjon.

Profilendepunktet gir kontofelt. Hvis du skal kontrollere nye innlegg, trenger du derfor en egen innsamling av medier, ikke slutninger basert på media_count. Referansen for IG API lister opp et separat endepunkt for uthenting av innlegg med sidevis innlasting via user_id og parameteren end_cursor; bruk det hvis oppgaven krever at du undersøker selve innleggene. For resultatet som beskrives her – en historisk tabell med profilverdier – holder det med én forespørsel per bruker og gjentatt lagring av øyeblikksbilder.

Begynn med én profil og et par kjøringer: Kontroller at svarstatusen er korrekt, at datoene lagres, og at manglende data forblir tydelig ukjente. Legg deretter til en kontoliste og en tidsplan. Slik får du en reproduserbar observasjon med et tydelig tidsrom og opprinnelige verdier, som kan kontrolleres og sendes videre i en analyseprosess.

Mennesker

Ingen personer er oppført for denne artikkelen ennå.

Fortsett å leseSlik vurderer du IG-skapere ut fra publiseringstakt: en praktisk Python-pipeline
Les neste artikkel

Gjør det du leser til en fungerende integrasjon

Utforsk jsonscrapers API-er for sosiale data, test forespørsler og bygg neste arbeidsflyt.

Utforsk API-er