jsonscraper

Como criar um monitoramento diário de criadores do IG com Python

Um pipeline para profissionais de marketing ou analistas: obtenha dados públicos de perfis, salve snapshots e identifique mudanças sem verificar contas manualmente.

Política editorial Comunique um erro

As equipes de marketing precisam verificar dezenas de contas manualmente para saber quais criadores em potencial estão ativos, como o público está mudando e quando um perfil foi atualizado pela última vez. Uma planilha pontual fica desatualizada rapidamente: o número de seguidores e a descrição do perfil mudam, enquanto as datas de publicação e as métricas de posts individuais precisam ser coletadas novamente.

Artigo: Como criar um monitoramento diário de criadores do IG com Python
Resumo: Veja como automatizar o monitoramento diário de uma lista de perfis públicos do IG com a IG Scraper API: consultar perfis, armazenar o histórico de observações e gerar um relatório de alterações.
Função da imagem: capa — a ideia central
Seção: 
Tema visual: Um conceito de painel de pipeline de dados, mostrando uma grade organizada de cartões de perfis de redes sociais públicos que alimentam registros JSON com marcação de data e hora em um painel de análise simples c
© jsonscraper · Ilustração gerada por IA

Uma solução prática é manter um pequeno registro de observações: consultar diariamente os perfis públicos de uma lista preparada com antecedência, salvar a resposta com o horário da coleta e comparar os novos valores com os snapshots anteriores. Essa abordagem ajuda a selecionar contas para uma análise manual posterior, avaliar a atividade e preparar relatórios periódicos. Ela não substitui as análises do proprietário da conta: por exemplo, informações públicas do perfil não dão acesso às métricas internas de alcance.

Primeiro, defina o que você precisa acompanhar

Para encontrar possíveis parceiros, geralmente basta uma lista curta de campos: nome de usuário, identificador do perfil, indicação de verificação, número de seguidores, número de publicações, biografia e horário da coleta. Esses valores permitem perceber que um perfil mudou e ajudam a comparar contas de um nicho escolhido. Os campos disponíveis dependem da resposta da API; antes de processá-la, confira o JSON atual na documentação e não presuma a existência de campos que não estejam presentes.

Para acompanhar a atividade de conteúdo, você pode complementar os dados dos perfis com informações sobre publicações. O mapa da IG Scraper API lista rotas específicas para mídias e clipes de vídeo de usuários, além de solicitações de mídias e comentários. Inclua essas rotas como uma etapa separada, depois de verificar o perfil: primeiro confirme os parâmetros necessários e o formato da resposta no Postman; em seguida, registre apenas os campos realmente necessários para o seu relatório.

Uma regra útil para o monitoramento é armazenar as respostas brutas separadamente das linhas normalizadas. O JSON bruto permite verificar novamente a interpretação caso a resposta da API mude; a tabela normalizada facilita a criação de gráficos e filtros. Em ambos os casos, registre o horário da solicitação para distinguir valores atuais dos históricos.

Conecte-se à IG Scraper API

Na jsonscraper, o endereço-base da IG API é https://ig.jsonscraper.com. A documentação oficial apresenta uma solicitação de perfil pelo nome de usuário: GET /v1/user/by/username, com os parâmetros username, license_key e cache_timeout. Por exemplo, para uma conta de teste, a documentação mostra uma URL no formato https://ig.jsonscraper.com/v1/user/by/username?username=apple&license_key=YOUR_LICENSE_KEY&cache_timeout=60. Use o parâmetro de cache somente conforme as condições da rota específica e as necessidades da sua tarefa: a frequência das consultas deve corresponder à rapidez com que você precisa receber atualizações.

Para verificar a estrutura da resposta, acesse a página da IG Scraper API e abra a coleção do Postman vinculada. No exemplo, uma resposta bem-sucedida contém um status, um objeto ig com o identificador do perfil, o nome de usuário e a indicação de verificação, além de uma marca temporal. A documentação também lista grupos de rotas para usuários, mídias, pesquisa, hashtags e localizações, permitindo ampliar a coleta à medida que a tarefa analítica for definida.

Armazene a chave da API em uma variável de ambiente, e não no código-fonte ou em um aplicativo cliente. A documentação da jsonscraper recomenda manter a chave no ambiente e não incorporá-la em compilações para clientes. Restrinja o acesso à chave no fluxo de trabalho; por exemplo, disponibilize-a apenas para a tarefa de coleta em segundo plano.

Exemplo funcional mínimo em Python

O script abaixo lê nomes de usuário de uma variável de ambiente, consulta cada perfil e grava um arquivo JSONL. O formato JSONL é prático para um protótipo inicial: uma linha corresponde a um snapshot. O código salva deliberadamente o objeto de resposta inteiro, em vez de presumir que todos os campos do perfil estarão sempre presentes. Depois da primeira execução, examine a resposta real e só então crie um esquema estável para a tabela.

import json
import os
import time
from datetime import datetime, timezone
from pathlib import Path
from urllib.parse import urlencode
from urllib.request import Request, urlopen

API_KEY = os.environ["JSONSCRAPER_LICENSE_KEY"]
USERNAMES = [name.strip() for name in os.environ["IG_USERNAMES"].split(",") if name.strip()]
BASE_URL = "https://ig.jsonscraper.com/v1/user/by/username"
OUTPUT = Path("instagram_profiles.jsonl")


