Se você está realizando scraping de marketplaces durante a noite, farming de contas do Facebook Ads por 8 horas ou automatizando postagens em massa no Instagram — você já se deparou com o problema de desconexões de sessão. O proxy muda o IP, o navegador perde cookies, o script falha na terceira hora de execução. Neste guia, vamos explorar como configurar sessões estáveis e de longa duração para tarefas que funcionam por várias horas até um dia sem parar.
O que é gerenciamento de sessão e por que é necessário
O gerenciamento de sessão é a gestão do estado da conexão entre sua ferramenta (navegador, script, bot) e o serviço-alvo ao longo de um período prolongado. Para tarefas curtas — scraping de 100 produtos em 5 minutos — isso não é crítico. Mas se a tarefa leva várias horas, é importante manter:
- O mesmo endereço IP — para que o site não suspeite de uma troca de dispositivo
- Cookies e localStorage — para autenticação e rastreamento de ações
- Fingerprint do navegador — um conjunto de características do dispositivo (User-Agent, resolução de tela, WebGL)
- Estado do script — quais páginas foram processadas, onde parou em caso de falha
Se pelo menos um parâmetro muda durante o processo — o site pode bloquear a conta, interromper o scraping de CAPTCHAs ou redefinir a sessão de autenticação.
Tarefas típicas de longa duração: farming de contas do Facebook Ads (6-12 horas de aquecimento), scraping de todos os produtos de uma categoria no Wildberries (3-8 horas), postagem em massa em 50 contas do Instagram (4-10 horas com atrasos), monitoramento de preços de concorrentes 24/7.
Problemas típicos em sessões longas
Vamos analisar o que mais frequentemente quebra sessões de longa duração e leva à interrupção da tarefa:
1. Rotação do endereço IP do proxy
Muitos serviços de proxy mudam o IP a cada 5-15 minutos por padrão. Para scraping sem autenticação, isso é aceitável, mas se você estiver logado em uma conta do Facebook Ads — a mudança de IP de Moscovo para São Petersburgo no meio da sessão levantará suspeitas. A plataforma solicitará confirmação de login, enviará um código para o telefone ou até bloqueará a conta por atividade suspeita.
Solução: usar sticky sessions (sessões fixas) — um modo em que o proxy fornece o mesmo IP por 10 minutos, 1 hora ou 24 horas. Mais detalhes sobre isso na seção abaixo.
2. Timeout de conexão do lado do proxy
Alguns provedores de proxy encerram a conexão se não houver atividade por 10-30 minutos. Se seu script faz uma pausa entre as ações (por exemplo, imitando um humano — 5 minutos lendo um produto, depois passando para o próximo), o proxy pode fechar a conexão. Ao tentar continuar, o script receberá um erro e falhará.
Solução: configurar requisições keep-alive (ping no proxy a cada 2-3 minutos) ou escolher um provedor sem timeouts rígidos. Proxies residenciais e móveis geralmente mantêm a conexão por mais tempo do que os de data center.
3. Mudança do fingerprint do navegador
Se você reinicia o navegador anti-detect ou o script cria uma nova instância do navegador — o fingerprint muda. Mesmo com o mesmo IP, o site verá que o User-Agent, a resolução da tela, a lista de fontes ou o fingerprint do canvas diferem da sessão anterior. Isso aciona sistemas de antifraude.
Solução: manter o perfil do navegador (no Dolphin Anty, AdsPower, Multilogin isso é feito automaticamente) e não criar um novo a cada execução. Se você estiver usando Selenium ou Puppeteer — mantenha o User Data Directory com cookies e configurações.
4. Perda do estado do script em caso de falha
O script fez scraping por 6 horas, processou 8000 produtos de 10000, e falhou devido a um erro de rede. Se não salvar o progresso — você terá que começar do zero. Isso é especialmente crítico para tarefas de 12+ horas.
Solução: salvar resultados intermediários em um banco de dados ou arquivo a cada N iterações (por exemplo, a cada 100 produtos). Ao reiniciar, o script continuará a partir da última posição salva.
Quais proxies são adequados para tarefas de longa duração
Nem todos os tipos de proxies são igualmente bons para sessões longas. Aqui está uma comparação com base em critérios de estabilidade e tempo de vida do IP:
| Tipo de proxy | Tempo de vida do IP | Estabilidade | Adequado para |
|---|---|---|---|
| Data centers | Ilimitado (IP estático) | Alta, mas facilmente detectável | Scraping sem autenticação, monitoramento de preços |
| Residenciais | 10 min — 24 horas (sticky sessions) | Média (depende do provedor) | Farming de contas, scraping com autenticação |
| Móveis | 5-30 minutos (mudança pelo timer do operador) | Baixa (mudanças frequentes de IP) | Tarefas curtas em redes sociais, contornando bloqueios rígidos |
| Proxies ISP | Ilimitado (IP residencial estático) | Muito alta | Tarefas longas com autenticação, farming de contas premium |
Recomendações para escolha:
- Para scraping de marketplaces sem autenticação (Wildberries, Ozon, Yandex.Market) — data centers com IP estático são adequados. Eles são baratos, rápidos, e se o site não bloqueia data centers rigidamente — eles conseguem lidar com tarefas de 12+ horas.
- Para farming de contas do Facebook Ads, TikTok Ads, Google Ads — apenas proxies residenciais ou ISP com sticky sessions de 24 horas. Proxies móveis não são adequados devido à mudança frequente de IP.
- Para automação do Instagram, TikTok — residenciais com sticky sessions de 1-6 horas. Se a tarefa for curta (postagem em 10 contas em uma hora) — proxies móveis também podem ser usados.
- Para monitoramento 24/7 (rastreamento de preços de concorrentes, scraping de notícias) — proxies ISP ou data centers, se o site não os bloquear.
Importante: Proxies móveis NÃO são adequados para tarefas de longa duração! O IP muda a cada 5-30 minutos pelo timer do operador móvel, e você não pode controlar isso. Use-os apenas para tarefas curtas (registro de conta, postagem única, contorno de CAPTCHA).
Sticky sessions: como fixar o IP por 24 horas
Sticky sessions (sessões fixas) são um modo de operação do proxy, onde você recebe o mesmo endereço IP por um período definido: 10 minutos, 1 hora, 6 horas ou 24 horas. Isso é crítico para tarefas com autenticação.
Como funcionam as sticky sessions
Normalmente, as sticky sessions são implementadas através do session ID na URL do proxy. Em vez do formato padrão:
http://username:password@proxy.example.com:8000
Você adiciona o parâmetro session:
http://username-session-mysession123:password@proxy.example.com:8000
Agora, todas as requisições com o identificador mysession123 passarão pelo mesmo IP, até que o tempo de vida da sessão expire (geralmente 10-30 minutos por padrão). Se uma sessão mais longa for necessária — o provedor pode oferecer um parâmetro de tempo:
http://username-session-mysession123-lifetime-1440:password@proxy.example.com:8000
Onde lifetime-1440 significa 1440 minutos (24 horas).
Configuração de sticky sessions em serviços populares
Em proxies residenciais: a maioria dos provedores suporta sticky sessions através de parâmetros no nome de usuário. Verifique o formato na documentação do seu provedor. Exemplos típicos:
username-session-ABC123— fixa o IP por tempo padrão (10-30 minutos)username-session-ABC123-sessionduration-60— fixa por 60 minutosusername-country-us-session-ABC123— IP dos EUA com fixação
Em proxies ISP: geralmente o IP é estático por padrão, sticky sessions não são necessárias — você sempre recebe o mesmo endereço, a menos que mude o proxy manualmente.
Em data centers: o IP é estático, não são necessárias configurações adicionais.
Exemplo de uso em um navegador anti-detect
Suponha que você esteja farming uma conta do Facebook Ads no Dolphin Anty. A tarefa — 8 horas de aquecimento (navegando em sites, assistindo vídeos, curtindo). Configuração:
- Abra o perfil do navegador no Dolphin Anty
- Vá para a seção "Proxies"
- Escolha o tipo: HTTP ou SOCKS5
- Insira o host e a porta do proxy
- No campo "Login", insira:
username-session-farm001-sessionduration-480(480 minutos = 8 horas) - Insira a senha
- Clique em "Verificar proxy" — certifique-se de que o IP é reconhecido
- Salve o perfil
Agora, durante 8 horas, todas as requisições deste perfil passarão pelo mesmo IP. Mesmo que você feche o navegador e o reabra após uma hora — ao usar o mesmo session ID (farm001), você obterá o mesmo IP.
Dica: Use IDs de sessão compreensíveis, relacionados à tarefa. Por exemplo, farm-fb-account-001, parse-wb-electronics. Isso facilitará a depuração se você tiver dezenas de tarefas paralelas.
Configuração de navegadores anti-detect para sessões longas
Navegadores anti-detect (Dolphin Anty, AdsPower, Multilogin, GoLogin, Octo Browser) são feitos especificamente para sessões de longa duração com preservação de fingerprint. Mas existem nuances de configuração que são críticas para tarefas de 8+ horas.
1. Preservação do perfil do navegador
O perfil do navegador é um conjunto de cookies, localStorage, fingerprint (User-Agent, canvas, WebGL, fontes). Todos os navegadores anti-detect preservam perfis automaticamente ao serem fechados. O principal — não crie um novo perfil a cada execução da tarefa!
Abordagem correta:
- Crie um perfil uma vez para uma tarefa específica (por exemplo, "Farming de conta FB #1")
- Configure o proxy com sticky session
- Execute a primeira execução, faça login na conta
- Feche o navegador — o perfil será salvo
- Na próxima execução, abra o MESMO perfil — a autenticação e o fingerprint serão preservados
Abordagem incorreta:
- Criar um novo perfil todos os dias para a mesma tarefa
- Excluir cookies manualmente entre execuções
- Mudar o fingerprint (User-Agent, resolução da tela) no meio da tarefa
2. Configuração do fingerprint para estabilidade
Para tarefas longas, escolha um fingerprint REALISTA que corresponda ao proxy. Se o proxy é da Rússia (Moscovo) — não coloque um User-Agent de MacBook Pro com localidade em inglês. Melhor:
- SO: Windows 10 ou 11 (os mais populares na Rússia)
- Navegador: Chrome na versão mais recente (atualiza automaticamente no anti-detect)
- Resolução da tela: 1920x1080 (a mais comum)
- Idioma: ru-RU, fuso horário: Europe/Moscow
- WebRTC: desativar ou substituir pelo IP do proxy (para que o IP real não vaze)
No Dolphin Anty e AdsPower, há a função "Criar fingerprint aleatório" — ela gera uma combinação plausível de parâmetros. Para tarefas longas, isso é mais seguro do que configurar manualmente.
3. Desativação de atualizações automáticas e reinicializações
Se a tarefa funciona por 12 horas, certifique-se de que:
- O computador não entrará em modo de suspensão (desative nas configurações de energia do Windows/macOS)
- O antivírus não reiniciará o sistema para atualizações (adiar atualizações)
- O navegador anti-detect não será atualizado automaticamente no meio da tarefa (nas configurações, desative a atualização automática ou configure para a noite)
4. Uso da API de navegadores anti-detect para automação
Dolphin Anty, AdsPower, Multilogin oferecem API para gerenciar perfis a partir de scripts. Isso permite:
- Iniciar um perfil de navegador a partir de um script Python/Node.js
- Conectar-se a ele através do Selenium ou Puppeteer
- Executar uma tarefa longa
- Fechar o perfil automaticamente ao término
Exemplo de como iniciar um perfil do Dolphin Anty via API (Python):
import requests
from selenium import webdriver
# Iniciar perfil via API Dolphin Anty
profile_id = "123456"
response = requests.get(f"http://localhost:3001/v1.0/browser_profiles/{profile_id}/start")
data = response.json()
# Conectar Selenium ao navegador iniciado
options = webdriver.ChromeOptions()
options.debugger_address = data['automation']['port']
driver = webdriver.Chrome(options=options)
# Executar tarefa
driver.get("https://example.com")
# ... seu código de scraping ou automação ...
# Fechar perfil
requests.get(f"http://localhost:3001/v1.0/browser_profiles/{profile_id}/stop")
Essa abordagem garante que o fingerprint e os cookies sejam preservados, mesmo que o script falhe — ao reiniciar, você se conectará ao mesmo perfil.
Automação e preservação de estado
Para tarefas de 8+ horas, é crítico preservar o progresso, para que em caso de falha não se comece do zero. Vamos analisar métodos para diferentes ferramentas.
1. Preservação do progresso em banco de dados
Se você está fazendo scraping de 10000 produtos do Wildberries, salve os resultados em SQLite, PostgreSQL ou MongoDB após cada 50-100 produtos. Estrutura da tabela:
CREATE TABLE parsing_progress (
id INTEGER PRIMARY KEY,
url TEXT,
status TEXT, -- 'pending', 'completed', 'error'
data TEXT, -- JSON com resultados
created_at TIMESTAMP
);
Ao iniciar, o script verifica quais URLs ainda não foram processadas (status = 'pending') e continua a partir delas. Se o script falhar — ao reiniciar, ele ignorará os produtos já processados.
2. Uso de filas de tarefas
Para tarefas complexas (por exemplo, farming de 50 contas do Facebook Ads em paralelo), use sistemas de filas: Celery (Python), Bull (Node.js), RabbitMQ. Princípio:
- Criar uma lista de tarefas (50 contas)
- Cada tarefa — independente (seu próprio perfil de navegador, seu próprio proxy)
- Trabalhadores pegam tarefas da fila e as executam
- Se um trabalhador falhar — a tarefa volta para a fila e é pegada por outro trabalhador
Isso garante que nenhuma tarefa seja perdida, mesmo que parte dos processos falhe.
3. Registro e monitoramento
Para tarefas de 12+ horas, configure um registro detalhado:
- Registre no log cada ação (abriu a página, clicou no botão, obteve dados)
- Salve capturas de tela em caso de erros (no Selenium:
driver.save_screenshot('error.png')) - Use níveis de log: INFO para ações normais, WARNING para situações suspeitas (CAPTCHA, carregamento lento), ERROR para falhas
Exemplo de configuração de registro em Python:
import logging
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s',
handlers=[
logging.FileHandler('parsing.log'),
logging.StreamHandler()
]
)
logger = logging.getLogger(__name__)
# No código
logger.info(f"Produto processado {product_id}")
logger.warning(f"Carregamento lento da página: {url}")
logger.error(f"Erro de parsing: {error}")
Monitoramento e recuperação após desconexão
Mesmo com a configuração correta do proxy e do navegador, a sessão pode se desconectar: a rede caiu, o proxy reiniciou, o site apresentou CAPTCHA. É importante detectar o problema rapidamente e restaurar a operação.
1. Verificação da disponibilidade do proxy
Antes de iniciar a tarefa e periodicamente (a cada 30-60 minutos), verifique se o proxy está funcionando:
import requests
def check_proxy(proxy_url):
try:
response = requests.get(
'https://api.ipify.org?format=json',
proxies={'http': proxy_url, 'https': proxy_url},
timeout=10
)
if response.status_code == 200:
ip = response.json()['ip']
logger.info(f"Proxy funcionando, IP: {ip}")
return True
except Exception as e:
logger.error(f"Proxy não responde: {e}")
return False
# Verificação antes de iniciar
if not check_proxy(proxy_url):
logger.error("Proxy indisponível, parando a tarefa")
exit(1)
2. Tratamento de CAPTCHA e bloqueios
Se o site apresentar CAPTCHA (Google reCAPTCHA, hCaptcha, Cloudflare Turnstile) — a tarefa é interrompida. Opções de solução:
- Solução automática de CAPTCHA: integração com serviços 2Captcha, Anti-Captcha, CapMonster. Eles resolvem CAPTCHA em 10-30 segundos, o script continua a execução.
- Troca de proxy: se o CAPTCHA apareceu devido a um IP suspeito — mude para outro proxy do pool e continue.
- Pausa e repetição: às vezes o CAPTCHA aparece devido a ações muito rápidas. Faça uma pausa de 2-5 minutos e depois repita a requisição.
3. Reinício automático em caso de falha
Envolva o código principal em try-except e, em caso de erro, reinicie a tarefa:
import time
max_retries = 3
retry_delay = 60 # segundos
for attempt in range(max_retries):
try:
# Código principal da tarefa
run_parsing()
break # Se bem-sucedido — saia do loop
except Exception as e:
logger.error(f"Erro na tentativa {attempt + 1}: {e}")
if attempt < max_retries - 1:
logger.info(f"Reiniciando em {retry_delay} segundos...")
time.sleep(retry_delay)
else:
logger.error("Número máximo de tentativas excedido, parando")
raise
4. Notificações sobre problemas
Para tarefas que funcionam à noite ou nos finais de semana, configure notificações para erros críticos:
- Bot do Telegram: envia uma mensagem em caso de erro (via biblioteca python-telegram-bot)
- Email: via SMTP (biblioteca smtplib em Python)
- SMS: via Twilio ou serviços semelhantes
Exemplo de envio de notificação no Telegram:
import requests
def send_telegram_alert(message):
bot_token = "YOUR_BOT_TOKEN"
chat_id = "YOUR_CHAT_ID"
url = f"https://api.telegram.org/bot{bot_token}/sendMessage"
requests.post(url, data={'chat_id': chat_id, 'text': message})
# Em caso de erro
try:
run_parsing()
except Exception as e:
send_telegram_alert(f"⚠️ Erro de parsing: {e}")
Cenários práticos de uso
Vamos analisar tarefas específicas e a configuração ideal de gerenciamento de sessão para cada uma.
Cenário 1: Farming de conta do Facebook Ads (8 horas de aquecimento)
Tarefa: Aquecer uma nova conta do Facebook Ads antes de iniciar a publicidade. É necessário imitar o comportamento de um usuário comum: acessar o Facebook, ler o feed, assistir vídeos, curtir, clicar em anúncios. Um total de 8 horas de atividade com intervalos.
Configuração:
- Proxy: Residencial com sticky session de 8-12 horas, país — o mesmo indicado na conta (se a conta é dos EUA — proxy dos EUA)
- Navegador: Dolphin Anty ou AdsPower, criar um perfil separado para essa conta
- Fingerprint: Realista para o país (Windows 10, Chrome, resolução 1920x1080, idioma en-US para os EUA)
- Automação: Script em Selenium com atrasos aleatórios (5-15 minutos entre ações), imitação de rolagem e movimento do mouse
- Preservação do progresso: Registro de todas as ações em um arquivo, para que em caso de falha continue do último ponto
Riscos: Mudança de IP no meio da sessão — o Facebook solicitará confirmação de login. Ações muito rápidas — a conta ficará sob suspeita.
Cenário 2: Scraping de todos os produtos da categoria no Wildberries (6 horas)
Tarefa: Scraping de todos os produtos da categoria "Eletrônicos" no Wildberries (cerca de 50000 produtos). É necessário obter nome, preço, classificação, número de avaliações. O scraping é feito sem autenticação.
Configuração:
- Proxy: Data center com IP estático (Wildberries geralmente não bloqueia data centers rigidamente) ou residencial com sticky session de 6+ horas
- Navegador: Não é obrigatório, pode usar requests + BeautifulSoup (mais rápido) ou Selenium (se o site for em JavaScript)
- Preservação do progresso: Banco de dados SQLite, salvar a cada 100 produtos. Ao reiniciar, ignorar os já processados.
- Tratamento de erros: Se o produto não carregar (404, timeout) — ignorar e continuar, registrar no log
Riscos: Wildberries pode apresentar CAPTCHA em requisições muito frequentes. Solução — adicionar um atraso de 1-3 segundos entre os produtos ou usar um pool de proxies com rotação.
Cenário 3: Postagem em massa em 30 contas do Instagram (5 horas)
Tarefa: Publicar a mesma postagem em 30 contas do Instagram dos clientes. Para cada conta — seu próprio texto e hashtags. É necessário fazer com atrasos, para não parecer spam.
Configuração:
- Proxy: Residenciais com sticky session de 1-2 horas, para cada conta — seu próprio proxy (para que as contas não sejam vinculadas pelo IP)
- Navegador: Dolphin Anty, criar 30 perfis (um para cada conta), em cada um — seu próprio proxy
- Automação: Script inicia os perfis um a um, faz a postagem via Instagram Web ou API, fecha o perfil. Atraso entre contas — 10-15 minutos.
- Preservação do progresso: Lista de contas em CSV, marcar o status (posted/pending/error)
Riscos: O Instagram pode bloquear a conta por ações em massa. Solução — adicionar atrasos aleatórios, imitar o comportamento humano (rolar o feed antes da postagem).
Cenário 4: Monitoramento de preços de concorrentes no Ozon 24/7
Tarefa: Monitorar os preços de 500 produtos de concorrentes no Ozon a cada hora, registrar as mudanças em um banco de dados. A tarefa funciona constantemente.
Configuração:
- Proxy: Proxies ISP com IP estático (nunca muda) ou data center
- Automação: Tarefa Cron (Linux) ou Agendador de Tarefas (Windows), executa o script a cada hora
- Preservação de dados: PostgreSQL ou MySQL, tabela com campos: product_id, price, timestamp
- Tratamento de erros: Se o Ozon estiver indisponível (erro 500) — ignorar a iteração, registrar no log, repetir em uma hora
Riscos: Ozon pode bloquear o IP em requisições muito frequentes. Solução — usar um pool de 3-5 proxies com rotação.
Conclusão
O gerenciamento de sessão para tarefas longas é uma combinação da escolha correta de proxies, configuração do navegador anti-detect e automação confiável com preservação de progresso. Pontos-chave:
- Para tarefas com autenticação (farming de contas, trabalho com painéis de anúncios) use proxies residenciais ou ISP com sticky sessions de 6-24 horas
- Para scraping sem autenticação, data centers com IP estático são adequados — eles são mais baratos e rápidos
- Proxies móveis NÃO são adequados para tarefas de longa duração devido à mudança frequente de IP
- Preserve o perfil do navegador e não mude o fingerprint no meio da tarefa
- Certifique-se de registrar o progresso e configurar reinícios automáticos em caso de falhas
- Para tarefas críticas, configure notificações sobre problemas (Telegram, email)
Se você planeja executar tarefas por 8+ horas com autenticação (farming de contas, automação de redes sociais, trabalho com painéis de anúncios), recomendamos experimentar proxies residenciais com suporte a sticky sessions — eles garantem um IP estável durante toda a sessão e minimizam o risco de bloqueios. Para scraping de marketplaces e monitoramento de preços sem autenticação, proxies de data center são adequados — eles são mais rápidos e baratos com a mesma estabilidade de conexão.