A maioria dos guias de scraping otimiza para uma coisa: obter os dados sem ser bloqueado. Esse é um objetivo válido, mas ignora a parte que decide se seu pipeline sobrevive além do primeiro mês. Um scraper que ataca um alvo o mais rápido possível não é apenas rude, é frágil. Ele faz o load do site disparar, aciona todo limite de taxa e regra anti-bot que existe, e transforma uma fonte que você queria ler discretamente em uma que está ativamente tentando barrar você.
A parte contraintuitiva é que a forma responsável de fazer scraping e a forma durável de fazer scraping são a mesma coisa. Se comportar como um cliente cortês, que respeita limites, distribui a carga e pede apenas o que precisa, é exatamente o perfil que fica abaixo dos limiares de detecção e continua funcionando. Esse é o lado da etiqueta da mesma moeda cujo outro lado é como evitar ser bloqueado: aquele post trata de não parecer um bot, este trata de não se comportar como um bot prejudicial. Faça o segundo e o primeiro, em grande parte, se resolve sozinho.
Veja o que scraping responsável e durável realmente significa na prática.
Leia o robots.txt e leve-o a sério
Todo site bem administrado publica um robots.txt na raiz que declara quais caminhos os clientes automatizados não devem tocar e, às vezes, um Crawl-delay. Não é um contrato legal e não é uma barreira técnica, é o site informando suas preferências no único lugar criado para esse fim. Ignorá-lo completamente é o sinal mais claro de que você não é um visitante de boa-fé.
A postura prática: busque o robots.txt uma vez no início de uma execução, faça cache dele, e respeite os caminhos proibidos para o user-agent que você apresenta. Se ele especificar um crawl delay, trate isso como um piso, não como uma sugestão. Existem razões legítimas para alguns projetos divergirem de partes dele, mas “eu nunca olhei” não é uma delas. Lê-lo também mostra onde o site mantém um sitemap, que costuma ser uma forma muito mais limpa de descobrir URLs do que rastrear link por link.
Limite sua própria taxa antes que o site precise fazer isso
A coisa mais prejudicial que um scraper faz é enviar requisições o mais rápido que a rede permitir. Um alvo dimensionado para tráfego humano pode ser empurrado para tempos de resposta degradados, ou pior, por um único cliente agressivo. Isso prejudica usuários reais, e é a forma mais rápida de fazer toda a sua faixa de IP ser bloqueada.
Defina uma taxa de requisição deliberada e fique abaixo dela. Algumas requisições por segundo por host são suficientes para a maioria dos trabalhos, e mais devagar é mais seguro em sites menores. Adicione um pequeno jitter aleatório entre as requisições em vez de um intervalo de metrônomo fixo, para que seu tráfego não pareça mecanicamente uniforme. O objetivo é ser um visitante modesto entre muitos, não um pico no painel de monitoramento de alguém. Se você precisa de mais throughput total, distribua-o ao longo do tempo e em um pool rotativo, em vez de aumentar a pressão sobre um único host.
Recue quando o site disser não
Um 429 Too Many Requests ou um 503 é o servidor dizendo explicitamente para você diminuir o ritmo. A resposta errada é tentar novamente imediatamente, que é exatamente o que um servidor sobrecarregado não consegue suportar. A resposta certa é o backoff exponencial: espere, tente novamente, e se falhar de novo espere mais, dobrando o atraso a cada vez até um teto. Respeite um header Retry-After quando o servidor o enviar, ele está dizendo precisamente quanto tempo esperar.
Isso é diferente de repetir uma requisição genuinamente falha. Uma conexão interrompida ou um timeout é uma tentativa quebrada que vale a pena repetir prontamente; um 429 é um servidor funcionando pedindo espaço. Trate-os de forma diferente. Repetir 429s cegamente em loop apertado é como um scraper transforma um rate limit suave em um banimento definitivo.
Faça cache agressivamente e nunca busque a mesma coisa duas vezes
A requisição mais barata é a que você não envia. Antes de escalar, observe com atenção o quanto você está buscando novamente. Fazer cache de respostas, respeitar ETag e Last-Modified com requisições condicionais, e desduplicar sua fronteira de URLs costuma reduzir o volume real de requisições por margens grandes. Cada requisição evitada é carga que você não colocou no alvo, banda que você não gastou, e um evento de risco de bloqueio que nunca aconteceu.
Isso se sobrepõe diretamente ao custo. A mesma disciplina que faz de você um convidado mais leve também reduz sua conta de banda de proxy: peça apenas as páginas de que precisa, busque apenas os campos que usa, e pule assets como imagens e fontes quando você só quer o HTML. Cortesia e eficiência são o mesmo conjunto de hábitos.
Faça scraping em horários de baixo movimento
Se você pode controlar quando um trabalho roda, execute-o quando o alvo estiver quieto. Um lote que seria perceptível ao meio-dia é invisível contra o baixo tráfego noturno no fuso horário local do site. Essa é a diferença entre adicionar carga quando o servidor menos pode arcar com ela e tomar emprestado capacidade que de outra forma ficaria ociosa. Para grandes coletas recorrentes, agende contra a janela de baixo movimento do alvo, não a sua.
Identifique-se honestamente onde puder
Existe uma tensão real aqui, e vale a pena ser direto sobre isso. A boa etiqueta de scraping tradicionalmente significa enviar um User-Agent descritivo que nomeia seu bot e uma forma de contato, para que um administrador que perceba seu tráfego possa entrar em contato em vez de partir para um bloqueio. Muitos crawlers sérios e transparentes fazem exatamente isso.
Ao mesmo tempo, os sites cada vez mais bloqueiam qualquer coisa que se identifique como automatizada, independentemente do comportamento, o que empurra os scrapers a se apresentarem como um navegador comum. Ambas as posturas são defensáveis dependendo do seu caso de uso. O que não é defensável é se passar por um serviço específico que você não é, ou falsificar o crawler de outra empresa. Escolha uma apresentação honesta para sua situação e mantenha-a consistente. Se você está coletando dados para um negócio, ter uma página pública que explica o que seu crawler faz e como entrar em contato não custa nada e desarma muito conflito.
Pegue apenas dados públicos, e cuide do que há neles
Scraping responsável significa páginas públicas, acessadas sem derrubar uma barreira de autenticação ou concordar com termos que você depois ignora. Dados atrás de um login são uma categoria legal e ética diferente, e se o scraping em si é legal depende fortemente dessa linha. Fique do lado público dela.
Seja igualmente cuidadoso com o que os dados contêm quanto com de onde vieram. Se as páginas incluem informações pessoais, você herda obrigações de privacidade no momento em que as armazena, e coletar dados pessoais em escala envolve o GDPR e regimes semelhantes. A postura mais limpa é excluir dados pessoais da sua coleta a menos que você tenha uma razão legal específica para retê-los, e não reter o que você não precisa.
Onde os proxies se encaixam, e por que os bons tornam você mais gentil
Nada do que foi dito acima é um argumento contra proxies, é um argumento a favor de usá-los da forma certa. Um pool residencial de qualidade é o que permite distribuir uma taxa de requisição razoável entre muitos IPs e geografias, em vez de concentrar pressão sobre um alvo a partir de um único endereço. Usado bem, é uma ferramenta de distribuição de carga e localização, não uma forma de atingir um site com mais força.
A qualidade do pool também decide com que frequência você tenta novamente. IPs limpos com boa reputação passam tranquilamente onde IPs sinalizados são desafiados, então um pool melhor significa menos tentativas falhas, menos retentativas, e menos carga total que você gera para os mesmos dados. Rotacionar com bom senso, uma identidade por unidade lógica de trabalho em vez de um novo IP no meio de uma sessão (sticky vs rotating), mantém sua pegada coerente e leve. E manter a latência baixa significa que cada requisição termina e libera rapidamente, em vez de se acumular.
Uma checklist curta
- Busque e respeite o
robots.txt; use o sitemap para o qual ele aponta. - Defina uma taxa deliberada por host com jitter aleatório; algumas requisições por segundo geralmente são suficientes.
- Recue exponencialmente em
429/503; respeiteRetry-After. Não confunda isso com repetir uma requisição quebrada. - Faça cache, use requisições condicionais, desduplique. A requisição mais barata é a que você pula.
- Busque apenas as páginas e campos de que precisa; pule assets que você não vai usar.
- Prefira horários de baixo movimento no fuso horário do alvo para trabalhos grandes.
- Escolha uma identidade honesta e consistente. Nunca se passe pelo crawler de outra empresa.
- Apenas dados públicos. Exclua dados pessoais para os quais você não tem uma razão legal para manter.
- Use um pool residencial limpo para distribuir carga, não para intensificá-la.
Conclusão
Os scrapers que continuam funcionando por anos não são os mais agressivos, são aqueles que o alvo mal percebe. Toda prática aqui, rate limiting, backoff, cache, agendamento em horário de baixo movimento, identificação honesta, aponta na mesma direção: pegue o que você precisa, deixe o site saudável, e pareça o cliente cortês que você realmente é. Essa é a forma ética de fazer scraping, e ela também é a forma que não faz você ser bloqueado.
Se você quer infraestrutura construída para distribuir carga em vez de concentrá-la, nossos proxies residenciais rodam em um pool rotativo e limpo, e a página de preços tem planos por GB para que um scraping mais leve e mais inteligente realmente custe menos para você.