jsonscraper

Slik måler du utviklingen i konkurrenters IG-innhold: API-pipeline med Python

Samle offentlige innlegg etter en tidsplan, beregn måltall på egne data og send teamet en etterprøvbar oppsummering.

Redaksjonelle retningslinjer Meld fra om en feil

Et markedsføringsteam kan se konkurrentenes innlegg i feeden, men manuell gjennomgang gir ikke noe godt svar på et konkret spørsmål: Hvilke formater og temaer får jevnlig reaksjoner, og hvilke ble bare lagt merke til én gang? Løsningen er å lagre data om offentlige innlegg daglig og sammenligne dem over tid, etter format og tilgjengelige tellere.

Artikkel: Slik måler du utviklingen i konkurrenters IG-innhold: API-pipeline med Python
Sammendrag: En praktisk metode for å overvåke offentlige IG-innlegg: kall mot IG Scraper API, normalisering av JSON, daglig lagring av øyeblikksbilder og beregning av utvikling uten å blande sammen samlede og nye reaksjoner.
Bildets rolle: Forside – hovedideen
Seksjon: 
Visuelt motiv: Et digitalt analysedashbord som visualiserer en tidslinje med offentlige innholdskort i IG-stil, engasjementstellere og daglige dataøyeblikksbilder, tydelig
© jsonscraper · AI-generert illustrasjon

Nedenfor finner du en grunnleggende pipeline med Python og IG Scraper API. Den henter innlegg fra en valgt konto, lagrer svarene i JSONL og lager en oppsummering av nytt innhold. Reaksjonstallene i en slik rapport viser verdiene API-et returnerte på innsamlingstidspunktet; øyeblikksbilder fra ulike datoer gjør det mulig å analysere endringene separat.

Bestem først hva du skal sammenligne

For et lite utvalg konkurrenter er det nok å føre en liste over offentlige kontoer og samle inn innleggene etter én fast tidsplan. Begynn med spørsmål dataene kan besvare: Hvor ofte publiseres det innhold? Hvilke innlegg er Reels eller andre formater? Hvilke temaer går igjen, og hvordan endres tilgjengelige tellere for likerklikk og kommentarer?

Skill mellom to begreper i lagringen: et innlegg og et øyeblikksbilde av det. Identifiser innlegget med en stabil ID hvis svaret inneholder en; lagre hver nye kjøring som en egen post med innsamlingstidspunkt. Da kan du se hvordan tilgjengelige tellere har endret seg, i stedet for å overskrive gårsdagens verdi med dagens.

Bruk det dokumenterte endepunktet

Dokumentasjonen fra jsonscraper oppgir adressen https://ig.jsonscraper.com og endepunktet GET /v1/user/by/username for en grunnleggende forespørsel. API-oversikten viser også GET /v1/user/medias/chunk for å hente innlegg. Kontroller nøyaktig hvilke parametere og svarfelter som gjelder, i den tilknyttede Postman-samlingen: Ikke bind behandleren til en antatt struktur før du har undersøkt det faktiske svaret på forespørselen din.

Bruk det dokumenterte eksempelet på en profilforespørsel for en første kontroll; send nøkkelen via en miljøvariabel i stedet for å skrive den inn i kildekoden:

curl -G "https://ig.jsonscraper.com/v1/user/by/username" \
  --data-urlencode "username=apple" \
  --data-urlencode "license_key=$JSONSCRAPER_LICENSE_KEY" \
  --data-urlencode "cache_timeout=60"

Eksempelet på produktsiden viser username, license_key og cache_timeout for profilendepunktet. Bruk bare parameteren på andre endepunkter hvis dokumentasjonen oppgir den der. For forespørsler om innlegg henter du de gjeldende parameternavnene fra spesifikasjonen for det aktuelle endepunktet.

Lagre svar som tidsstemplede øyeblikksbilder

