A coleta de dados de fóruns e classificados é uma tarefa criticamente importante para profissionais de marketing, analistas de mercado e proprietários de negócios. O parsing de Avito para monitoramento de preços de concorrentes, coleta de contatos de fóruns do setor, análise de avaliações em plataformas especializadas — todas essas tarefas enfrentam um problema comum: os sites bloqueiam ativamente a coleta automática de dados. Neste artigo, vamos discutir como configurar um parsing estável através de proxies e evitar bans.
Por que fóruns e classificados bloqueiam parsing
Os proprietários das plataformas protegem seus dados por várias razões. Em primeiro lugar, o parsing em massa cria uma carga nos servidores — um parser pode gerar milhares de solicitações por hora, o que equivale a visitas ao site por centenas de usuários simultaneamente. Em segundo lugar, os dados coletados são frequentemente utilizados por concorrentes: os preços do Avito vão para sistemas de monitoramento, e os contatos de fóruns vão para bases de vendas frias.
Sistemas de proteção modernos analisam muitos parâmetros: a frequência de solicitações de um único IP, padrões de comportamento (o parser abre páginas muito rapidamente e de forma sequencial), cabeçalhos de navegador, presença de JavaScript. Por exemplo, o Avito utiliza proteção em múltiplas camadas: verificação de User-Agent, análise de cookies, fingerprinting de navegador, captchas em caso de atividade suspeita.
Sinais típicos que podem levar ao seu bloqueio:
- Um único IP — se todas as solicitações vêm de um único IP, isso resulta em banimento imediato
- Alta frequência de solicitações — um usuário comum não consegue abrir 10 páginas por segundo
- Ausência de cookies e JavaScript — scripts simples não executam JS e não salvam cookies
- User-Agent suspeito — versões antigas de navegadores ou discrepâncias nos cabeçalhos
- Navegação sequencial de páginas — parsing estritamente em ordem (página 1, 2, 3...) parece não natural
Quais proxies são adequados para parsing de fóruns
A escolha do tipo de proxy depende do volume de dados, orçamento e nível de proteção do site alvo. Vamos considerar três opções principais e suas aplicações para parsing.
| Tipo de proxy | Velocidade | Confiança dos sites | Melhor para |
|---|---|---|---|
| Proxies de data center | Muito alta (100+ Mbps) | Baixa (fácil de detectar) | Fóruns pequenos sem proteção, parsing de arquivos antigos |
| Proxies residenciais | Média (10-50 Mbps) | Alta (IPs reais de redes domésticas) | Avito, fóruns grandes, sites com proteção |
| Proxies móveis | Média (5-30 Mbps) | Máxima (IPs de operadoras móveis) | Plataformas com proteção rigorosa, coleta de contatos |
Proxies de data center — a opção mais barata, adequada para tarefas simples. Se você precisa fazer parsing de um pequeno fórum temático ou um classificado sem proteção séria, isso é suficiente. A velocidade permite processar dezenas de milhares de páginas por hora. Mas Avito, YouDo, forum.ru e outras grandes plataformas rapidamente detectarão esses IPs e os bloquearão.
Proxies residenciais — o equilíbrio ideal entre preço e qualidade para a maioria das tarefas. Esses são IPs reais de usuários domésticos, que os sites não conseguem distinguir de visitantes normais. Para parsing de Avito, Yandex.Services, fóruns grandes, essa é a escolha padrão. Um ponto importante: proxies residenciais geralmente são vendidos com pagamento por tráfego, então otimize suas solicitações — não carregue imagens e scripts desnecessários.
Proxies móveis — máxima confiabilidade para casos complexos. Os IPs de operadoras móveis (MTS, Beeline, MegaFon) têm o mais alto nível de confiança, pois um único IP pode ter milhares de usuários reais (tecnologia CGNAT). Use para plataformas com proteção rigorosa ou quando precisar coletar dados críticos sem risco de banimento.
Parsing de Avito: características e configuração
Avito é uma das plataformas mais protegidas da Runet. O sistema anti-parsing inclui verificação de JavaScript, fingerprinting de navegador, análise de comportamento, captchas em caso de suspeita mínima. Um script simples com requests não funcionará — você receberá uma página em branco ou uma captcha já na terceira solicitação.
O que é necessário para um parsing estável do Avito:
Componentes obrigatórios:
1. Proxies residenciais ou móveis com rotação a cada 5-10 minutos
2. Navegador headless (Selenium, Puppeteer, Playwright) para execução de JavaScript
3. Cabeçalhos de navegador realistas e User-Agent da versão atual do Chrome
4. Atrasos entre solicitações: 3-7 segundos por página
5. Armazenamento de cookies entre sessões
Uma tarefa típica é o monitoramento de preços de concorrentes. Você precisa coletar anúncios em sua categoria todos os dias e acompanhar as mudanças. Para uma categoria com 500-1000 anúncios, serão necessárias cerca de 50-100 solicitações (considerando paginação e cartões de produtos). Com a configuração correta, isso levará de 10 a 15 minutos e 1-2 GB de tráfego de proxies residenciais.
Configuração passo a passo do parser para Avito:
- Obtenha proxies — solicite um pool de IPs residenciais com rotação. Para monitoramento diário de uma categoria, 10-20 GB de tráfego por mês são suficientes.
- Configure o navegador headless — use Selenium ou Puppeteer. Importante: ative o modo headless, mas adicione parâmetros para contornar a detecção (window.navigator.webdriver = false).
- Configure proxies no navegador — passe os dados do proxy ao iniciar o navegador. Para Selenium, isso são os parâmetros --proxy-server, para Puppeteer — args em puppeteer.launch().
- Adicione comportamento realista — atrasos aleatórios de 3-7 segundos, rolagem da página antes de coletar dados, movimento do mouse (para Selenium).
- Salve cookies — após a primeira visita, salve cookies e use-os nas sessões seguintes. Isso reduz a suspeita.
- Troque IP regularmente — rotação a cada 5-10 minutos ou a cada 20-30 solicitações. Não use um único IP para todo o parsing.
Um erro crítico de iniciantes é fazer parsing muito rápido. Mesmo com proxies, se você abre páginas a cada segundo, o sistema detectará o bot pelo padrão de comportamento. Um usuário comum lê um anúncio por 10-30 segundos, rola para baixo, volta à busca. Seu parser deve imitar isso: atrasos, rolagem, às vezes mudando para categorias vizinhas.
Coleta de dados de fóruns: estratégias e ferramentas
Fóruns variam em nível de proteção. Fóruns antigos em phpBB ou vBulletin geralmente não têm proteção anti-bot séria — proxies de data center e um parser simples são suficientes. Plataformas modernas (forum.ru, fóruns especializados do setor) usam Cloudflare ou seus próprios sistemas de proteção.
Tarefas típicas de parsing de fóruns:
- Coleta de contatos — e-mails, telefones, Telegram de assinaturas e mensagens de usuários
- Monitoramento de menções de marca — acompanhamento de avaliações sobre sua empresa ou concorrentes
- Análise de sentimentos — coleta de opiniões sobre produtos, serviços, tendências do setor
- Busca de leads — pessoas que estão procurando uma solução para sua tarefa (por exemplo, em fóruns de construção, procuram empreiteiros)
Para fóruns pequenos (até 10.000 páginas), ferramentas prontas funcionam bem: Octoparse, ParseHub, WebHarvy. Elas têm uma interface visual — você simplesmente clica nos elementos que deseja coletar, e a ferramenta cria o parser. Nas configurações, você indica proxies, atrasos e inicia a coleta.
Para projetos grandes (centenas de milhares de páginas), um parser personalizado é necessário. Frameworks populares: Scrapy (Python), Puppeteer (JavaScript), Playwright (suporte a todas as linguagens). Eles permitem configurar flexivelmente a lógica de navegação, tratamento de erros, parsing distribuído através de um pool de proxies.
Exemplo de estratégia para parsing de um fórum do setor:
Tarefa: coletar contatos de especialistas de um fórum de construção (50.000 usuários, 500.000 mensagens).
1. Usamos proxies residenciais com um pool de 50-100 IPs
2. Fazemos parsing da lista de usuários (50.000 perfis) a uma velocidade de 500 perfis/hora (atraso de 7 segundos)
3. Mudamos o IP a cada 100 perfis (a cada 12 minutos)
4. Extraímos e-mails, sites, assinaturas com contatos dos perfis
5. Tempo total: 100 horas (4 dias de trabalho contínuo)
6. Tráfego: cerca de 20-30 GB de proxies residenciais
Um ponto importante: muitos fóruns exigem registro para visualizar contatos ou seções ocultas. Crie várias contas com antecedência (manualmente, de diferentes IPs), mantenha-as por 1-2 semanas, faça algumas postagens. Use essas contas para parsing — um usuário autenticado levanta menos suspeitas.
Rotação de IP e gerenciamento de sessões
A rotação correta de IP é a chave para um parsing estável a longo prazo. Existem duas abordagens principais: rotação por tempo e rotação por número de solicitações.
Rotação por tempo: você muda o IP a cada N minutos. Adequado para tarefas onde a previsibilidade é importante. Por exemplo, você faz parsing do Avito a cada 5 minutos mudando o IP — assim você garante que não excederá o limite de solicitações de um único endereço. Desvantagem: se o parser falhar ou desacelerar, você perde o IP em vão.
Rotação por solicitações: você muda o IP a cada N solicitações (por exemplo, a cada 20-50 páginas). Consumo de proxies mais eficiente, mas requer contagem precisa. Se o site limita 100 solicitações por IP por hora, configure a rotação para 80 solicitações — você deixa uma margem para erros.
| Plataforma | Rotação recomendada | Atraso entre solicitações |
|---|---|---|
| Avito | A cada 5-10 minutos ou 20-30 solicitações | 3-7 segundos |
| YouDo, Profi.ru | A cada 10-15 minutos ou 40-50 solicitações | 4-8 segundos |
| Fóruns com Cloudflare | A cada 15-20 minutos ou 60-80 solicitações | 5-10 segundos |
| Fóruns simples (phpBB, vBulletin) | A cada 30-60 minutos ou 200-300 solicitações | 2-5 segundos |
Gerenciamento de sessões: quando você muda o IP, decida — deve resetar a sessão (cookies, localStorage) ou mantê-la. Para parsing autenticado (fóruns, contas pessoais), mantenha a sessão, mas mude o IP com menos frequência — caso contrário, o site suspeitará que a conta foi invadida (logins de diferentes cidades). Para dados públicos (Avito sem autenticação), resete tudo ao mudar o IP — cada IP parece um novo usuário.
Uma técnica avançada — sticky sessions (sessões fixas). Alguns provedores de proxies permitem "fixar" um IP por 10-30 minutos. Você obtém um IP, faz todas as solicitações a partir dele dentro de uma tarefa lógica (por exemplo, parsing de uma categoria do Avito), depois muda para um novo IP para a próxima categoria. Isso é mais natural do que mudar o IP no meio da navegação.
Configuração de parsers populares para proxies
Vamos considerar a configuração de proxies em ferramentas populares de parsing. Exemplos para especialistas técnicos que escrevem seus próprios parsers.
Scrapy (Python): adicione middleware para rotação de proxies. Crie uma lista de proxies em settings.py e use o middleware RandomProxy para rotação automática em cada solicitação.
# settings.py
ROTATING_PROXY_LIST = [
'http://user:pass@proxy1.example.com:8000',
'http://user:pass@proxy2.example.com:8000',
'http://user:pass@proxy3.example.com:8000',
]
DOWNLOADER_MIDDLEWARES = {
'rotating_proxies.middlewares.RotatingProxyMiddleware': 610,
'rotating_proxies.middlewares.BanDetectionMiddleware': 620,
}
Puppeteer (JavaScript): passe o proxy ao iniciar o navegador. Para rotação, crie um pool de proxies e escolha um aleatoriamente a cada nova inicialização do browser.
const puppeteer = require('puppeteer');
const proxyList = [
'proxy1.example.com:8000',
'proxy2.example.com:8000'
];
const proxy = proxyList[Math.floor(Math.random() * proxyList.length)];
const browser = await puppeteer.launch({
args: [
`--proxy-server=${proxy}`,
'--no-sandbox'
]
});
// Autenticação do proxy
const page = await browser.newPage();
await page.authenticate({
username: 'user',
password: 'pass'
});
Selenium (Python): configure o proxy através das opções do Chrome. Para autenticação HTTP, use uma extensão ou passe as credenciais na URL.
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument('--proxy-server=http://user:pass@proxy.example.com:8000')
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-blink-features=AutomationControlled')
driver = webdriver.Chrome(options=chrome_options)
driver.get('https://www.avito.ru/moskva/kvartiry')
Parsers prontos (Octoparse, ParseHub): nas configurações da tarefa, encontre a seção "Proxy" ou "IP Rotation". Adicione a lista de proxies no formato host:port:user:pass ou indique a URL da API para rotação. Ative a opção "Rotate on each request" ou "Rotate every N minutes".
Técnicas para contornar proteção anti-bot
Proxies resolvem o problema de bloqueio por IP, mas sistemas modernos de proteção analisam dezenas de outros parâmetros. Aqui está um conjunto de medidas para contornar sistemas anti-bot.
1. User-Agent e cabeçalhos realistas: use versões atuais de navegadores. Não coloque User-Agent do Chrome 90 se o Chrome 120 foi lançado. Verifique a correspondência dos cabeçalhos: se o User-Agent diz "Windows", mas o cabeçalho sec-ch-ua-platform diz "Linux" — você será detectado.
# Um bom conjunto de cabeçalhos para 2024
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Accept-Language': 'pt-BR,pt;q=0.9,en-US;q=0.8,en;q=0.7',
'Accept-Encoding': 'gzip, deflate, br',
'DNT': '1',
'Connection': 'keep-alive',
'Upgrade-Insecure-Requests': '1'
}
2. Contornando a detecção de navegadores headless: Selenium e Puppeteer têm, por padrão, sinais de automação (propriedade navigator.webdriver = true). Use plugins stealth ou patches para ocultar esses sinais.
// Puppeteer Stealth Plugin
const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
puppeteer.use(StealthPlugin());
const browser = await puppeteer.launch({headless: true});
3. Fingerprinting de JavaScript: os sites coletam a impressão digital do navegador (canvas fingerprint, WebGL, fontes, resolução da tela). Para contornar isso, use a randomização desses parâmetros ou perfis reais de navegador. Ferramentas: FingerprintJS Randomizer, Multilogin (plataforma com perfis prontos).
4. Tratamento de captchas: se a captcha aparecer, use serviços de reconhecimento: 2Captcha, Anti-Captcha, CapMonster. Eles custam de $1 a $3 por 1000 captchas. A integração via API leva de 10 a 15 minutos. Para reCAPTCHA v2/v3, existem bibliotecas prontas.
5. Padrões de comportamento: adicione aleatoriedade nas ações. Não abra páginas estritamente a cada 5 segundos — varie de 3 a 8 segundos. Às vezes, faça pausas de 30-60 segundos, imitando a leitura de uma página longa. Em fóruns, às vezes, visite perfis de usuários, e não apenas colete tópicos.
Importante: Quanto mais complexa a proteção do site, mais devagar deve operar o parser. Para Avito, o ideal é 500-1000 páginas por hora de um único fluxo. Se precisar de mais — inicie vários parsers paralelos com diferentes pools de proxies, mas cada um deve operar devagar e de forma natural.
Conclusão
O parsing de fóruns e classificados é uma tarefa que requer uma abordagem abrangente. Proxies resolvem o problema de bloqueio por IP, mas para um funcionamento estável são necessários cabeçalhos corretos, comportamento realista, contorno de fingerprinting e rotação adequada. A escolha do tipo de proxy depende do nível de proteção do site alvo: para fóruns simples, proxies de data center são suficientes; para Avito e grandes plataformas, são necessários IPs residenciais ou móveis.
Princípios-chave para um parsing bem-sucedido: devagar e de forma natural, rotação regular de IP, uso de navegadores headless para sites complexos, tratamento de captchas quando necessário. Não busque velocidade — é melhor coletar 500 páginas por hora de forma estável durante meses do que 5000 por hora e ser banido em dois dias.
Se você planeja fazer parsing de Avito, YouDo, grandes fóruns ou plataformas com proteção séria, recomendamos usar proxies residenciais — eles oferecem o equilíbrio ideal entre confiabilidade e custo. Para plataformas especialmente protegidas ou coleta de dados críticos, proxies móveis com o máximo nível de confiança são a melhor opção.