
Rajinder Singh
Deep Learning Researcher
Um User Agent (UA) é uma string enviada pelo seu navegador ou cliente para se identificar ao servidor. Normalmente inclui detalhes como o nome do navegador, versão, sistema operacional e tipo de dispositivo. Por exemplo:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36.
O Cloudflare analisa esta string para detectar bots. Se seu UA corresponder a ferramentas de automação conhecidas (por exemplo, Python-Requests ou HeadlessChrome), você acionará os sistemas anti-bot do Cloudflare.
Antes de personalizar, verifique quais User Agents os usuários reais do site estão usando. Ferramentas como WhatIsMyBrowser ou as ferramentas de desenvolvedor do navegador (guia Rede > Cabeçalhos) podem ajudar. Por exemplo, se o site é popular entre usuários do Chrome, imite o UA deles.
Veja como modificar o UA em linguagens de programação populares:
import requests
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'
}
response = requests.get('https://example.com', headers=headers)
const axios = require('axios');
axios.get('https://example.com', {
headers: {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
}
});
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36');
await page.goto('https://example.com');
})();
Usar o mesmo UA repetidamente ainda pode te sinalizar. Roteie UAs a partir de uma lista predefinida para imitar usuários diversos. Ferramentas como Fake UserAgent simplificam isso:
from fake_useragent import UserAgent
import requests
ua = UserAgent()
headers = {'User-Agent': ua.random}
response = requests.get('https://example.com', headers=headers)
Usar User Agents Obsoletos
O Cloudflare mantém listas de UAs suspeitos. Evite strings vinculadas a versões antigas do navegador (por exemplo, Chrome/58.0.3029.110 de 2017).
Ignorar Impressões Digitais de Navegadores Headless
Mesmo com um UA válido, os navegadores headless vazam sinais de automação (por exemplo, plugins ausentes como navigator.plugins). Use plugins furtivos como puppeteer-extra-plugin-stealth.
Esquecer a Rotação de IP
Combine a rotação de UA com proxies residenciais para evitar bloqueios baseados em IP. Proxies estáticos ou sticky funcionam melhor para manter a consistência da sessão.
Combine com Impressão Digital TLS
O Cloudflare verifica padrões de handshake TLS. Bibliotecas como curl_cffi (Python) ou tls-client (JavaScript) imitam impressões digitais TLS de navegadores reais, reduzindo o risco de detecção.
Alterar seu User Agent é uma maneira simples, porém poderosa, de contornar o Cloudflare, mas não é infalível. Combine-o com rotação de IP, impressão digital TLS e ferramentas antidetecção para resultados robustos.
Feliz scraping! 🤖
TL;DR - A automação de monitoramento de preços no mercado precisa de uma chave estável de produto-região antes que os preços de promoção possam ser comparados. - Uma mudança de preço é válida apenas quando moeda, unidade, condições de promoção, estado do estoque e horário são capturados juntos. - A recuperação de CAPTCHA deve pausar um trabalho autorizado, preservar seu contexto, executar uma vez e retornar à mesma observação do produto. - Os controles de tráfego devem reduzir a concorrência durante desafios crescentes, 429, tempo limite ou taxas de conteúdo duplicado. Introduct

TL;DR - Um erro de timeout de CAPTCHA de um agente de IA precisa de orçamentos separados para preparação da página, transporte de ferramenta, trabalho de CAPTCHA e confirmação da aplicação. - Resultados atrasados devem ser descartados quando a URL da página, o contexto do navegador, o desafio ou a ação autorizada tiverem mudado. - Uma tentativa limitada pode ser razoável para uma falha temporária de transporte, mas pontos de verificação repetidos devem abrir um caminho de revisão. - A condição final de passagem é o estado original da aplicação, nunca a ausência de uma exceção lançada. Introdução