def fetch_profile(username: str) -> dict:
    query = urlencode({
        "username": username,
        "license_key": API_KEY,
        "cache_timeout": 60,
    })
    request = Request(f"{BASE_URL}?{query}", headers={"Accept": "application/json"})
    with urlopen(request, timeout=30) as response:
        return json.load(response)


with OUTPUT.open("a", encoding="utf-8") as output:
    for username in USERNAMES:
        collected_at = datetime.now(timezone.utc).isoformat()
        try:
            payload = fetch_profile(username)
            row = {
                "collected_at": collected_at,
                "requested_username": username,
                "ok": True,
                "payload": payload,
            }
        except Exception as exc:
            row = {
                "collected_at": collected_at,
                "requested_username": username,
                "ok": False,
                "error": str(exc),
            }

        output.write(json.dumps(row, ensure_ascii=False) + "\n")
        output.flush()
        time.sleep(1)

Antes de executar, defina a configuração no ambiente:

export JSONSCRAPER_LICENSE_KEY="sua_chave"
export IG_USERNAMES="creator_one,creator_two,creator_three"
python monitor.py

A pausa do exemplo serve para processar a lista sequencialmente com mais tranquilidade; ela não representa um limite declarado da API. Para programar a execução em produção, defina a frequência e o tratamento de erros de acordo com seu plano, a documentação e os requisitos de atualização. Se uma solicitação falhar, o registro salvo ajuda a identificar o problema, em vez de omitir a conta silenciosamente.

Normalize os dados depois de verificar a resposta

Depois de examinar a resposta da rota utilizada, escolha um conjunto estável de colunas. Por exemplo, uma tabela de observações pode incluir horário da coleta, nome de usuário, identificador do perfil, status de resposta verificado e os contadores necessários — se estiverem presentes no JSON. Defina explicitamente o comportamento para cada campo ausente: salvar um valor vazio, marcar o registro como incompleto ou encaminhá-lo para uma nova verificação.

Não substitua a linha de ontem pelo valor de hoje. O histórico de snapshots é necessário para calcular diferenças entre datas e identificar mudanças. Para o número de seguidores, calcule a diferença entre observações bem-sucedidas consecutivas do mesmo perfil; é preferível comparar pelo identificador estável em vez de usar apenas o nome de usuário, que pode mudar.

Vale a pena armazenar a resposta bruta por um período limitado se ela contiver mais dados do que o relatório exige. A tabela normalizada deve incluir somente os campos justificados pela tarefa específica. Em pesquisas sobre criadores públicos, isso costuma reduzir o volume de dados e facilitar a explicação do motivo da coleta.

Adicione uma execução diária e notificações

Em um servidor, você pode executar o script com um agendador de tarefas, como o cron; em uma ferramenta de automação, use um agendamento e uma solicitação HTTP. O fluxo básico consiste em um gatilho, na leitura da lista de perfis, na chamada sequencial da rota, na verificação de uma resposta bem-sucedida, no registro de uma linha no armazenamento e na preparação de um resumo. No n8n ou no Make, convém separar essas etapas em nós distintos para que a falha em um perfil não interrompa toda a coleta.

Para o relatório, calcule métricas simples: quantos perfis foram processados com sucesso, quais tiveram alteração no número de seguidores em relação ao snapshot anterior bem-sucedido e quando cada registro foi atualizado pela última vez. Uma lista separada de erros ajuda a identificar rapidamente nomes inválidos, perfis indisponíveis e problemas temporários nas solicitações. Se adicionar publicações, primeiro defina a profundidade do histórico e os campos necessários; depois, conecte a rota correspondente descrita na documentação.

Também vale configurar o cache com atenção. A documentação descreve cache_timeout como um parâmetro de rotas compatíveis que permite reutilizar resultados recentes. Para relatórios comparativos diários, escolha uma configuração adequada ao nível de atualização necessário; não misture uma resposta em cache com um novo ponto de controle sem indicar isso no registro.

O que esse monitoramento pode mostrar

Depois de acumular snapshots, a equipe terá um histórico verificável de observações dos perfis públicos escolhidos. Será possível comparar alterações nos contadores, encontrar registros que não são atualizados há muito tempo e criar uma lista curta de contas para avaliação manual. Se a coleta de mídias estiver disponível para a rota e a tarefa escolhidas, será possível adicionar publicações aos perfis e analisar a frequência de postagem ou os formatos de conteúdo — desde que os campos específicos estejam confirmados na documentação.

Use as métricas como filtro para o trabalho de pesquisa, não como decisão automática sobre uma parceria. O número de seguidores, por si só, não descreve a adequação do público à marca, a qualidade do conteúdo nem a viabilidade comercial do criador. Inclua uma avaliação humana do perfil e mantenha os critérios de seleção separados da coleta técnica.

Para fazer um teste, abra a coleção da IG API no Postman, configure a chave e execute uma solicitação de perfil. Em seguida, transfira os parâmetros verificados para o script ou a automação. Assim, você terá uma coleta diária reproduzível, um histórico de alterações e uma base para relatórios analíticos, sem precisar começar com um parser de páginas feito do zero.

People

No people listed for this article yet.

Keep readingComo medir a dinâmica do conteúdo dos concorrentes no IG: pipeline de API em Python
Read the next article

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