Guia do agente do usuário do Postman: configuração e alteração

Aprenda a definir, alterar e alternar o cabeçalho User-Agent no Postman para evitar a detecção anti-bot e melhorar suas solicitações HTTP.
11 min de leitura
Postman User Agent Guide blog image

Neste artigo sobre o agente de usuário Postman, você aprenderá:

  • Por que você deve definir o cabeçalho User-Agent
  • Como é o agente de usuário padrão do Postman
  • Como alterar o agente do usuário nas solicitações do Postman
  • Como implementar a rotação do agente do usuário no Postman

Vamos começar!

Por que definir um agente de usuário personalizado é tão importante

O cabeçalho User-Agent identifica o cliente que está fazendo uma solicitação HTTP a um servidor. Ele geralmente contém detalhes sobre a máquina do cliente e/ou o aplicativo que está fazendo a solicitação. Geralmente, esse cabeçalho é definido por navegadores da web, clientes HTTP ou qualquer software que execute solicitações da web.

Este é um exemplo da string do agente do usuário definida pelo Chrome ao solicitar uma página da web:

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/127.0.0.0 Safari/537.36

O cabeçalho User-Agent de um navegador inclui vários componentes:

  • Mozilla/5.0: inicialmente usado para indicar compatibilidade com navegadores Mozilla, esse prefixo agora é incluído para compatibilidade mais ampla.
  • Macintosh; Intel Mac OS X 10_15_7: Especifica o sistema operacional (Mac OS X 10_15_7) e a plataforma (Intel Mac).
  • AppleWebKit/537.36: Refere-se ao mecanismo de renderização usado pelo Chrome.
  • (KHTML, como Gecko): indica compatibilidade com os motores de layout KHTML e Gecko.
  • Chrome/127.0.0.0: Denota o nome e a versão do navegador.
  • Safari/537.36: sugere compatibilidade com o Safari.

Os servidores normalmente leem o cabeçalho User-Agent para determinar se as solicitações que recebem são originárias de um navegador ou de outro software.

Um erro comum cometido por bots de Scraping de dados é o uso de strings User-Agent padrão ou que não são de navegador. Isso leva ao bloqueio por tecnologias de proteção anti-bot, pois elas podem reconhecer a solicitação como proveniente de um bot. Para obter informações adicionais, consulte nosso guia sobre agentes de usuário para Scraping de dados.

Qual é o agente de usuário padrão do Postman?

O Postman é um dos clientes HTTP de desktop mais populares, usado por milhões de usuários em todo o mundo. Como a maioria dos outros clientes HTTP, ele define automaticamente um cabeçalho User-Agent padrão em cada solicitação. Especificamente, você pode observar esse comportamento examinando os cabeçalhos do Postman gerados automaticamente:

observe this behavior by examining the auto-generated Postman headers

Como você pode ver, o agente de usuário padrão do Postman segue este formato:

PostmanRuntime/x.y.z

“PostmanRuntime” identifica o aplicativo Postman, enquanto “x.y.z” é o número da versão atual.

Para verificar se a string acima é realmente o agente de usuário padrão do Postman, execute uma solicitação GET para o endpoint httpbin.io/user-agent. Esse endpoint da API retorna o cabeçalho User-Agent da solicitação recebida, ajudando você a identificar o agente de usuário usado por qualquer cliente HTTP.

identify the user agent used

Observe como o agente do usuário retornado pela API corresponde ao definido pelo Postman por padrão. Em detalhes, o agente do usuário Postman é:

PostmanRuntime/7.41.0

Como você pode ver, a string do agente do usuário usada pelo Postman é bem diferente daquela definida por um navegador como o Chrome. Quando os servidores recebem solicitações com esses cabeçalhos, os sistemas antibot provavelmente as bloqueiam.

Isso ocorre porque essas soluções monitoram as solicitações recebidas, procurando padrões que indiquem atividade de bots, como agentes de usuário incomuns. É por isso que modificar o agente de usuário padrão no Postman é tão importante!

Como alterar o agente do usuário do Postman

É hora de ver como definir um agente do usuário personalizado no Postman.

Defina o agente do usuário em uma única solicitação

O Postman permite que você altere o agente do usuário em uma única solicitação HTTP, especificando manualmente um cabeçalho User-Agent.

Observação: os cabeçalhos gerados automaticamente pelo Postman não podem ser modificados diretamente.

Acesse a guia “Cabeçalhos” e adicione um novo cabeçalho User-Agent:

