jsonscraper
Mercados
Voltar ao jornal

Como transformar perfis do IG em um registro diário de mudanças

Colete métricas públicas de perfis em intervalos regulares, armazene snapshots e identifique mudanças sem inventar métricas.

Política editorial Comunique um erro

Quando um profissional de marketing verifica manualmente dezenas de perfis públicos do IG, a principal perda não é o tempo gasto abrindo páginas, mas a falta de um histórico comparável. Um snapshot informa o número de seguidores hoje; dois snapshots permitem calcular a diferença no intervalo escolhido. Para monitorar perfis de forma simples, é possível automatizar a solicitação, salvar apenas os campos necessários e obter uma tabela de mudanças.

A seguir, um exemplo mínimo funcional em Python: ele obtém informações de um perfil pelo nome de usuário usando a IG Scraper API e registra uma linha JSONL com data e hora. O resultado é uma pequena fonte histórica que pode ser conectada ao cron, ao n8n ou ao seu próprio armazenamento. A descrição oficial da rota e dos parâmetros está no guia da IG API.

Que questão um snapshot diário resolve

Suponha que uma equipe acompanhe contas públicas de marcas ou parceiros e queira detectar mudanças no número de seguidores, de publicações ou no status de verificação. Consultar a página mostra os valores atuais, mas não preserva, por si só, o estado da semana passada. Portanto, primeiro é preciso definir quais campos são importantes e, em seguida, salvá-los com a data da observação.

Artigo: Como transformar perfis do IG em um registro diário de mudanças
Resumo: Guia prático para monitorar perfis públicos do IG: fazer uma solicitação à API, armazenar a chave com segurança, registrar snapshots históricos e calcular mudanças entre execuções.
Função da imagem: capa — a ideia central
Seção: Que questão um snapshot diário resolve
Tema visual: Foto editorial de cartões impressos de perfis do IG, representados como blocos coloridos abstratos de redes sociais, ao lado de snapshots de dados em papel datados e um sm
Um perfil oferece um snapshot atual; registros repetidos e datados criam um histórico para comparação.© jsonscraper · criado com IA

A rota /v1/user/by/username aceita o parâmetro obrigatório username. A resposta inclui, entre outros, follower_count, following_count, media_count, is_verified, is_private e biography. Esse conjunto serve para um snapshot do perfil; não contém o histórico de publicações e, por si só, não explica a causa das mudanças nas métricas.

O script tem um escopo deliberadamente limitado: obter um conjunto observável de campos em um horário determinado e compará-lo com registros anteriores. Assim, o analista pode ver, por exemplo, que o número de seguidores mudou entre as datas registradas e, em seguida, investigar a questão separadamente da coleta automatizada.

Prepare a chave e a lista de contas

Instale a biblioteca de solicitações e defina a chave da API em uma variável de ambiente. Não coloque o segredo no arquivo-fonte, no repositório nem na saída do programa. A API usa o parâmetro de consulta license_key; a biblioteca abaixo monta a query string automaticamente.

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

É prático manter a lista de perfis em um arquivo de configuração ou em uma variável do projeto. Para a primeira execução, basta um nome de usuário para verificar a resposta, o acesso e a gravação no armazenamento. No exemplo, o campo username é definido como parâmetro da API, e a chave é lida somente do ambiente.

Solicitação e gravação de um snapshot em Python

O script verifica a resposta HTTP, o status externo da API e a presença do objeto ig. Em seguida, salva apenas os valores explicitamente disponíveis. Se algum campo estiver ausente, o registro mantém null: inserir zero confundiria um valor desconhecido com um zero real.

Artigo: Como transformar perfis do IG em um registro diário de mudanças
Resumo: Guia prático para monitorar perfis públicos do IG: fazer uma solicitação à API, armazenar a chave com segurança, registrar snapshots históricos e calcular mudanças entre execuções.
Função da imagem: ilustração de apoio 2 — um aspecto específico diferente
Seção: Solicitação e gravação de um snapshot em Python
Tema visual: Infográfico claro em russo que mostra um fluxo de dados: solicitação agendada em Python ao endpoint de perfil do IG, arquivo JSON
O diagrama mostra o caminho da solicitação do perfil até a comparação de duas observações salvas.© jsonscraper · criado com 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"  # substitua por um perfil da sua lista
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("A API retornou um status ou uma estrutura inesperados")

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

