jsonscraper

Slik lager du daglig overvåking av IG-skapere med Python

En datapipeline for markedsførere og analytikere: Hent offentlige profildata, lagre øyeblikksbilder og finn endringer uten å sjekke kontoer manuelt.

Redaksjonelle retningslinjer Meld fra om en feil

Markedsføringsteam må sjekke dusinvis av kontoer manuelt for å finne ut hvilke aktuelle skapere som er aktive, hvordan publikumet endrer seg, og når en profil sist ble oppdatert. Et engangsregneark blir raskt utdatert: antall følgere og profilbeskrivelsen endres, og publiseringsdatoer og måltall for enkeltinnlegg må samles inn på nytt.

Artikkel: Slik lager du daglig overvåking av IG-skapere med Python
Sammendrag: Slik automatiserer du daglig overvåking av en liste med offentlige IG-profiler via IG Scraper API: hent profiler, lagre observasjonshistorikk og lag en rapport over endringer.
Bildets rolle: omslag – hovedideen
Seksjon: 
Visuelt motiv: Et konsept for et dashbord for datapipeline, der en ryddig samling offentlige kort for sosiale medier-profiler sender tidsstemplede JSON-poster til et enkelt analysec
© jsonscraper · AI-generert illustrasjon

En praktisk løsning er å føre en enkel observasjonslogg: Hent offentlige profiler fra en forhåndsdefinert liste én gang i døgnet, lagre svaret sammen med tidspunktet for innsamlingen, og sammenlign nye verdier med tidligere øyeblikksbilder. Denne tilnærmingen gjør det enklere å velge kontoer for videre manuell gjennomgang, vurdere aktivitet og lage regelmessige rapporter. Den erstatter ikke analysene kontoeieren har tilgang til: offentlige profilopplysninger gir for eksempel ikke tilgang til interne rekkeviddetall.

Bestem først hva du vil følge med på

For å finne potensielle samarbeidspartnere er en kort liste med felter som regel nok: brukernavn, profil-ID, verifiseringsstatus, antall følgere, antall innlegg, biografi og innsamlingstidspunkt. Disse verdiene gjør det mulig å oppdage profilendringer og sammenligne kontoer innenfor den valgte nisjen. Feltene avhenger av API-svaret. Før du behandler dataene, bør du undersøke den gjeldende JSON-strukturen i dokumentasjonen og unngå å basere deg på felter som ikke finnes der.

For å følge med på innholdsaktiviteten kan du supplere profilene med publiseringsdata. Oversikten over IG Scraper API viser egne endepunkter for brukermedier og videoklipp, i tillegg til forespørsler for medier og kommentarer. Koble dem til som et eget trinn etter profilkontrollen: Bekreft først nødvendige parametere og svarformat i Postman, og registrer deretter bare feltene rapporten faktisk trenger.

En nyttig regel for overvåking er å lagre råsvar separat fra normaliserte rader. Rå JSON gjør det mulig å kontrollere tolkningen på nytt hvis API-svaret endres, mens en normalisert tabell er praktisk for diagrammer og filtre. I begge tilfeller bør du lagre tidspunktet for forespørselen, slik at du kan skille gjeldende verdier fra historiske.

Koble til IG Scraper API

Basisadressen for jsonscrapers IG API er https://ig.jsonscraper.com. Den offisielle dokumentasjonen viser en profilforespørsel med brukernavn: GET /v1/user/by/username med parameterne username, license_key og cache_timeout. For testkontoen viser dokumentasjonen for eksempel en URL på formen https://ig.jsonscraper.com/v1/user/by/username?username=apple&license_key=YOUR_LICENSE_KEY&cache_timeout=60. Bruk hurtigbufferparameteren bare i samsvar med vilkårene for det aktuelle endepunktet og formålet ditt: Spørringsfrekvensen bør gjenspeile hvor raskt du trenger oppdateringer.

For å kontrollere svarstrukturen kan du åpne siden for IG Scraper API og gå videre til den tilknyttede Postman-samlingen. I eksemplet inneholder et vellykket svar en status, et ig-objekt med profil-ID, brukernavn og verifiseringsstatus, samt et tidsstempel. Dokumentasjonen lister også opp grupper av endepunkter for brukere, medier, søk, emneknagger og steder. Dermed kan du utvide innsamlingen etter hvert som analysebehovet blir tydeligere.

Oppbevar API-nøkkelen i en miljøvariabel, ikke i kildekoden eller en klientapplikasjon. jsonscraper anbefaler å lagre nøkkelen i miljøet og ikke bygge den inn i klientversjoner. Begrens tilgangen til nøkkelen i arbeidsflyten; for eksempel kan du la den være tilgjengelig bare for den bakgrunnsjobben som samler inn data.

Et minimalt fungerende Python-eksempel

Skriptet nedenfor leser brukernavn fra en miljøvariabel, henter hver profil og skriver til en JSONL-fil. JSONL er praktisk for en første prototype: Én linje tilsvarer ett øyeblikksbilde. Koden lagrer med hensikt hele svarobjektet i stedet for å anta at alle profilfelter alltid er til stede. Undersøk det faktiske svaret etter første kjøring, og lag først deretter et stabilt tabellskjema.

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)