adding a new user-agent header

O Postman substituirá o agente de usuário padrão gerado automaticamente pelo valor do seu cabeçalho User-Agent. Lembre-se de que os cabeçalhos HTTP não diferenciam maiúsculas de minúsculas, portanto, você também pode chamar seu cabeçalho de user-agent ou com qualquer outra combinação de maiúsculas e minúsculas.

Verifique se a abordagem funciona executando uma solicitação GET para o endpoint httpbin.io/user-agent:

executing a GET request

Incrível! O agente do usuário retornado pela API corresponde ao cabeçalho User-Agent personalizado.

Defina o User Agent em uma coleção inteira

Uma coleção do Postman é um grupo de solicitações de API que geralmente compartilham características comuns, como o servidor de destino ou o escopo. Em particular, os endpoints dentro de uma coleção provavelmente terão configurações semelhantes. Assim, o Postman oferece suporte à definição de scripts personalizados que são executados antes ou depois de cada solicitação em uma coleção.

Vamos ver como usar esse mecanismo para definir um agente do usuário personalizado para todas as solicitações em uma coleção do Postman!

Para criar e lidar com coleções do Postman, você deve primeiro fazer login em sua conta. Se ainda não o fez, crie uma conta no Postman.

Agora, suponha que você tenha uma coleção chamada “HTTPBin” contendo os endpoints HTTPBin organizados em pastas:

HTTPBin endpoints organized in folders

Execute a solicitação para o endpoint /user-agent e você obterá o agente de usuário padrão do Postman:

the default Postman user agent

É hora de alterar isso definindo um script de pré-solicitação que define um cabeçalho User-Agent personalizado. Um script de pré-solicitação é um JavaScript que o Postman executa antes de executar uma solicitação em uma coleção.

Siga as instruções abaixo para criar um script de pré-solicitação para a configuração do agente do usuário.

Clique duas vezes na sua coleção, acesse a guia “Scripts” e selecione a opção “Pré-solicitação”:

select the “Pre-request” option

No editor, cole o seguinte código:

pm.request.headers.add({

key: "User-Agent",

value: "<seu-agente-de-usuário>"

});

Substitua a string <seu-agente-de-usuário> pelo valor do agente de usuário que você deseja usar, conforme abaixo:

pm.request.headers.add({

key: "User-Agent",

value: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36"

});

pm.request.headers.add() é uma função especial da API do Postman para adicionar um cabeçalho específico à solicitação.

Clique no botão “Salvar” para aplicar as alterações.

Execute a solicitação para o endpoint /user-agent novamente:

executing the request again

Desta vez, o agente do usuário retornado será aquele definido no script e não o padrão do Postman. Missão cumprida!

Desmarque o agente do usuário

O cabeçalho gerado automaticamente pelo agente do usuário é opcional e você pode desmarcá-lo. Quando desmarcado, o Postman não enviará mais um cabeçalho do agente do usuário.

Verifique isso enviando uma solicitação para o endpoint httpbin.io/headers, que retorna todos os cabeçalhos da solicitação recebida:

return of all the headers of the incoming request

Observe que o objeto de cabeçalhos retornado pelo endpoint não inclui a chave User-Agent.

Observação: não é recomendável desativar o cabeçalho User-Agent, pois quase todas as solicitações da web normalmente incluem esse cabeçalho.

Implemente a rotação do agente do usuário no Postman

Simplesmente substituir o cabeçalho User-Agent padrão do Postman por um de um navegador pode não ser suficiente para contornar os sistemas anti-bot. Isso é especialmente verdadeiro se você estiver enviando várias solicitações com cabeçalhos idênticos a partir do mesmo endereço IP.

Para reduzir o risco de ser detectado como um bot no Postman, você deve variar suas solicitações. Uma abordagem prática é usar um User-Agent diferente para cada solicitação, uma técnica conhecida como rotação de agente do usuário. Esse método diminui as chances de suas solicitações serem sinalizadas como automatizadas.

Nesta seção passo a passo, você aprenderá como implementar a rotação de agentes de usuário no Postman!

Etapa 1: recuperar uma lista de agentes de usuário

Visite um site como o WhatIsMyBrowser.com e preencha uma lista de agentes de usuário válidos:

