jsonscraper

Guia de Engenharia IG

Como fazer scraping de IG com Python

Atualizado em 5 de março de 2026 3 min de leitura 15 visualizações

Este guia mostra um fluxo de trabalho de dados IG de primeira produção usando o mapa de endpoint jsonscraper, com exemplos de respostas reais e opções práticas de arquitetura.

Para cargas de trabalho de produção, o principal benefício é a profundidade do endpoint, além do suporte a cache_timeout em rotas importantes, o que ajuda a reduzir chamadas duplicadas e queima de cota.

O que você vai construir

Início rápido no Postman

Comece pela coleção oficial de IG, defina license_key uma vez e execute requisições em poucos cliques antes de escrever código.

Passo 1

Fazer fork

Use a coleção Postman de IG ou TikTok como base do seu workspace.

Passo 2

Definir chave

Configure license_key once in an environment variable.

Passo 3

Automatizar

Exporte snippets ou execute fluxos de agentes de IA sobre requisições prontas.

Todas as requisições da API

Mapa completo de endpoints da coleção. Expanda cada classe e clique em uma rota para ver parâmetros e exemplos de resposta.

Usuario Midia Historia Destaque Localizacao Hashtag Pesquisar Pesquisa 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)
Veja a lista completa de endpoints no Postman

Exemplos em Python da coleção

Esses exemplos usam o mesmo padrão de autenticação do Postman: license_key nos parâmetros de 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))

Padrão de requisições Python (license key + paginação)

Use um helper de requisições compartilhado para manter assinatura e paginação consistentes em todos os 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 implementação

  • Inclua sempre license_key em cada requisição.
  • Use cache_timeout de forma explícita em verificações recorrentes.
  • Persista campos de cursor junto com o contexto da consulta.
  • Amplie a cobertura de rotas por classes após validar a base.

Pronto para lançar seu fluxo API?

Escolha uma API, teste endpoints no Postman e lance seu fluxo em minutos.