Glossário

O Que É um User Agent?

Um User-Agent é um cabeçalho de solicitação HTTP que identifica o software cliente que faz a solicitação, geralmente incluindo o nome do navegador, versão, sistema operacional e motor de renderização, como 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'.

Entenda a string User-Agent, por que ela é o sinal mais fácil usado pelos sites para identificar scrapers, e como alternar os User-Agents junto com seus IPs sem comprometer sua fingerprint.

Explicado

O cabeçalho User-Agent é uma das formas de identificação mais antigas da web. Toda solicitação HTTP que um cliente envia inclui uma linha `User-Agent:` que nomeia o software cliente (navegador ou biblioteca), sua versão, o sistema operacional e, muitas vezes, o mecanismo de renderização. Os servidores usam isso para negociação de conteúdo (layouts para mobile ou desktop), análises e, cada vez mais, detecção de bots.

Para scraping, o User-Agent é o sinal mais simples de errar. User-Agents padrão de bibliotecas HTTP comuns (`python-requests/2.31.0`, `axios/1.5.0`, `okhttp/4.10.0`) são delatores óbvios. Até o User-Agent padrão do Playwright e do Puppeteer contém `HeadlessChrome`, que sistemas anti-bot sinalizam instantaneamente.

A correção ingênua é definir um UA do Chrome em toda solicitação. O problema é que o User-Agent sozinho não é suficiente — o fingerprinting moderno cruza o UA com os client hints `sec-ch-ua`, o fingerprint TLS, o objeto navigator do JavaScript e o cabeçalho Accept-Language. Definir um UA do Chrome mas deixar o handshake TLS do Python exposto cria um sinal de alerta ainda maior do que simplesmente deixar o UA padrão como está.

Como Funciona

Quando seu cliente abre uma conexão com um servidor, a linha de requisição inclui headers. A linha `User-Agent` é um deles. Os servidores a analisam (ou apenas a registram) e roteiam a requisição com base no que veem. Um User-Agent moderno do Chrome no Windows se parece com: `Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36`. O prefixo 'Mozilla/5.0' é histórico; todo navegador o envia por razões de compatibilidade legada.

Navegadores reais também enviam headers `sec-ch-ua` (Client Hints 'Sec-CH-UA') no HTTP moderno, que carregam dados estruturados de navegador/versão/plataforma. Sistemas anti-bot comparam esses dados com a string do User-Agent e sinalizam inconsistências. Por isso, a rotação de User-Agent precisa vir acompanhada de atualizações consistentes de `sec-ch-ua-*` e fingerprints TLS correspondentes.

Tipos

User-Agents de navegador desktop

Chrome, Firefox, Edge, Safari no Windows/macOS/Linux. A família de UA mais comum para scraping de alvos web em geral.

User-Agents de Navegadores Móveis

Chrome no Android, Safari no iOS, Samsung Internet. Necessário ao fazer scraping de sites voltados para dispositivos móveis ou ao combinar com proxies móveis para consistência de fingerprint.

User-Agents de Bot / Crawler

Identificação de UAs como `Googlebot/2.1`, `bingbot/2.0`. Usados por crawlers legítimos de mecanismos de busca; alguns sites os colocam em whitelist. Falsificá-los traz riscos legais e de violação dos termos de serviço.

User-Agents padrão de bibliotecas

`python-requests/X.Y`, `curl/X.Y`, `Mozilla/5.0 (compatible; Java/X.Y)`. UAs padrão de bibliotecas HTTP — nunca use isso para scraping em produção; são trivialmente identificáveis.

Casos de Uso Comuns

Identificação do navegador e do sistema operacional do cliente para negociação de conteúdo
Análise no lado do servidor e segmentação de visitantes
Detecção de bots (UAs de bibliotecas padrão são entregas óbvias)
Seleção de layout móvel vs desktop
Cache por família de navegador
Rotação de User-Agent em scrapers para imitar usuários reais variados
Perguntas Frequentes

Perguntas frequentes

Perguntas comuns sobre user agent.

Use um User-Agent atual e comum que corresponda a uma versão real de navegador lançada nos últimos meses. Chrome no Windows ou macOS é uma opção segura por padrão. Alterne entre um pequeno conjunto de UAs atuais em vez de usar um UA fixo para todas as requisições.

Rotacione entre requisições, mas não arbitrariamente. Mantenha um único UA durante toda a vida de uma sessão (um conjunto de requisições relacionadas a um fluxo de trabalho), depois troque quando a sessão terminar. Mudanças aleatórias de UA a cada requisição são, em si, um sinal de fingerprint, pois usuários reais não trocam de navegador entre carregamentos de página.

Provavelmente uma incompatibilidade de fingerprint. Se você define um UA do Chrome, mas seu handshake TLS é o padrão do Python, os fornecedores de anti-bot percebem a inconsistência. Combine o UA com cabeçalhos `sec-ch-ua` correspondentes, fingerprint TLS correspondente (use `curl_cffi` ou um navegador real) e um Accept-Language crível. Só então a rotação de UA realmente ajuda.

Mantenha atualizado. As versões de navegador são lançadas a cada 2-6 semanas. Um User-Agent com Chrome 95 em 2026 é suspeito porque nenhum usuário real ainda está no Chrome 95. Atualize seu pool mensalmente ou obtenha dados de uma fonte de UA atual, como os datasets públicos do ua-parser/ua-parser-js.

Sim, se o seu User-Agent afirma ser baseado em Chromium (Chrome, Edge, Opera). Navegadores Chromium modernos enviam os cabeçalhos `sec-ch-ua`, `sec-ch-ua-mobile`, `sec-ch-ua-platform`. Se o seu UA é Chrome, mas esses cabeçalhos estão faltando, sistemas anti-bot sinalizam a incompatibilidade.

Sim, na maioria das jurisdições. O cabeçalho User-Agent é apenas uma string controlada pelo cliente. Defini-lo como qualquer coisa é legal em si; a legalidade do que você faz com o acesso resultante depende dos termos de serviço do destino, das leis anti-bot (CFAA nos EUA) e de quais dados você coleta. O scraping de dados públicos com um UA falsificado é amplamente legal; burlar a autenticação não é.