jsonscraper
Mercati
Torna al diario

Come trasformare i profili IG in un elenco quotidiano di modifiche

Raccogli con una pianificazione i dati pubblici dei profili, conserva le istantanee e rileva le variazioni senza inventare metriche.

Politica editoriale Segnala un errore

Quando un addetto al marketing controlla manualmente decine di profili IG pubblici, il problema principale non è il tempo necessario per aprire le pagine, ma l’assenza di una cronologia confrontabile. Un’istantanea mostra il numero di follower di oggi; due istantanee permettono di calcolare la differenza nell’intervallo scelto. Per monitorare i profili in modo semplice, si possono automatizzare le richieste, salvare solo i campi necessari e ottenere una tabella delle variazioni.

Di seguito trovi un esempio minimo funzionante in Python: recupera le informazioni di un profilo a partire dal nome utente tramite l’IG Scraper API e registra una riga JSONL con una marca temporale. Il risultato è una piccola fonte di dati storici che puoi collegare a cron, n8n o a un archivio personalizzato. La descrizione ufficiale dell’endpoint e dei parametri è disponibile nella documentazione dell’IG API.

A quale esigenza risponde un’istantanea quotidiana

Immagina che un team monitori gli account pubblici di marchi o partner e voglia rilevare variazioni nel numero di follower, di post o nello stato di verifica. La pagina mostra i valori correnti, ma non conserva da sola lo stato della settimana precedente. Occorre quindi innanzitutto stabilire quali campi sono importanti e poi salvarli insieme alla data di osservazione.

Articolo: Come trasformare i profili IG in un elenco quotidiano di modifiche
Riepilogo: Guida pratica al monitoraggio dei profili IG pubblici: chiamata API, archiviazione sicura della chiave, registrazione di istantanee storiche e calcolo delle variazioni tra un’esecuzione e l’altra.
Ruolo dell’immagine: copertina — l’idea centrale
Sezione: A quale esigenza risponde un’istantanea quotidiana
Soggetto visivo: Foto editoriale di schede stampate di profili IG, rappresentate come riquadri astratti e colorati di social media, accanto a istantanee cartacee dei dati con date e un piccolo
Un profilo mostra l’istantanea corrente; registrazioni ripetute e datate creano una cronologia da confrontare.© jsonscraper · creato con l’IA

L’endpoint /v1/user/by/username accetta il parametro obbligatorio username. La risposta include, tra gli altri, follower_count, following_count, media_count, is_verified, is_private e biography. Questi campi sono adatti a un’istantanea del profilo; non comprendono la cronologia dei post e, da soli, non spiegano la causa delle variazioni dei dati.

Lo script ha uno scopo volutamente circoscritto: acquisire un insieme osservabile di campi in un momento definito e confrontarlo con le registrazioni precedenti. In questo modo, per esempio, l’analista può vedere che il numero di follower è cambiato tra due date salvate e procedere a ulteriori verifiche separatamente dalla raccolta automatica.

Prepara la chiave e l’elenco degli account

Installa la libreria per le richieste e imposta la chiave API in una variabile d’ambiente. Non inserire il segreto nel file sorgente, nel repository o nell’output del programma. L’API usa il parametro di query license_key; la libreria qui sotto compone automaticamente la query string.

python -m pip install requests
export JSONSCRAPER_INSTAGRAM_LICENSE_KEY="la_tua_chiave"

Puoi conservare l’elenco dei profili in un file di configurazione o in una variabile del progetto. Per la prima esecuzione basta un nome utente, così puoi verificare la risposta, l’accesso e la scrittura nell’archivio. Nell’esempio, username è impostato come parametro API e la chiave viene letta solo dall’ambiente.

Richiesta e salvataggio di un’istantanea in Python

Lo script controlla la risposta HTTP, lo stato esterno dell’API e la presenza dell’oggetto ig. Poi salva solo i valori effettivamente presenti. Se manca un campo, nella registrazione rimane null: inserire zero significherebbe confondere un valore sconosciuto con uno zero reale.

Articolo: Come trasformare i profili IG in un elenco quotidiano di modifiche
Riepilogo: Guida pratica al monitoraggio dei profili IG pubblici: chiamata API, archiviazione sicura della chiave, registrazione di istantanee storiche e calcolo delle variazioni tra un’esecuzione e l’altra.
Ruolo dell’immagine: illustrazione di supporto 2 — un aspetto specifico diverso
Sezione: Richiesta e salvataggio di un’istantanea in Python
Soggetto visivo: Infografica chiara in russo che mostra un flusso di dati: richiesta pianificata in Python all’endpoint del profilo IG, file JSON
Lo schema mostra il percorso dalla richiesta del profilo al confronto tra due osservazioni salvate.© jsonscraper · creato con l’IA
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"  # sostituiscilo con un profilo del tuo elenco
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("L’API ha restituito uno stato o una struttura inattesi")

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("Istantanea salvata:", record["username"], record["observed_at"])

