
Adélia Cruz
Neural Network Developer
O User Agent é uma string especial encontrada nos cabeçalhos de solicitações que permite que os servidores identifiquem o sistema operacional e a versão do cliente, o tipo e a versão do navegador e outros detalhes.
Para navegadores normais, as strings do User Agent se parecem com isto:
Google Chrome versão 128 no sistema operacional Windows:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36
Firefox:
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:130.0) Gecko/20100101 Firefox/130.0
No entanto, no Colly (uma estrutura de web scraping), o User Agent padrão é:
colly - https://github.com/gocolly/colly
No contexto do scraping de dados, uma das medidas anti-scraping mais comuns é determinar se a solicitação está vindo de um navegador normal examinando o User Agent. Isso ajuda a identificar bots.
O User Agent padrão do Colly é obviamente equivalente a dizer diretamente ao site de destino: "Eu sou um bot." Isso torna fácil para os sites detectarem e potencialmente bloquearem tentativas de scraping usando Colly com suas configurações padrão.
Reclame seu Código Bônus para as melhores soluções de captcha; CapSolver: WEBS. Após resgatá-lo, você receberá um bônus extra de 5% após cada recarga, Ilimitado
Antes de mergulhar no código, vamos dar uma olhada rápida no porquê de mudar o User-Agent ser crucial:
Certamente! Vou traduzir o texto para o inglês e formatá-lo adequadamente. Aqui está a versão traduzida e formatada:
Podemos verificar o valor do nosso User Agent acessando https://httpbin.org/user-agent. O Colly fornece principalmente três métodos para lidar com solicitações:
Aqui está um exemplo completo de código para acessar o httpbin e imprimir o User Agent:
package main
import (
"github.com/gocolly/colly"
"log"
)
func main() {
// Crie um novo coletor
c := colly.NewCollector()
// Chame o retorno de chamada onResponse e imprima o conteúdo HTML
c.OnResponse(func(r *colly.Response) {
log.Println(string(r.Body))
})
// Lidar com erros de solicitação
c.OnError(func(e *colly.Response, err error) {
log.Println("Solicitação falhou, err:", err)
})
// Comece a raspar
err := c.Visit("https://httpbin.org/user-agent")
if err != nil {
log.Fatal(err)
}
}
Isso produzirá:
{
"user-agent": "colly - https://github.com/gocolly/colly"
}
O Colly fornece o método colly.UserAgent para personalizar o User Agent. Se você quiser usar diferentes User Agents para cada solicitação, pode definir uma lista de User Agents e selecionar aleatoriamente a partir dela. Aqui está um exemplo:
package main
import (
"github.com/gocolly/colly"
"log"
"math/rand"
)
var userAgents = []string{
"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:130.0) Gecko/20100101 Firefox/130.0",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 Edg/128.0.0.0",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 OPR/113.0.0.0",
}
func main() {
// Crie um novo coletor
c := colly.NewCollector(
// Defina o user agent
colly.UserAgent(userAgents[rand.Intn(len(userAgents))]),
)
// Chame o retorno de chamada onResponse e imprima o conteúdo HTML
c.OnResponse(func(r *colly.Response) {
log.Println(string(r.Body))
})
// Lidar com erros de solicitação
c.OnError(func(e *colly.Response, err error) {
log.Println("Solicitação falhou, err:", err)
})
// Comece a raspar
err := c.Visit("https://httpbin.org/user-agent")
if err != nil {
log.Fatal(err)
}
}
Em vez de manter uma lista personalizada de User Agent, podemos usar a biblioteca fake-useragent para gerar User Agents aleatórios. Aqui está um exemplo:
package main
import (
browser "github.com/EDDYCJY/fake-useragent"
"github.com/gocolly/colly"
"log"
)
func main() {
// Crie um novo coletor
c := colly.NewCollector(
// Defina o user agent
colly.UserAgent(browser.Random()),
)
// Chame o retorno de chamada onResponse e imprima o conteúdo HTML
c.OnResponse(func(r *colly.Response) {
log.Println(string(r.Body))
})
// Lidar com erros de solicitação
c.OnError(func(e *colly.Response, err error) {
log.Println("Solicitação falhou, err:", err)
})
// Comece a raspar
err := c.Visit("https://httpbin.org/user-agent")
if err != nil {
log.Fatal(err)
}
}
Embora a randomização de User Agents no Colly possa ajudar a evitar ser identificado como um bot em certa medida, pode não ser suficiente ao enfrentar desafios anti-bot mais sofisticados. Exemplos de tais desafios incluem reCAPTCHA, Cloudflare Turnstile e outros. Esses sistemas verificam a validade dos cabeçalhos de sua solicitação, verificam sua impressão digital do navegador, avaliam o risco de seu IP e podem exigir parâmetros complexos de criptografia JS ou tarefas de reconhecimento de imagem difíceis.
Esses desafios podem dificultar significativamente seus esforços de scraping de dados. No entanto, não há necessidade de se preocupar - todos os desafios de bot mencionados anteriormente podem ser tratados pelo CapSolver. O CapSolver usa tecnologia de Auto Web Unblock baseada em IA para resolver CAPTCHAs automaticamente. Todas as tarefas complexas podem ser resolvidas com sucesso em segundos.
O site oficial fornece SDKs em várias linguagens, facilitando a integração ao seu projeto. Você pode consultar a documentação do CapSolver para obter mais informações sobre como implementar essa solução em seus projetos de scraping.
Certamente! Aqui está uma conclusão para o artigo sobre a mudança de User Agents no Go Colly:
Mudar o User-Agent no Go Colly é uma técnica crucial para web scraping eficaz e resiliente. Implementando User Agents personalizados, você pode reduzir significativamente o risco de seu scraper ser detectado e bloqueado por sites de destino. Aqui está um resumo dos pontos-chave que cobrimos:
Aprendemos por que mudar o User-Agent é importante para projetos de web scraping.
Exploramos diferentes métodos para definir User Agents personalizados no Colly, incluindo:
Discutimos como essas técnicas podem ajudar a imitar o comportamento real do navegador e evitar a detecção.
Para desafios anti-bot mais avançados, apresentamos o conceito de usar ferramentas especializadas como o CapSolver para lidar com CAPTCHAs e outros sistemas de verificação complexos.
Lembre-se de que, embora mudar User Agents seja uma estratégia eficaz, é apenas uma parte do web scraping responsável e eficiente. Sempre respeite os termos de serviço e os arquivos robots.txt dos sites, implemente a limitação de taxa e considere as implicações éticas de suas atividades de scraping.
Combinando essas técnicas com outras práticas recomendadas em web scraping, você pode criar scrapers mais robustos e confiáveis usando o Go Colly. À medida que as tecnologias da web continuam a evoluir, manter-se atualizado com as últimas técnicas e ferramentas de scraping será crucial para manter a eficácia de seus projetos de web scraping.
Importante: Ao se envolver em web scraping, é crucial seguir as diretrizes legais e éticas. Sempre certifique-se de ter permissão para raspar o site de destino e respeite o arquivo
robots.txte os termos de serviço do site. O CapSolver se opõe firmemente ao uso indevido de nossos serviços para qualquer atividade não compatível. O uso indevido de ferramentas automatizadas para contornar CAPTCHAs sem autorização adequada pode levar a consequências legais. Certifique-se de que suas atividades de scraping estejam em conformidade com todas as leis e regulamentos aplicáveis para evitar potenciais problemas.
Descubra o CapSolver, o principal solucionador de CAPTCHA sem código para automação de IA em 2026, para simplificar fluxos de trabalho e melhorar a coleta de dados sem programação. Conheça seus principais recursos, benefícios e uso ético.

Um guia completo sobre a infraestrutura de resolução de CAPTCHA que impulsiona os navegadores Agentic. Aprenda por que os CAPTCHAs são o principal obstáculo para agentes de IA e como o CapSolver fornece a solução essencial para automação web sem interrupções.
