---
title: "Guia do agente de usuário cURL: configuração e alteração"
slug: curl-user-agent
date: 2026-02-22T07:22:38+00:00
modified: 2026-02-22T07:22:39+00:00
permalink: https://brightdata.com.br/blog/dados-do-site/curl-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 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.

 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)





 ![cURL User Agent Guide blog image](https://media.brightdata.com.br/2024/05/cURL-User-Agent-Guide.svg)





Neste guia, você aprenderá:

- O que é o cabeçalho User-Agent e por que ele é tão importante
- Qual é o cabeçalho do agente do usuário cURL padrão
- Duas abordagens para definir strings de agente de usuário cURL
- Como implementar a lógica de rotação do agente do usuário no cURL

Vamos começar!

## O que é um agente do usuário e por que ele é importante?

Um agente do usuário é uma string que navegadores, aplicativos que fazem solicitações da web e clientes HTTP definem no cabeçalho HTTP [User-Agent](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent) para identificar o software cliente de onde a solicitação se origina. Essa string normalmente inclui informações como tipo de navegador/aplicativo, sistema operacional e outros detalhes.

Por exemplo, esta é uma string de agente do usuário real de uma solicitação do Chrome:

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

As informações neste cabeçalho são essenciais para determinar se as solicitações estão vindo de um navegador conhecido ou de outro software. [Os bots de scraping](/blog/how-tos/what-is-a-scraping-bot) tendem a usar strings de agente do usuário inconsistentes ou padrão, expondo sua natureza automatizada. Assim, o cabeçalho do agente do usuário ajuda as soluções anti-bot a entender se o usuário atual é real ou 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 cURL?

Assim como a maioria dos clientes HTTP, [o cURL](/faqs/curl/what-is-curl) define o cabeçalho User-Agent ao fazer uma solicitação HTTP. Em detalhes, a string do agente do usuário cURL é:

```none
`curl/X.Y.Z `
```

Onde X.Y.Z é a versão do cURL instalada em sua máquina.

Para verificar isso, faça uma solicitação cURL para o endpoint /user-agent do projeto [httpbin.io](https://httpbin.io/). Essa API retorna a string do cabeçalho User-Agent definida pelo chamador.

Faça uma solicitação GET para /user-agent com o cURL usando a seguinte instrução:

```none
`curl "https://httpbin.io/user-agent"`
```

**Observação**: no Windows, substitua curl por curl.exe. Isso ocorre porque curl é um alias para [Invoke-WebRequest](/blog/how-tos/powershell-invoke-webrequest-with-proxy) no PowerShell, enquanto curl.exe aponta para o executável cURL do Windows.

O endpoint deve retornar algo como isto:

```none
{

  "user-agent": "curl/8.4.0"

}
```

Como você pode ver, o agente do usuário definido pelo cURL é curl/8.4.0. Isso não é bom, pois identifica claramente que a solicitação vem do cURL. As soluções antibot adotadas pelos sites para proteger suas páginas e dados podem facilmente marcar essa solicitação como não proveniente de um usuário real, bloqueando-a de acordo.

É por isso que você precisa saber como definir strings de cabeçalho do agente do usuário cURL.

## Como definir o cabeçalho do agente do usuário cURL

Existem duas abordagens para definir um agente do usuário no cURL. Vamos explorar as duas!

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

A configuração de agentes de usuário é tão popular que o cURL vem com uma opção específica para isso. Em particular, a opção [-A ou –user-agent](https://curl.se/docs/manpage.html#-A) permite especificar a string a ser definida no cabeçalho User-Agent da solicitação HTTP feita pelo cURL.

Esta é a sintaxe para definir um cabeçalho de agente do usuário cURL usando essa opção:

```none
`curl -A|--user-agent "<user-agent_string>" "<url>"`
```

Considere o seguinte exemplo:

```none
`curl -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36" "https://httpbin.io/user-agent"`
```

A saída será:

```none
{

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

}
```

Ótimo! O agente do usuário detectado pelo endpoint httpbin.io /user-agent é o mesmo definido na solicitação.

Lembre-se de que a solicitação acima é equivalente a:

```none
`curl --user-agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/124.0.0.0 Safari/537.36" "https://httpbin.io/user-agent"`
```

Embora não seja recomendado, para desativar completamente o cabeçalho User-Agent, passe uma string vazia para -A. Verifique isso direcionando o endpoint [/headers](https://httpbin.io/headers) do httpbin.io, que retorna os cabeçalhos da solicitação recebida:

```none
`curl -A "" "https://httpbin.io/headers"`
```

O resultado será:

```none
{

  "headers": {

    "Accept": [

      "*/*"

    ],

    "Host": [

      "httpbin.io"

    ]

  }

}
```

Como esperado, não há cabeçalho User-Agent.

Se você quiser manter o cabeçalho User-Agent, mas atribuir a ele um valor em branco, passe uma string com um único espaço para -A:

```none
`curl -A " " "https://httpbin.io/headers"`
```

Desta vez, o endpoint retornará:

```none
{

  "headers": {

    "Accept": [

      "*/*"

    ],

    "Host": [

      "httpbin.io"

    ],

    "User-Agent": [

      ""

    ]

  }

}
```

Observe o valor vazio da string User-Agent.

**Defina um cabeçalho de agente de usuário personalizado**

Afinal, o User-Agent nada mais é do que um cabeçalho HTTP. Isso significa que você pode defini-lo como qualquer outro cabeçalho HTTP no cURL usando a[ opção](https://curl.se/docs/manpage.html#-H) [-H ou –header](https://curl.se/docs/manpage.html#-H):

```none
`curl -H|--header "User-Agent: <user-agent_string>" "<url>"`
```

Para um tutorial completo, leia nosso guia sobre [como enviar cabeçalhos HTTP com o cURL](/blog/how-tos/http-headers-with-curl).

Veja a opção -H em ação no exemplo a seguir:

```none
`curl -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36" "https://httpbin.io/user-agent"`
```

Observe que [os cabeçalhos HTTP são projetados para não diferenciar maiúsculas de minúsculas](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers), portanto, User-Agent é equivalente a user-agent.

O resultado será:

```none
{

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

}
```

Ótimo! O valor do agente do usuário foi definido conforme desejado.

O comando cURL acima é equivalente a:

```none
`curl --header "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36" "https://httpbin.io/user-agent"`
```

Para casos de uso especiais, considere as duas seguintes cadeias de caracteres de cabeçalho do agente do usuário cURL:

- “User-Agent:” para remover o cabeçalho User-Agent da solicitação.
- “User-Agent: ” para definir o cabeçalho User-Agent como uma string em branco.

## Implementar rotação de agente de usuário no cURL

Ao fazer solicitações automáticas em escala usando cURL, definir um valor fixo de User-Agent pode não ser suficiente. O problema é que [as tecnologias anti-bot](/webinar/bot-detection) monitoram todas as solicitações recebidas. Se elas perceberem muitas solicitações com os mesmos cabeçalhos e do mesmo IP, provavelmente tomarão medidas.

A chave para evitar a detecção e o bloqueio por sites ao fazer solicitações automatizadas é randomizá-las. Nesse sentido, a rotação de agentes de usuário ajuda a simular solicitações de diferentes navegadores. Isso reduz o risco de acionar banimentos temporários ou bloqueios.

Consiga a rotação do agente do usuário cURL com as três etapas a seguir:

1. **Colete agentes de usuário**: reúna uma lista de strings de agentes de usuário reais de vários navegadores, de diferentes versões e em diferentes dispositivos.
2. **Implemente a lógica de rotação**: selecione um agente de usuário aleatório da lista.
3. **Randomize as solicitações**: defina a string do agente do usuário selecionado na solicitação cURL.

A implementação desse procedimento requer algumas linhas de código, portanto, muda de sistemas baseados em Unix para Windows. Descubra como implementar a rotação de agentes de usuário no cURL em ambos os ambientes!

**Bash**

Colete uma lista de agentes de usuário válidos de um site como [User Agent String.com](https://useragentstring.com/pages/useragentstring.php) e armazene-a em uma variável de matriz:

```none
user_agents=(

    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.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"

)
```

Em seguida, implemente uma função que o extraia aleatoriamente da lista usando [RANDOM](https://tldp.org/LDP/abs/html/randomvar.html):

```none
get_random_user_agent() {

    # número de agentes de usuário na lista

    local count=${#user_agents[@]}

    # gera um número RANDOM de 0 a count

    local index=$((RANDOM % count))

    # retorne a string do agente do usuário extraída aleatoriamente

    echo "${agentes_usuários[$índice]}"

}
```

Chame a função, obtenha um agente de usuário rotativo e defina-o no cURL:

```none
# obtenha o agente de usuário aleatório

agente_de_usuário=$(get_random_user_agent)

# execute uma solicitação cURL para a URL fornecida

# usando o agente de usuário aleatório

curl -A "$agente_de_usuário" "https://httpbin.io/user-agent"
```

**Observação**: altere a URL de destino de acordo com seus objetivos.

Junte tudo e você obterá o seguinte arquivo bash:

```none
#!/bin/bash

# lista de strings de agentes de usuário

user_agents=(

    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.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")

get_random_user_agent() {

    # número de agentes de usuário na lista

    local count=${#user_agents[@]}

    # gera um número RANDOM de 0 a count

    local index=$((RANDOM % count))

    # retorna a string do agente de usuário extraída aleatoriamente

    echo "${user_agents[$index]}"

}

# obter o agente de usuário aleatório

agente_de_usuário=$(get_random_user_agent)

# realizar uma solicitação cURL para a URL fornecida

# usando o agente de usuário aleatório

curl -A "$agente_de_usuário" "https://httpbin.io/user-agent"
```

Execute o script acima e, a cada vez, você verá um agente de usuário diferente. Missão cumprida!

**PowerShell**

Recupere uma lista de agentes de usuário reais de um site como [o WhatIsMyBrowser.com](https://www.whatismybrowser.com/). Em seguida, armazene esses dados em uma [variável de matriz](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_arrays?view=powershell-7.4):

```none
$user_agents = @(

    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.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"

)
```

Em seguida, crie uma função que selecione aleatoriamente uma string de agente do usuário da lista e a retorne:

```none
função Get-RandomUserAgent {

    # número de agentes de usuário na lista

    $count = $user_agents.Count

    # gera um número aleatório de 0 a $count

    $index = Get-Random -Maximum $count

    # retorna o agente de usuário extraído aleatoriamente

    return $user_agents[$index]

}
```

Por fim, chame a função, obtenha o agente de usuário aleatório e use-o no cURL:

```none
# obter o agente de usuário aleatório

$user_agent = Get-RandomUserAgent

# fazer uma solicitação HTTP para a URL fornecida

# usando o agente de usuário aleatório

curl.exe -A "$user_agent" "https://httpbin.io/user-agent"
```

Junte tudo e você obterá o seguinte código:

```none
# lista de agentes de usuário

$agentes_de_usuário = @(

    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/124.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")

função Get-RandomUserAgent {

    # número de agentes de usuário na lista

    $count = $user_agents.Count

    # gera um número aleatório de 0 a $count

    $index = Get-Random -Maximum $count

    # retorna o agente de usuário extraído aleatoriamente

    return $user_agents[$index]

}

# obtém um agente de usuário aleatório

$user_agent = Get-RandomUserAgent

# faz uma solicitação HTTP para a URL fornecida

# usando o agente de usuário aleatório

curl.exe -A "$user_agent" "https://httpbin.io/user-agent"
```

Salve-o em um script .ps1 e execute-o algumas vezes. A cada vez, você obterá uma string de agente do usuário diferente.

Et voilà! Agora você é um mestre em definir strings de cabeçalho de agente de usuário cURL.

## Conclusão

Neste guia, você viu por que definir o cabeçalho User-Agent em um cliente HTTP é tão importante e como fazer isso no cURL. Dessa forma, você pode enganar alguns sistemas anti-bot, fazendo-os pensar que suas solicitações estão vindo de um navegador relacional. Ao mesmo tempo, soluções anti-bot avançadas ainda serão capazes de bloquear suas solicitações. Para contornar medidas como limitação de taxa, você pode [integrar um Proxy ao cURL](/blog/proxy-101/curl-with-proxies). No entanto, isso pode não ser suficiente!

Evite todo esse estresse e experimente [a API Scraper](/products/web-scraper). Por ser uma API de scraping abrangente, completa e de última geração, ela oferece tudo o que você precisa para realizar solicitações automatizadas na web usando o cURL ou qualquer outro cliente HTTP. Essa solução completa possui rotação de IP e agente do usuário e pode contornar qualquer tecnologia antibot. Fazer solicitações HTTP automatizadas nunca foi tão fácil!

Registre-se agora para uma avaliação gratuita da Infraestrutura de scraping de dados [da Bright Data](/) ou converse com um de nossos especialistas em dados sobre nossas soluções de scraping.



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







##  Você também pode estar interessado em

 [ ![curl post request guide](https://media.brightdata.com.br/2023/12/curl-GET-Request-Guide-1.svg) ](https://brightdata.com.br/blog/procedimentos/curl-post-request-guide "Guia de pedidos POST com curl")

 [procedimentos



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

Ivan Kahl





### Guia de pedidos POST com curl

Saiba mais sobre o pedido POST com cURL, o que é, como enviar um pedido POST com cURL e muito mais.



 06-Dec-2023

 12 min de leitura

 ](https://brightdata.com.br/blog/procedimentos/curl-post-request-guide)

 [ ![curl GET Request with PHP](https://media.brightdata.com.br/2023/11/curl-GET-Request-with-PHP.svg) ](https://brightdata.com.br/blog/procedimentos/curl-get-request-with-php "Pedido GET com curl em PHP")

 [procedimentos



 ![](https://media.brightdata.com.br/2023/08/Kevin-Kimani-50x50.png)

Kevin Kimani





### Pedido GET com curl em PHP

Guia de pedidos get com cURL em PHP. Saiba mais sobre o pedido GET e como implementar um pedido GET com curl em PHP.



 22-Nov-2023

 4 min de leitura

 ](https://brightdata.com.br/blog/procedimentos/curl-get-request-with-php)

 [ ![Guide to using cURL with Python](https://media.brightdata.com.br/2023/04/Guide-to-Using-cURL-with-Python.svg) ](https://brightdata.com.br/blog/procedimentos/curl-with-python "Guia para usar cURL com Python")

 [procedimentos



 ![](https://media.brightdata.com.br/2023/04/Roel-Peters-50x50.png)

Roel Peters





### Guia para usar cURL com Python

Neste artigo, aprenderá como o Python e o cURL podem ser utilizados em conjunto para automatizar pedidos GET, POST e PUT, e para descarregar ficheiros e páginas web.



 13-Apr-2023

 13 min de leitura

 ](https://brightdata.com.br/blog/procedimentos/curl-with-python)