I campi e la struttura dell’esempio corrispondono alle informazioni sul profilo descritte per questo endpoint. Una richiesta riuscita restituisce un’osservazione relativa al momento della chiamata; per analizzare l’andamento, lo script va eseguito più volte e ogni istantanea deve essere salvata. La pagina dell’IG Scraper API mostra una richiesta di base e una risposta di esempio in formato JSON.

Calcola la variazione tra le istantanee

JSONL conserva una registrazione per riga, quindi puoi leggerlo con il modulo standard di Python. Il frammento seguente seleziona le ultime due registrazioni del profilo e calcola la differenza nel numero di follower. Mostra il risultato solo se entrambe le registrazioni contengono un valore numerico.

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

La differenza si riferisce esclusivamente alle due osservazioni selezionate. Se si saltano alcune esecuzioni, l’intervallo tra le due sarà più lungo; perciò il rapporto dovrebbe mostrare entrambe le date, invece di definire automaticamente la variazione come «giornaliera». Per lavorare con regolarità, pianifica l’esecuzione con cron o con lo scheduler di una piattaforma cloud. In n8n puoi assemblare lo stesso flusso con nodi per la pianificazione, la richiesta HTTP e la registrazione del risultato in un database o in un foglio di calcolo; i nomi dei nodi e la connessione all’archivio dipendono dalla tua installazione.

Estendi il monitoraggio a più profili

Per un elenco di account, inserisci i nomi in un file separato e scorri l’elenco con un ciclo. Salva separatamente lo stato di ogni richiesta: così un errore relativo a un profilo non cancella i dati recuperati correttamente dagli altri. Aggiungi un timeout, un registro degli errori e ripeti la richiesta solo per gli account per cui è fallita.

Puoi usare pk come chiave della registrazione, se l’API lo restituisce, conservando anche il nome utente per facilitare la lettura. L’identificatore aiuta a distinguere il profilo da un’etichetta testuale nel rapporto; se il valore manca, non va inventato né sostituito con un altro campo. Per l’analisi è utile conservare l’ora originale di raccolta in UTC e definire esplicitamente il periodo di confronto.

Se per il tuo compito è sufficiente recuperare i dati a una determinata frequenza, il parametro documentato cache_timeout consente di specificare la durata della cache in secondi; per IG la cache è disattivata per impostazione predefinita. Scegli la durata in base all’intervallo di monitoraggio e conserva il parametro insieme alle impostazioni di raccolta, così da poter tenere conto dei parametri della richiesta quando interpreti i risultati.

Quale sarà il risultato

Dopo alcune esecuzioni, avrai un file con istantanee temporali dei dati pubblici del profilo e una semplice differenza calcolabile tra le date selezionate. Puoi caricarlo in Google Sheets, PostgreSQL o in un sistema di analisi; un livello di elaborazione separato potrà generare una notifica quando la variazione supera una soglia definita dal team. La soglia è una regola aziendale, non una funzionalità integrata nell’API.

L’endpoint del profilo restituisce campi dell’account: per verificare i nuovi post serve quindi la raccolta dei contenuti, non deduzioni basate su media_count. La documentazione dell’IG API elenca un endpoint separato per i post, con caricamento a pagine tramite user_id e il parametro end_cursor; usalo se il compito richiede di esaminare i post stessi. Per il risultato descritto qui — una tabella storica dei dati del profilo — basta una richiesta per utente, ripetendo il salvataggio delle istantanee.

Inizia con un profilo e due esecuzioni: verifica che lo stato della risposta sia corretto, che le date vengano salvate e che i dati mancanti restino esplicitamente sconosciuti. Poi aggiungi l’elenco degli account e la pianificazione. Otterrai così osservazioni riproducibili, con un intervallo chiaro e i valori originali, verificabili e trasferibili al processo di analisi successivo.

Persone

Nessuna persona elencata ancora per questo articolo.

Continua a leggereCome valutare i creator IG attraverso l’andamento delle pubblicazioni: una pipeline pratica in Python
Leggi il prossimo articolo

Trasforma ciò che leggi in un'integrazione funzionante

Esplora le API per dati social di jsonscraper, prova le richieste e crea il tuo prossimo flusso di lavoro.

Esplora API