---
title: "Guia do agente do usuário Node.js: configuração e alteração"
slug: node-js-user-agent
date: 2026-02-18T06:44:42+00:00
modified: 2026-02-18T06:44:44+00:00
permalink: https://brightdata.com.br/blog/dados-do-site/node-js-user-agent
type: blog
---

[ Blog ](https://brightdata.com.br/blog "Blog") / [Dados do site](https://brightdata.com.br/blog/dados-do-site)







 [Dados do site](https://brightdata.com.br/blog/dados-do-site)

# Guia do agente do usuário Node.js: configuração e alteração

Descubra a importância de definir cabeçalhos User-Agent, o agente de usuário padrão no Node.js e como implementar a rotação do agente de usuário para evitar a detecção anti-bot.

 11 min de leitura





 [ ![Antonello Zanini](https://media.brightdata.com.br/2022/12/Antonello-Zanini-2-50x50.jpg) ](https://brightdata.com/blog/authors/antonello-zanini)

 [Antonello Zanini

Technical Writer

 ](https://brightdata.com/blog/authors/antonello-zanini)





 ![Node.js User Agent Guide hero image](https://media.brightdata.com.br/2024/08/Node.js-User-Agent-Guide.svg)





Neste guia de configuração do agente do usuário Node.js, você verá:

- Por que é importante definir o cabeçalho `User-Agent`
- Como é o agente do usuário padrão no Node.js
- Como definir um agente do usuário usando a API Fetch
- Como implementar a rotação do agente do usuário no Node.js

Vamos começar!

## Por que definir um agente do usuário é tão importante

O cabeçalho [`User-Agent`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent) é uma string que identifica o software cliente que faz uma solicitação HTTP. Ele normalmente inclui detalhes sobre o navegador ou aplicativo, o sistema operacional e a arquitetura do sistema de onde a solicitação se origina. Esse cabeçalho geralmente é definido por navegadores da web, clientes HTTP ou qualquer software que execute solicitações da web.

Por exemplo, este é o agente do usuário atual definido pelo Chrome ao solicitar páginas:

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

Abaixo está uma descrição detalhada dos componentes desta string do agente do usuário:

- `Mozilla/5.0`: originalmente usado para indicar compatibilidade com navegadores Mozilla, esse prefixo agora é adicionado para fins de compatibilidade.
- `Windows NT 10.0; Win64; x64:` Indica o sistema operacional (`Windows NT 10.0`), a plataforma (`Win64`) e a arquitetura do sistema (`x64`).
- `AppleWebKit/537.36`: Refere-se ao mecanismo do navegador usado pelo Chrome.
- (`KHTML, como Gecko`): mostra compatibilidade com os mecanismos de layout KHTML e Gecko.
- `Chrome/127.0.0.0`: Especifica o nome e a versão do navegador.
- `Safari/537.36`: Indica compatibilidade com o Safari.

Em essência, o agente do usuário pode revelar se a solicitação vem de um navegador confiável ou de outro tipo de software.

[Os bots de scraping de dados](/blog/how-tos/what-is-a-scraping-bot) e os scripts de automação costumam usar strings de agente do usuário padrão ou que não são de navegador. Isso pode expor sua natureza automatizada aos sistemas antibot, que protegem os dados da web examinando as solicitações recebidas. Ao analisar o cabeçalho `User-Agent`, essas soluções podem discernir se a solicitação é de um usuário genuíno ou de um bot.

Para obter mais informações, consulte nosso guia sobre [agentes de usuário para Scraping de dados](/blog/how-tos/user-agents-for-web-scraping-101).

## Qual é o agente de usuário padrão do Node.js?

A partir da versão 18, o Node.js inclui o método [`fetch()`](https://nodejs.org/dist/latest/docs/api/globals.html) como uma implementação integrada da [API Fetch](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API). Essa é a maneira recomendada de realizar solicitações HTTP no Node.js, pois não requer nenhuma dependência externa. Saiba mais sobre como fazer [solicitações HTTP no Node.js com a API Fetch](/blog/how-tos/fetch-api-nodejs).

Como a maioria dos outros clientes HTTP, `o fetch()` define automaticamente um cabeçalho `User-Agent` padrão ao fazer uma solicitação. Por exemplo, o mesmo acontece na [biblioteca `de solicitações` Python](/faqs/python-requests/what-is-python-requests).

Especificamente, o agente de usuário padrão do Node.js definido pelo `fetch()` é:

```none
`node`
```

Você pode verificar isso fazendo uma solicitação GET para o endpoint [`httpbin.io/user-agent`](https://httpbin.io/user-agent). Esse endpoint retorna o cabeçalho `User-Agent` da solicitação recebida, ajudando você a descobrir o agente de usuário definido por um cliente HTTP.

Crie um script Node.js, defina uma função [`assíncrona`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function) e use `fetch()` para fazer a solicitação HTTP desejada:

```none
função assíncrona getFetchDefaultUserAgent() {

// faça uma solicitação HTTP para o endpoint HTTPBin

// para obter o agente do usuário

const response = await fetch("https://httpbin.io/user-agent");

// ler o agente do usuário padrão da resposta

// e imprimi-lo

const data = await response.json();

console.log(data);

}

getFetchDefaultUserAgent();
```

Execute o código JavaScript acima e você receberá a seguinte string:

```none
`{ 'user-agent': 'node' }`
```

Como você pode ver, o agente do usuário definido por `fetch()` no Node.js é simplesmente `node`. Essa string é bem diferente dos agentes do usuário usados pelos navegadores, que podem acionar [sistemas antibot](/webinar/bot-detection).

As soluções anti-bot monitoram as solicitações recebidas em busca de padrões suspeitos, como strings de agente do usuário incomuns. Uma vez detectadas, elas marcam a solicitação como proveniente de um bot e a bloqueiam. É por isso que alterar o valor padrão do agente do usuário do Node.js é fundamental para evitar ser sinalizado!

## Como alterar o agente do usuário do Node.js usando a API Fetch

A especificação da API Fetch não fornece um método específico para alterar o agente do usuário. Ao mesmo tempo, `o User-Agent` nada mais é do que um cabeçalho HTTP. Isso significa que você pode personalizar seu valor usando [as opções de cabeçalho`do fetch()`](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch#setting_headers).

Veja como definir o cabeçalho `User-Agent` no Node.js usando `fetch()`!

**Defina um agente do usuário localmente**

`O fetch()` oferece suporte à personalização do cabeçalho por meio da opção `headers`. Use-a para definir o cabeçalho `User-Agent` ao fazer uma solicitação HTTP específica, conforme mostrado a seguir:

```none
const response = await fetch("https://httpbin.io/user-agent", {

headers: {

"User-Agent":

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

},

});
```

Junte tudo e você obterá:

```none
função assíncrona getFetchUserAgent() {

// faça uma solicitação HTTP para HTTPBin

// com um agente de usuário personalizado

const response = await fetch("https://httpbin.io/user-agent", {

headers: {

"User-Agent":

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

},

});

// ler o agente de usuário padrão da resposta

// e imprimi-lo

const data = await response.json();

console.log(data);

}

getFetchUserAgent();
```

Execute o script acima e, desta vez, o resultado será:

```none
{

'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/127.0.0.0 Safari/537.36'

}
```

Fantástico! O agente do usuário retornado pela API corresponde ao agente do usuário configurado no código. Agora você sabe como alterar o agente do usuário do Node.js.

**Definir um agente do usuário globalmente**

Definir o `agente do usuário` por solicitação é simples, mas pode levar a um código repetitivo. E se você quiser alterar o agente do usuário Node.js padrão globalmente? Infelizmente, no momento da redação deste artigo, a API `fetch()` não oferece uma maneira de substituir suas configurações padrão globalmente.

O que você pode fazer é criar uma função wrapper para personalizar o comportamento `do fetch()` com as configurações desejadas:

```none
function customFetch(url, options = {}) {

// cabeçalhos personalizados

const customHeaders = {

"User-Agent":

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

...options.headers, // mesclar com quaisquer outros cabeçalhos passados nas opções

};

const mergedOptions = {

...options,

headers: customHeaders,

};

return fetch(url, mergedOptions);

}
```

Agora você pode fazer uma solicitação HTTP com um agente de usuário personalizado chamando `customFetch()` em vez de `fetch()`:

```none
const response = await customFetch("https://httpbin.io/user-agent");
```

O script Node.js completo será:

```none
função customFetch(url, opções = {}) {

// adicionar um cabeçalho de agente de usuário personalizado

const cabeçalhosPersonalizados = {

"User-Agent":

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

...options.headers, // mesclar com quaisquer outros cabeçalhos passados nas opções

};

const mergedOptions = {

...options,

headers: customHeaders,

};

return fetch(url, mergedOptions);

}

async function getFetchUserAgent() {

// fazer uma solicitação HTTP para HTTPBin

// através do wrapper fetch personalizado

const response = await customFetch("https://httpbin.io/user-agent");

// ler o agente de usuário padrão da resposta

// e imprimi-lo

const data = await response.json();

console.log(data);

}

getFetchUserAgent();
```

Execute o script Node.js acima e ele imprimirá:

```none
{

'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36'

}
```

Ótimo! Você acabou de aprender como definir um agente de usuário global no Node.js usando `fetch()`.

## Implementar a rotação do agente do usuário no Node.js

Substituir o cabeçalho `User-Agent` padrão de um cliente HTTP pelo de um navegador real pode não ser suficiente para escapar da detecção anti-bot. Se você enviar muitas solicitações do mesmo endereço IP usando o mesmo agente de usuário, os sistemas anti-scraping ainda poderão identificar sua atividade como automatizada. O problema é que suas solicitações ainda estarão sugerindo um comportamento não humano.

Para reduzir o risco de detecção de bots no Node.js, você deve introduzir variabilidade em suas solicitações HTTP. Uma técnica eficaz é a rotação do agente do usuário, que envolve alterar o cabeçalho `User-Agent` em cada solicitação. Essa abordagem faz com que suas solicitações automatizadas pareçam vir de navegadores diferentes, tornando-as menos propensas a serem sinalizadas por sistemas anti-bot.

Na seção a seguir, você aprenderá como realizar a rotação do agente do usuário no Node.js!

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

Visite um site como [o WhatIsMyBrowser.com](https://www.whatismybrowser.com/guides/the-latest-user-agent/) e preencha uma lista com alguns valores válidos de agentes do usuário:

```none
const userAgents = [

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

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

"Mozilla/5.0 (Macintosh; Intel Mac OS X 14_6) AppleWebKit/605.1.15 (KHTML, como Gecko) Versão/17.5 Safari/605.1.15",

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

// outros agentes de usuário...

];
```

**Dica**: quanto mais strings de agentes de usuário reais esta matriz contiver, melhor será para evitar a detecção anti-bot.

**Etapa 2: Escolha aleatoriamente um agente de usuário**

Crie uma função que selecione aleatoriamente e retorne uma string de agente do usuário da lista:

```none
função getRandomUserAgent() {

const userAgents = [

// agentes de usuário omitidos por brevidade...

];

// retorne um agente de usuário aleatoriamente

// extraído da lista

return userAgents[Math.floor(Math.random() * userAgents.length)];

}
```

Vamos analisar o que acontece nesta função:

- [`Math.random()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random) gera um número aleatório entre 0 e 1
- Esse número é então multiplicado pelo comprimento da matriz `userAgents`.
- [`Math.floor()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/floor) arredonda o número resultante para o maior inteiro menor ou igual a esse número.
- O número resultante das operações anteriores corresponde a um índice gerado aleatoriamente que vai de 0 a `userAgents.length - 1`.
- O índice é então usado para retornar um agente de usuário aleatório da matriz de agentes de usuário.

Cada vez que você chamar a função `getRandomUserAgent()`, provavelmente obterá um agente de usuário diferente.

**Etapa 3: faça a solicitação HTTP com um agente de usuário aleatório**

Para implementar a rotação do agente do usuário no Node.js usando `fetch()`, defina o cabeçalho `User-Agent` com o valor da função `getRandomUserAgent()`:

```none
const response = await fetch("https://httpbin.io/user-agent", {

headers: {

"User-Agent": getRandomUserAgent(),

},

});
```

A solicitação HTTP realizada por meio da API Fetch agora terá um agente de usuário aleatório.

**Etapa 4: Junte tudo**

Adicione os trechos das etapas anteriores a um script Node.js e, em seguida, envolva a lógica para fazer uma solicitação `fetch()` em uma função `assíncrona`.

Aqui está como deve ficar o seu script final de rotação de agente de usuário Node.js:

```none
function getRandomUserAgent() {

const userAgents = [

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

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

"Mozilla/5.0 (Macintosh; Intel Mac OS X 14_6) AppleWebKit/605.1.15 (KHTML, como Gecko) Versão/17.5 Safari/605.1.15",

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

// outros agentes de usuário...

];

// retorne um agente de usuário aleatoriamente

// extraído da lista

return userAgents[Math.floor(Math.random() * userAgents.length)];

}

async function getFetchUserAgent() {

// faça uma solicitação HTTP com um agente de usuário aleatório

const response = await fetch("https://httpbin.io/user-agent", {

headers: {

"User-Agent": getRandomUserAgent(),

},

});

// ler o agente de usuário padrão da resposta

// e imprimi-lo

const data = await response.json();

console.log(data);

}

getFetchUserAgent();
```

Execute o script 3 ou 4 vezes. Estatisticamente, você deverá ver respostas diferentes do agente do usuário, conforme abaixo:

![different user agent responses](https://media.brightdata.com.br/2024/08/different-user-agent-responses.png)Isso demonstra que a rotação do agente do usuário está funcionando de maneira eficaz.

Et voilà! Agora você é especialista em definir agentes de usuário no Node.js usando a API Fetch.

## Conclusão

Neste tutorial, você viu por que deve definir o cabeçalho `User-Agent` e como é o agente de usuário padrão do Node.js no fetch(). Você também explorou como substituir esse valor e implementar a rotação do agente de usuário no Node.js para evitar sistemas básicos anti-scraping. No entanto, sistemas mais avançados ainda podem detectar e bloquear suas solicitações automatizadas. Para evitar banimentos de IP, você pode [configurar um Proxy no Node.js](/blog/proxy-101/proxy-in-node-fetch), mas mesmo isso pode não ser sempre suficiente!

Para uma solução mais robusta, considere [a API Web Scraper](/products/web-scraper)— um serviço de Scraping de dados de última geração que simplifica as solicitações automatizadas da web no Node.js ou em qualquer outra tecnologia. Ele contorna com eficácia as medidas anti-scraping por meio de recursos como rotação de IP e agente do usuário, tornando o Scraping de dados mais fácil do que nunca.

Inscreva-se agora e encontre o melhor produto para seus projetos. Comece seu Teste grátis hoje mesmo!



Contate-nosTeste grátis![google social icon](/wp-content/themes/brightdata/assets/images/ic_google.svg)









 Índice







Dedicated Scraper APIs &amp; No-Code Scrapers

Over 1000 scrapers for all popular domains. Simplify your web scraping.

[See pricing](/pricing/web-scraper "See pricing")

Just want data? Skip scraping.

Hundreds of ready-to-use datasets from all popular domains.

[See pricing](/pricing/datasets "See pricing")







 [ ](https://news.ycombinator.com/submitlink?t=Guia+do+agente+do+usu%C3%A1rio+Node.js%3A+configura%C3%A7%C3%A3o+e+altera%C3%A7%C3%A3o&u=https://brightdata.com.br/blog/dados-do-site/node-js-user-agent) [ ](https://www.linkedin.com/shareArticle?mini=true&title=Guia+do+agente+do+usu%C3%A1rio+Node.js%3A+configura%C3%A7%C3%A3o+e+altera%C3%A7%C3%A3o&url=https://brightdata.com.br/blog/dados-do-site/node-js-user-agent) [ ](http://www.reddit.com/submit?title=Guia+do+agente+do+usu%C3%A1rio+Node.js%3A+configura%C3%A7%C3%A3o+e+altera%C3%A7%C3%A3o&url=https://brightdata.com.br/blog/dados-do-site/node-js-user-agent)







##  Você também pode estar interessado em

 [ ![cURL User Agent Guide blog image](https://media.brightdata.com.br/2024/05/cURL-User-Agent-Guide.svg) ](https://brightdata.com.br/blog/dados-do-site/curl-user-agent "Guia do agente de usuário cURL: configuração e alteração")

 [Dados do site



 ![Antonello Zanini](https://media.brightdata.com.br/2022/12/Antonello-Zanini-2-50x50.jpg)

Antonello Zanini

Technical Writer





### Guia do agente de usuário cURL: configuração e alteração

Aprenda a definir e alterar o cabeçalho User-Agent no cURL para melhorar seus esforços de Scraping de dados.



 22-Feb-2026

 11 min de leitura

 ](https://brightdata.com.br/blog/dados-do-site/curl-user-agent)

 [ ![Selenium User Agent Guide Setting and Changing](https://media.brightdata.com.br/2024/06/Selenium-User-Agent-Guide_-Setting-and-Changing.svg) ](https://brightdata.com.br/blog/dados-do-site/selenium-user-agent "Guia do agente de usuário do Selenium: configuração e alteração")

 [Dados do site



 ![Antonello Zanini](https://media.brightdata.com.br/2022/12/Antonello-Zanini-2-50x50.jpg)

Antonello Zanini

Technical Writer





### Guia do agente de usuário do Selenium: configuração e alteração

Aprenda a definir e rotacionar o cabeçalho User-Agent no Selenium para aprimorar seus recursos de web scraping e ignorar as medidas anti-bot.



 09-Jun-2024

 12 min de leitura

 ](https://brightdata.com.br/blog/dados-do-site/selenium-user-agent)

 [ ![Requests User Agent Guide blog image](https://media.brightdata.com.br/2024/06/Requests-User-Agent-Guide_-Setting-and-Changing.svg) ](https://brightdata.com.br/blog/dados-do-site/requests-user-agent "Guia do agente de usuário do Python Requests: configuração e alteração")

 [Dados do site



 ![Antonello Zanini](https://media.brightdata.com.br/2022/12/Antonello-Zanini-2-50x50.jpg)

Antonello Zanini

Technical Writer





### Guia do agente de usuário do Python Requests: configuração e alteração

Pare de ser bloqueado por sistemas anti-bot! Este tutorial ensina você a definir e alternar o cabeçalho User-Agent nas em Python Requests para uma extração segura e bem-sucedida de dados da web.



 04-Jun-2024

 10 min de leitura

 ](https://brightdata.com.br/blog/dados-do-site/requests-user-agent)
