---
title: "Guia do agente de usuário do Python Requests: configuração e alteração"
slug: requests-user-agent
date: 2024-06-04T08:30:28+00:00
modified: 2025-11-04T08:55:27+00:00
permalink: https://brightdata.com.br/blog/dados-do-site/requests-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 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.

 10 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)





 ![Requests User Agent Guide blog image](https://media.brightdata.com.br/2024/06/Requests-User-Agent-Guide_-Setting-and-Changing.svg)





Neste tutorial, você aprenderá:

- Por que você precisa definir o cabeçalho agente de usuário
- O agente de usuário padrão do Python `requests`
- Como alterar e cancelar a configuração do agente de usuário em Requests
- Como implementar a rotação do agente de usuário em Python

Vamos nos aprofundar!

## Por que você deve sempre definir o cabeçalho agente de usuário

O cabeçalho HTTP [User-Agent](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent) é definido por navegadores, aplicativos que executam solicitações da web e clientes HTTP para identificar o software cliente que está fazendo a solicitação. Esse valor normalmente inclui detalhes sobre o tipo de navegador ou aplicativo, sistema operacional e arquitetura de origem da solicitação.

Por exemplo, aqui está o agente de usuário definido pelo Chrome no momento em que este artigo foi escrito ao visitar páginas da web:

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

Os componentes desse agente de usuário são:

- `Mozilla/5.0:` historicamente usado para indicar compatibilidade com os navegadores Mozilla. Agora é um prefixo comum adicionado aos agentes de usuário por motivos de compatibilidade.
- `Windows NT 10.0; Win64; x64`: sistema operacional (`Windows NT 10.0`), plataforma (`Win64`) e arquitetura (x64).
- `AppleWebkit/537.36`: mecanismo de navegação usado pela versão do Chrome que fez a solicitação.
- `KHTML, como o Gecko`: compatibilidade com o mecanismo KHTML e o mecanismo de layout Gecko usados pela Mozilla.

1. `Chrome/125.0.0.0`: nome do navegador e sua versão.
2. `Safari/537.36`: compatibilidade com Safari.

Resumindo, o agente do usuário é crucial para identificar se uma solicitação se origina de um navegador conhecido ou de outro tipo de software.

[Os bots de raspagem](/blog/procedimentos/what-is-a-scraping-bot) tendem a usar sequências de agentes de usuário padrão ou inconsistentes, revelando sua natureza automatizada. Consequentemente, as soluções anti-scraping protegem os dados em páginas da web examinando o cabeçalho `User-Agent` para determinar se o usuário atual é legítimo ou um bot.

Para mais informações, leia nosso guia sobre [agentes de usuário para web scraping](https://brightdata.com.br/blog/procedimentos/user-agents-for-web-scraping-101).

## Qual é o agente de usuário padrão em Requests do Python?

Como a maioria dos clientes HTTP, [Requests](https://requests.readthedocs.io/en/latest/) define um cabeçalho `User-Agent` ao fazer solicitações HTTP. Em particular, o agente de usuário padrão definido por `requests` segue o formato abaixo:

`python-requests/X.Y.Z`

Onde `X.Y.Z` é a versão do pacote `requests` instalado no seu projeto.

Verifique se a string acima é realmente o agente de usuário Requests fazendo uma solicitação GET para o endpoint [httpbin.io](https://httpbin.io/) `/user-agent`. Essa API retorna o cabeçalho `User-Agent` lido da solicitação recebida. Em outros termos, permite que você verifique o agente do usuário definido automaticamente por um cliente HTTP.

Importe `requests` e use seu método [get()](https://requests.readthedocs.io/en/latest/api/#requests.get) para realizar a solicitação HTTP desejada:

```none
import requests

# make an HTTP GET request to the specified URL

response = requests.get('https://httpbin.io/user-agent')

# parse the API response as JSON and print it

print(response.json())
```

Execute o trecho de Python acima e você obterá algo assim:

```none
`{'user-agent': 'python-requests/2.32.3'}`
```

O agente do usuário é `python-requests/2.32.3`, que identifica claramente a solicitação como originária da biblioteca `requests`. Como resultado, [sistemas anti-bot](https://brightdata.com.br/webinar/bot-detection) podem marcar tal solicitação como não proveniente de um usuário humano e bloqueá-la imediatamente. É por isso que é tão crucial alterar o valor do agente de usuário Python Requests!

Para obter mais informações, confira nosso guia completo [sobre a biblioteca Requests do Python](/blog/dados-do-site/python-requests-guide).

## Como alterar o agente de usuário de Requests do Python

Vamos ver como alterar e remover a definição do valor do cabeçalho `User-Agent` em Requests!

**Definir um agente de usuário personalizado**

As solicitações não fornecem uma opção direta para definir o valor do agente de usuário. Ao mesmo tempo, `User-Agent` nada mais é do que um cabeçalho HTTP. Portanto, você pode personalizar seu valor como qualquer outro cabeçalho HTTP usando a opção [`headers`](https://requests.readthedocs.io/en/latest/user/quickstart/#custom-headers) conforme abaixo:

```none
import requests

# custom user agent header

headers = {

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

}

# make an HTTP GET request to the specified URL

# setting custom headers

response = requests.get('https://httpbin.io/user-agent', headers=headers)

# parse the API response as JSON and print it

print(response.json())
```

Execute o trecho de Python acima de novo, e desta vez ele gerará:

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

Excelente! Você acabou de aprender que, para definir um agente de usuário personalizado em requests de Python, você precisa:

1. Definir um dicionário [Python](https://docs.python.org/3/tutorial/datastructures.html#dictionaries) com uma propriedade `user-agent`.
2. Passe o dicionário para o parâmetro `headers` do método `requests` que você está usando para fazer a solicitação HTTP.

Não se esqueça de que os nomes dos cabeçalhos HTTP não diferenciam maiúsculas de minúsculas, então os nomes das propriedades no dicionário de cabeçalhos podem ter o formato que você preferir.

**Nota**: essa abordagem também funciona com `request()`, `post()`, `patch()`, `put()`, `delete()` e `head()`.

Para definir um agente de usuário global de `requests`, você precisa configurar uma sessão HTTP personalizada da seguinte forma:

```none
import requests

# initialize an HTTP session

session = requests.Session()

# set a custom header in the session

session.headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36'

# perform a GET request within the HTTP session

response = session.get('https://httpbin.io/user-agent')

# print the data returned by the API

print(response.json())

# other requests with a custom user agent within the session ...
```

Isso produzirá a mesma saída de antes. Se você não estiver familiarizado com as sessões HTTP em Requests, [confira a documentação](https://requests.readthedocs.io/en/latest/user/advanced/#session-objects).

**Desativar o agente de usuário**

Fazer solicitações HTTP sem definir o agente do usuário é uma prática ruim que pode acionar facilmente soluções anti-bot. No entanto, há situações em que talvez seja necessário remover o cabeçalho `User-Agent`.

A primeira abordagem para remover o agente de usuário em Requests que você pode criar é definir o cabeçalho `User-Agent` como `None`:

```none
import requests

# custom user agent header

headers = {

  'user-agent': None

}

# make an HTTP GET request to the specified URL

# setting custom headers

response = requests.get('https://httpbin.io/user-agent', headers=headers)

# parse the API response as JSON and print it

print(response.json())
```

Isso não funcionará porque `requests` usa [`urllib3`](https://github.com/urllib3/urllib3) nos bastidores. Portanto, ele assumirá como padrão o valor do agente de usuário `urllib3`:

```none
`python-urllib3/2.2.1`
```

Em detalhes, o endpoint `/user-agent` retornará algo como:

```none
`{'user-agent': 'python-urllib3/2.2.1'}`
```

Em vez disso, o que você precisa fazer é configurar `urllib3` para ignorar o valor padrão do agente de usuário usando `urllib3.util.SKIP_HEADER`. Verifique se o agente do usuário foi desativado direcionando o endpoint [`/`](https://httpbin.io/headers)[`headers`](https://httpbin.io/headers) do httpbin.io, que retorna os cabeçalhos HTTP da solicitação recebida:

```none
import requests

import urllib3

# exclude the default user agent value

headers = {

  'user-agent': urllib3.util.SKIP_HEADER

}

# prepare the HTTP request to make

req = requests.Request('GET', 'https://httpbin.io/headers')

prepared_request = req.prepare()

# set the custom headers with no user agent

prepared_request.headers = headers

# create a requests session and perform

# the request

session = requests.Session()

response = session.send(prepared_request)

# print the returned data

print(response.json())
```

Execute o código Python acima e você receberá:

```none
`{'headers': {'Accept-Encoding': ['identity'], 'Host': ['httpbin.io']}}`
```

Incrível! Como esperado, nenhum agente de usuário em requests do Python.

## Implemente a rotação do agente de usuário nas solicitações

Alterar o cabeçalho padrão `User-Agent` para um valor adequado de um navegador real pode não ser suficiente. Se você fizer muitas solicitações do mesmo endereço IP usando o mesmo agente de usuário, isso poderá gerar suspeitas por parte das tecnologias anti-bot. Esses sistemas monitoram todas as solicitações recebidas, sabendo que as solicitações automatizadas geralmente seguem padrões regulares.

A chave para evitar a detecção de bots é randomizar suas solicitações. Uma boa maneira de tornar cada solicitação diferente da outra é [rotação do agente de usuário](https://brightdata.com.br/blog/procedimentos/user-agents-for-web-scraping-101). A ideia por trás dessa técnica é continuar alterando o cabeçalho do agente do usuário usado pelo cliente HTTP. Dessa forma, você pode fazer com que suas solicitações automatizadas pareçam provenientes de navegadores diferentes, reduzindo o risco de acionar bloqueios ou banimentos temporários.

Agora, siga as etapas abaixo para implementar a rotação do agente do usuário em Requests!

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

Reúna uma lista de agentes de usuário adequados de um site como [User Agent String.com](https://useragentstring.com/pages/useragentstring.php) e armazene-a em um array Python:

```none
user_agents = [

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

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

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

    # other user agents...

]
```

**Etapa #2: extrair um agente de usuário aleatório**

Extraia aleatoriamente uma string de agente de usuário do array usando [`random.choice()`](https://docs.python.org/3/library/random.html#random.choice):

```none
`random_user_agent = random.choice(user_agents)`
```

Não esqueça que a linha acima requer a seguinte importação:

```none
`import random`
```

### **Etapa #3: definir o agente de usuário aleatório e fazer a solicitação HTTP**

Defina o dicionário de cabeçalho com o agente de usuário aleatório e use-o na solicitação `requests`:

```none
headers = {

  'user-agent': random_user_agent

}

response = requests.get('https://httpbin.io/user-agent', headers=headers)

print(response.json())
```

Essas instruções exigem esta importação:

```none
`import requests`
```

### **Step #4: juntar tudo**

Esta é a aparência da lógica de rotação do agente de usuário do Python Requests:

```none
import random

import requests

# list of user agents

user_agents = [

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

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

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

    # other user agents...

]

# pick a random user agent from the list

random_user_agent = random.choice(user_agents)

# set the random user agent

headers = {

  'user-agent': random_user_agent

}

# perform a GET request to the specified URL

# and print the response data

response = requests.get('https://httpbin.io/user-agent', headers=headers)

print(response.json())
```

Execute esse script algumas vezes e você obterá diferentes sequências de agentes de usuário.

E pronto! Agora você é mestre em definir os valores do agente de usuário no Requests do Python.

## Conclusão

Neste guia, você aprendeu a importância de definir o cabeçalho `User-Agent` e como fazer isso em `requests`. Dessa forma, você pode fazer com que os sistemas anti-bot básicos pensem que suas solicitações vêm de navegadores legítimos. No entanto, soluções avançadas ainda podem detectar e bloquear você. Para evitar banimento de IP, você poderia [usar um proxy com `requests`](https://brightdata.com.br/blog/proxies-101/proxy-with-python-requests), mas mesmo isso pode não ser suficiente!

Evite essas complicações com [Web Scraper API](https://brightdata.com.br/products/web-scraper). Essa API de extração de última geração fornece tudo o que você precisa para realizar solicitações automatizadas da web usando `requests` ou qualquer outro cliente HTTP. Ela ignora facilmente as tecnologias anti-bot para você, contando com recursos como IP e rotação de agentes de usuário. Nunca foi tão fácil fazer solicitações automatizadas bem-sucedidas!

Converse com um de nossos especialistas em dados sobre nossas soluções de extração de dados ou simplesmente explore todos os produtos disponíveis registrando-se agora. Testes gratuitos disponíveis!



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+de+usu%C3%A1rio+do+Python+Requests%3A+configura%C3%A7%C3%A3o+e+altera%C3%A7%C3%A3o&u=https://brightdata.com.br/blog/dados-do-site/requests-user-agent) [ ](https://www.linkedin.com/shareArticle?mini=true&title=Guia+do+agente+de+usu%C3%A1rio+do+Python+Requests%3A+configura%C3%A7%C3%A3o+e+altera%C3%A7%C3%A3o&url=https://brightdata.com.br/blog/dados-do-site/requests-user-agent) [ ](http://www.reddit.com/submit?title=Guia+do+agente+de+usu%C3%A1rio+do+Python+Requests%3A+configura%C3%A7%C3%A3o+e+altera%C3%A7%C3%A3o&url=https://brightdata.com.br/blog/dados-do-site/requests-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)

 [ ![How to Set a Proxy in Node-Fetch blog image](https://media.brightdata.com.br/2023/10/How-to-Set-a-Proxy-in-Node-Fetch-1.svg) ](https://brightdata.com.br/blog/proxies-101/proxy-in-node-fetch "Como usar Proxies com node-fetch")

 [Proxy 101



 ![White number one with a flame on top.](https://media.brightdata.com.br/2023/03/Favicon-2-1-50x50.png)

Ryan Peden





### Como usar Proxies com node-fetch

Aprenda como configurar um proxy em Node-Fetch neste guia passo a passo.



 18-Oct-2023

 9 min de leitura

 ](https://brightdata.com.br/blog/proxies-101/proxy-in-node-fetch)

 [ ![Fetch API in NodeJS](https://media.brightdata.com.br/2023/10/Fetch-API-in-Node-JS.svg) ](https://brightdata.com.br/blog/procedimentos/fetch-api-nodejs "Solicitações HTTP em Node.js com a API Fetch")

 [procedimentos



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

Antonello Zanini

Technical Writer





### Solicitações HTTP em Node.js com a API Fetch

Neste guia, você aprenderá como fazer solicitações HTTP em Node.js com a API Fetch



 01-Oct-2023

 9 min de leitura

 ](https://brightdata.com.br/blog/procedimentos/fetch-api-nodejs)