Angi konfigurasjonen i miljøet før du kjører skriptet:

export JSONSCRAPER_LICENSE_KEY="din_nøkkel"
export IG_USERNAMES="creator_one,creator_two,creator_three"
python monitor.py

Pausen i eksemplet gir en roligere, sekvensiell behandling av listen; den er ikke en oppgitt API-begrensning. For en produksjonsplan bør du tilpasse intervall og feilhåndtering etter abonnementet ditt, dokumentasjonen og kravene til hvor oppdaterte dataene må være. Hvis en forespørsel mislykkes, gjør den lagrede posten det mulig å se problemet i stedet for at kontoen blir hoppet over i stillhet.

Normaliser dataene etter at du har kontrollert svaret

Når du har undersøkt svaret fra endepunktet du bruker, velger du et stabilt sett med kolonner. En observasjonstabell kan for eksempel inneholde innsamlingstidspunkt, brukernavn, profil-ID, verifisert svarstatus og relevante tellere – dersom de finnes i JSON-svaret. Definer tydelig hva som skal skje hvis et felt mangler: Lagre en tom verdi, merke posten som ufullstendig eller sende den til ny gjennomgang.

Ikke overskriv gårsdagens rad med dagens verdi. Historikken over øyeblikksbilder er nødvendig for å beregne forskjellen mellom datoer og oppdage endringer. For antall følgere beregner du differansen mellom påfølgende vellykkede observasjoner av samme profil. Sammenligning med en stabil ID er å foretrekke framfor bare brukernavnet, som kan endres.

Det kan være lurt å lagre råsvaret i en begrenset periode hvis det inneholder mer data enn rapporten trenger. Den normaliserte tabellen bør bare inneholde felter som er begrunnet i det konkrete formålet. For offentlig kartlegging av innholdsskapere reduserer dette vanligvis datamengden og gjør det enklere å forklare hvorfor opplysningene samles inn.

Legg til en daglig kjøring og varsling

På en server kan du kjøre skriptet med en jobbplanlegger, for eksempel cron, og i et automatiseringsverktøy kan du bruke en tidsplan og en HTTP-forespørsel. En enkel arbeidsflyt består av en utløser, innlesing av profillisten, sekvensielle kall til endepunktet, kontroll av vellykkede svar, lagring av en rad og utarbeidelse av en oppsummering. I n8n eller Make kan du dele de samme trinnene inn i egne noder, slik at en feil for én profil ikke stopper hele listen.

Beregn enkle rapportmåltall: Hvor mange profiler ble behandlet, hvilke endret antall følgere siden forrige vellykkede øyeblikksbilde, og når ble posten sist oppdatert? En egen feilliste gjør det enklere å oppdage ugyldige brukernavn, utilgjengelige profiler og midlertidige forespørselsproblemer. Hvis du legger til innlegg, bør du først avklare ønsket historikklengde og hvilke felter som trengs, og deretter koble til det aktuelle endepunktet fra dokumentasjonen.

Konfigurer også hurtigbufring med omtanke. Dokumentasjonen beskriver cache_timeout som en parameter for støttede endepunkter, som kan brukes til å gjenbruke nylige resultater. For en daglig sammenligningsrapport bør du velge en innstilling som passer til ønsket aktualitet. Ikke bland et hurtigbufret svar sammen med et nytt kontrollpunkt uten å merke dette i loggen.

Hva denne overvåkingen kan vise

Når du har samlet inn øyeblikksbilder over tid, får teamet en etterprøvbar observasjonshistorikk for de valgte offentlige profilene. Dere kan sammenligne endringer i tellere, finne poster som ikke har blitt oppdatert på lenge, og lage en kortliste med kontoer for manuell vurdering. Hvis medieinnsamling er tilgjengelig for det valgte endepunktet og formålet, kan du legge til innlegg for å analysere publiseringstakt eller innholdsformater – forutsatt at de aktuelle feltene er bekreftet i dokumentasjonen.

Bruk måltallene som et filter for videre undersøkelser, ikke som en automatisk beslutning om samarbeid. Antall følgere beskriver ikke alene hvor godt publikummet passer til merkevaren, innholdskvaliteten eller skaperens kommersielle egnethet. Legg til en menneskelig gjennomgang av profilen, og dokumenter utvalgskriteriene separat fra den tekniske innsamlingen.

For en testkjøring kan du åpne IG API-samlingen i Postman, konfigurere nøkkelen og sende en profilforespørsel. Flytt deretter de kontrollerte parameterne over til skriptet eller automatiseringen. Slik får du daglig innsamling som kan gjentas, en historikk over endringer og et grunnlag for analyserapporter – uten å måtte starte med en egenutviklet sideskraper.

People

No people listed for this article yet.

Keep readingSlik måler du utviklingen i konkurrenters IG-innhold: API-pipeline med Python
Read the next article

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