const userAgents = [

"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.2651.86",

"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.2651.86",

“Mozilla/5.0 (Linux; Android 10; HD1913) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/127.0.6533.103 Mobile Safari/537.36 EdgA/127.0.2651.82”,

"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/127.0.0.0 Safari/537.36",

"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/127.0.0.0 Safari/537.36",

"Mozilla/5.0 (iPhone; CPU iPhone OS 17_6 como Mac OS X) AppleWebKit/605.1.15 (KHTML, como Gecko) CriOS/127.0.6533.107 Mobile/15E148 Safari/604.1",

"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:129.0) Gecko/20100101 Firefox/129.0",

"Mozilla/5.0 (Macintosh; Intel Mac OS X 14.6; rv:129.0) Gecko/20100101 Firefox/129.0",

// outros agentes de usuário...

];

Dica: quanto mais agentes de usuário reais esta matriz contiver, maiores serão as chances de rotação.

Etapa 2: Escolha aleatoriamente um agente de usuário

Use a API Math do JavaScript para selecionar aleatoriamente um agente do usuário da lista:

const userAgent = serAgents[Math.floor(Math.random() * userAgents.length)];

É isso que acontece nesta linha de código:

  1. Math.random() gera um número aleatório entre 0 e 1.
  2. O número gerado é então multiplicado pelo comprimento da matriz userAgents.
  3. Math.floor() arredonda o número resultante para o maior número inteiro menor ou igual ao número de origem. O número resultante corresponde a um índice que vai de 0 a userAgents.length - 1.
  4. O índice é usado para acessar um item aleatório da matriz de agentes de usuário.
  5. O agente de usuário selecionado aleatoriamente é atribuído a uma variável.

Etapa 3: definir o cabeçalho do agente do usuário

Use pm.request.headers.add() para definir um cabeçalho User-Agent com o valor aleatório userAgent:

pm.request.headers.add({

key: "User-Agent",

value: userAgent

});

A solicitação HTTP da coleção agora terá um cabeçalho User-Agent rotativo.

Etapa 4: Junte tudo

Aqui está seu script final de pré-solicitação do Postman para rotação do agente do usuário:

// uma lista de agentes de usuário válidos

const userAgents = [

"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.2651.86",

"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.2651.86",

“Mozilla/5.0 (Linux; Android 10; HD1913) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/127.0.6533.103 Mobile Safari/537.36 EdgA/127.0.2651.82”,

"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/127.0.0.0 Safari/537.36",

"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/127.0.0.0 Safari/537.36",

"Mozilla/5.0 (iPhone; CPU iPhone OS 17_6 como Mac OS X) AppleWebKit/605.1.15 (KHTML, como Gecko) CriOS/127.0.6533.107 Mobile/15E148 Safari/604.1",

"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:129.0) Gecko/20100101 Firefox/129.0",

"Mozilla/5.0 (Macintosh; Intel Mac OS X 14.6; rv:129.0) Gecko/20100101 Firefox/129.0",

// outros agentes de usuário...

];

// extraia aleatoriamente um agente de usuário da lista

const userAgent = userAgents[Math.floor(Math.random() * userAgents.length)];

// defina o cabeçalho do agente de usuário aleatório

pm.request.headers.add({

key: "User-Agent",

value: userAgent

});

Adicione-o à sua coleção e verifique se funciona direcionando o endpoint httpbin.io/user-agent. Execute as solicitações algumas vezes e você verá agentes de usuário rotativos:

executing requests and seeing the rotation of user agents

Ótimo, o agente do usuário retornado continua mudando.

Et voilà! Agora você sabe como implementar a lógica de rotação do agente de usuário do Postman.

Leitura adicional

Alterar o agente do usuário padrão não é exclusivo do Postman, mas se aplica a todas as ferramentas de automação de navegadores e clientes HTTP. Explore nossos guias:

Conclusão

Neste artigo, você entendeu por que definir o cabeçalho do agente do usuário e examinou como é o agente do usuário padrão do Postman. Você aprendeu como substituir esse valor e implementar a rotação do agente do usuário para escapar dos mecanismos básicos anti-bot. No entanto, sistemas mais avançados ainda serão capazes de bloquear suas solicitações. Para evitar banimentos de IP, você pode usar um Proxy no Postman, mas mesmo isso pode não ser suficiente!

Para uma solução mais completa, experimente a API Web Scraper— uma API de Scraping de dados de última geração que você pode chamar a partir do Postman ou de qualquer outro cliente HTTP. Ela contorna com eficácia as medidas anti-scraping e anti-bot usando recursos integrados, como rotação de IP e agente do usuário. O Scraping de dados nunca foi tão fácil!

Inscreva-se hoje mesmo para iniciar o teste grátis.