jsonscraper

Guida all'ingegneria IG

Come fare scraping di IG con Python

Aggiornato il 5 marzo 2026 3 min di lettura 15 visualizzazioni

Questa guida mostra un flusso di lavoro di dati IG di produzione utilizzando la mappa degli endpoint jsonscraper, con esempi di risposte reali e scelte pratiche di architettura.

Per i carichi di lavoro di produzione, il vantaggio principale è la profondità dell'endpoint e il supporto di cache_timeout su percorsi importanti, che aiuta a ridurre le chiamate duplicate e il consumo di quote.

Cosa costruirai

Avvio rapido in Postman

Parti dalla collezione IG ufficiale, imposta license_key una sola volta ed esegui richieste in pochi clic prima di scrivere codice.

Passaggio 1

Forchetta

Utilizza la raccolta IG o TikTok Postman come base di riferimento per lo spazio di lavoro.

Passaggio 2

Imposta la chiave

Configure license_key once in an environment variable.

Passaggio 3

Automatizzare

Esporta snippet o esegui flussi di lavoro dell'agente AI sulle richieste pronte.

Tutte le richieste API

Mappa completa degli endpoint dalla collezione. Espandi ogni classe e clicca una route per vedere parametri ed esempi di risposta.

Utente Media Storia In evidenza Posizione Hashtag Cerca Ricerca FB Audio (Musica) API Web (GraphQL)
User (30 endpoints)
Media (18 endpoints)
Story (6 endpoints)
Highlight (3 endpoints)
Location (6 endpoints)
Hashtag (8 endpoints)
Search (11 endpoints)
FB Search (2 endpoints)
Audio (Music) (2 endpoints)
Web API (GraphQL) (11 endpoints)
Visualizza l'elenco completo degli endpoint in Postman

Esempi Python dalla collezione

Questi esempi usano lo stesso modello di autenticazione di Postman: license_key nei parametri query.

Example 1: get user by username (GET /v1/user/by/username)

import requests

BASE_URL = "https://ig.jsonscraper.com"
LICENSE_KEY = "YOUR_LICENSE_KEY"

params = {
    "license_key": LICENSE_KEY,
    "username": "apple",
    "cache_timeout": 0,
}

r = requests.get(f"{BASE_URL}/v1/user/by/username", params=params, timeout=30)
r.raise_for_status()
data = r.json()

print(data["status"], data["ig"]["username"], data["ig"]["pk"])
{
  "status": "ok",
  "limits_info": {"requests_count": 7098, "requests_limit": 2000300},
  "rate_limit_reached": false,
  "ig": {"pk": 5821462185, "username": "apple", "full_name": "apple"}
}

Example 2: get user stories by username (GET /v1/user/stories/by/username)

import requests

BASE_URL = "https://ig.jsonscraper.com"
LICENSE_KEY = "YOUR_LICENSE_KEY"

params = {
    "license_key": LICENSE_KEY,
    "username": "applemusic",
    "cache_timeout": 0,
}

r = requests.get(f"{BASE_URL}/v1/user/stories/by/username", params=params, timeout=30)
r.raise_for_status()
data = r.json()

stories = data.get("ig", [])
print("stories:", len(stories))

Pattern richieste Python (license key + paginazione)

Usa un helper richieste condiviso per mantenere firma e paginazione coerenti su tutti gli endpoint.

import requests

BASE_URL = "https://ig.jsonscraper.com"
LICENSE_KEY = "YOUR_LICENSE_KEY"

def call(endpoint: str, **params):
    q = {"license_key": LICENSE_KEY, "cache_timeout": 0, **params}
    res = requests.get(f"{BASE_URL}{endpoint}", params=q, timeout=30)
    res.raise_for_status()
    return res.json()

page1 = call("/v1/user/medias/chunk", user_id="5821462185")
next_max_id = page1.get("next_max_id")
if next_max_id:
    page2 = call("/v1/user/medias/chunk", user_id="5821462185", max_id=next_max_id)

Note di implementazione

  • Includi sempre license_key in ogni richiesta.
  • Usa cache_timeout in modo esplicito per controlli ricorrenti.
  • Salva i campi cursore insieme al contesto della query.
  • Estendi la copertura delle route per classi dopo la validazione iniziale.

Pronto per avviare il flusso di lavoro API?

Scegli un'API, testa gli endpoint in Postman e avvia il tuo workflow in pochi minuti.