Os campos e a estrutura do exemplo correspondem às informações de perfil descritas para essa rota. Uma solicitação bem-sucedida retorna uma observação no momento da chamada; para analisar a dinâmica, é preciso executar o script novamente e salvar cada snapshot. A página da IG Scraper API mostra uma solicitação básica e uma resposta de demonstração em formato JSON.

Calcule a mudança entre snapshots

O JSONL armazena um registro por linha, por isso pode ser lido com o módulo padrão do Python. O trecho a seguir seleciona os dois últimos registros de um perfil e calcula a diferença no número de seguidores. Ele exibe o resultado somente quando ambos os registros contêm um valor numérico.

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

A diferença corresponde estritamente às duas observações selecionadas. Se algumas execuções forem perdidas, o intervalo entre elas será maior; por isso, o relatório deve mostrar ambas as datas, em vez de chamar automaticamente a mudança de “diária”. Para um uso regular, agende a execução com cron ou com o agendador de uma plataforma na nuvem. No n8n, é possível montar o mesmo fluxo com nós de agendamento, solicitação HTTP e gravação do resultado em um banco de dados ou planilha; os nomes dos nós e a conexão com o armazenamento dependem da sua instalação.

Amplie o monitoramento para vários perfis

Para uma lista de contas, coloque os nomes em um arquivo separado e percorra-o com um loop. Salve o status de cada solicitação individualmente: assim, uma falha em um perfil não apaga os dados obtidos com sucesso para os demais. Adicione um limite de tempo, um registro de erros e uma nova tentativa apenas para as contas cujas solicitações falharam.

Como chave do registro, você pode usar pk, caso a API o retorne, mantendo também o nome de usuário para facilitar a leitura. O identificador ajuda a distinguir o perfil de um rótulo textual no relatório; se o valor não estiver disponível, não o invente nem o substitua por outro campo. Para a análise, é útil armazenar o horário original da coleta em UTC e definir explicitamente o período de comparação.

Se a tarefa exigir apenas a obtenção de informações em determinada frequência, o parâmetro documentado cache_timeout permite indicar o período de cache em segundos; para o IG, o cache fica desativado por padrão. Escolha o período de acordo com o intervalo de monitoramento e salve-o junto com as configurações de coleta, para que os parâmetros da solicitação sejam considerados na interpretação dos resultados.

O que você terá ao final

Após algumas execuções, você terá um arquivo com snapshots temporais de métricas públicas e uma diferença simples, calculável entre as datas escolhidas. É possível carregá-lo no Google Sheets, no PostgreSQL ou em um sistema analítico; uma camada de processamento separada pode gerar um alerta quando uma mudança ultrapassar o limite definido pela equipe. O limite é uma regra de negócio sua, não um recurso integrado à API.

A rota de perfil fornece campos da conta; portanto, para auditar publicações novas, é preciso coletar as mídias correspondentes, em vez de tirar conclusões a partir de media_count. O guia da IG API lista uma rota separada para obter publicações, com carregamento paginado por user_id e pelo parâmetro end_cursor; use-a se a tarefa exigir examinar as próprias publicações. Para o resultado descrito aqui — uma tabela histórica de métricas do perfil — basta uma solicitação por usuário e o salvamento repetido dos snapshots.

Comece com um perfil e duas execuções: confirme que o status da resposta está correto, que as datas são salvas e que os dados ausentes permanecem explicitamente desconhecidos. Depois, adicione a lista de contas e o agendamento. Assim, você terá observações reproduzíveis, com intervalos e valores originais claros, que podem ser verificadas e encaminhadas para um processo analítico.

Pessoas

Nenhuma pessoa listada para este artigo ainda.

Continue lendoComo avaliar criadores do IG pela evolução das publicações: um pipeline prático em Python
Leia o próximo artigo

Transforme o que lê numa integração funcional

Explore as APIs de dados sociais da jsonscraper, teste pedidos e crie o seu próximo fluxo de trabalho.

Explorar APIs