jsonscraper

Guía de ingeniería IG

Cómo scrapear IG con Python

Actualizado el 5 de marzo de 2026 3 min de lectura 15 vistas

Esta guía muestra un flujo de trabajo de datos IG de producción utilizando el mapa de puntos finales de jsonscraper, con ejemplos de respuestas reales y opciones de arquitectura prácticas.

Para cargas de trabajo de producción, el beneficio clave es la profundidad del punto final más la compatibilidad con cache_timeout en rutas importantes, lo que ayuda a reducir las llamadas duplicadas y el consumo de cuotas.

Qué vas a construir

Inicio rápido en Postman

Empieza con la colección oficial de IG, configura license_key una vez y ejecuta solicitudes en pocos clics antes de escribir código.

Paso 1

Hacer fork

Usa la colección de Postman de IG o TikTok como base de tu workspace.

Paso 2

Configurar clave

Configure license_key once in an environment variable.

Paso 3

Automatizar

Exporta snippets o ejecuta flujos con agentes de IA sobre solicitudes preparadas.

Todas las solicitudes API

Mapa completo de endpoints de la colección. Expande cada clase y haz clic en una ruta para ver parámetros y ejemplos de respuesta.

Usuario Medios Historia Destacado Ubicacion Hashtag Buscar Busqueda 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)
Ver la lista completa de puntos finales en Postman

Ejemplos de Python de la colección

Estos ejemplos usan el mismo patrón de autenticación que Postman: license_key en parámetros de consulta.

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

Patrón de solicitudes Python (license key + paginación)

Usa un helper de solicitudes compartido para mantener firma y paginación consistentes en todos los endpoints.

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)

Notas de implementación

  • Incluye siempre license_key en cada solicitud.
  • Usa cache_timeout de forma explícita para verificaciones recurrentes.
  • Guarda los campos de cursor junto con el contexto de la consulta.
  • Amplía la cobertura de rutas por clases después de validar la base.

¿Listo para lanzar tu flujo API?

Elige una API, prueba endpoints en Postman y lanza tu flujo en minutos.