Det følgende skriptet er et utgangspunkt for en produksjonskjøring: URL-en og parameterne for endepunktet for innlegg ligger i konfigurasjonen, slik at du kan fylle dem inn nøyaktig etter Postman-dokumentasjonen. Behandleren lagrer den opprinnelige JSON-en og innsamlingstidspunktet; legg til normalisering av feltene etter at du har kontrollert det faktiske svaret.

import json
import os
from datetime import datetime, timezone
from pathlib import Path

import requests

BASE_URL = "https://ig.jsonscraper.com"
USERNAME = os.environ["IG_USERNAME"]
LICENSE_KEY = os.environ["JSONSCRAPER_LICENSE_KEY"]
OUTPUT = Path("instagram_snapshots.jsonl")

# Fyll inn endepunkt og parametere fra dokumentasjonen for
# GET /v1/user/medias/chunk i Postman-samlingen.
MEDIA_PATH = os.environ["IG_MEDIA_PATH"]
MEDIA_PARAMS = json.loads(os.environ["IG_MEDIA_PARAMS_JSON"])

params = {
    **MEDIA_PARAMS,
    "username": USERNAME,
    "license_key": LICENSE_KEY,
}

response = requests.get(
    f"{BASE_URL}{MEDIA_PATH}", params=params, timeout=30
)
response.raise_for_status()
payload = response.json()

record = {
    "collected_at": datetime.now(timezone.utc).isoformat(),
    "username": USERNAME,
    "response": payload,
}
with OUTPUT.open("a", encoding="utf-8") as file:
    file.write(json.dumps(record, ensure_ascii=False) + "\n")

Skriptet inneholder med vilje ingen oppdiktede pagineringsparametere eller feltnavn: Kopier dem fra den konkrete spesifikasjonen og kontroller dem mot API-svaret. Forespørsler med tidsavbrudd og raise_for_status() gjør det mulig å fange opp nettverksfeil før resultatet lagres som vanlige data. Legg til JSON-validering og en feillogg for automatiserte kjøringer.

Legg til tidsplan og måltall

Kjør innsamlingen én gang om dagen med cron eller planleggeren i automatiseringsverktøyet ditt. For flere kontoer går du gjennom en konfigurasjonsliste, lagrer et eget øyeblikksbilde for hver konto og legger til rette for ny kjøring etter midlertidige feil. Oppbevar nøkkelen i en miljøvariabel eller en hemmelighetslagring; API-siden anbefaler også uttrykkelig at den ikke bygges inn i klientkode.

Etter at du har kontrollert svaret, normaliserer du postene i en tabell med felt som username, media_id, collected_at, innholdstype og tilgjengelige tellere. Ikke slett den opprinnelige JSON-en: Den kan være nyttig hvis svarformatet endres eller du må kontrollere en beregning.

I analyselaget beregner du antall nye innlegg per periode, medianen for tilgjengelige reaksjoner etter format og endringen i telleren for samme innlegg mellom øyeblikksbilder. Medianen reduserer virkningen av ett enkelt viralt innlegg på oppsummeringen. Sammenlign kontoer over like lange tidsrom, og vis utvalgsstørrelsen ved siden av aggregatet.

Dette får du ut

Teamet får en etterprøvbar tabell over innlegg og en daglig oppsummering av publiseringsfrekvens, fordeling på formater og utvikling i tilgjengelige reaksjoner. Informasjonen hjelper dere med å formulere hypoteser for deres egen publiseringsplan, i stedet for bare å samle skjermbilder fra feeden.

Neste steg er å sende normaliserte poster til Google Sheets, en database eller et visualiseringsverktøy og generere tekstsammendraget som et eget trinn. Hvis du kobler til KI, bør du sende den aggregerte data og be den beskrive observerte mønstre med opplysninger om periode og antall innlegg; la redaktøren ta strategiske beslutninger.

Begynn med én konto og ett endepunkt: Kontroller parametere og svarstruktur i beskrivelsen av IG Scraper API, og legg deretter konfigurasjonen inn i tidsplanen. Slik blir konkurrentovervåking en oversiktlig pipeline med lagret historikk, i stedet for en engangs manuell gjennomgang.

People

No people listed for this article yet.

Keep readingSlik scraper du IG 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