Mudando Agentes de Usuário para Web Scraping com Go Colly

Adélia Cruz
Neural Network Developer
27-Sep-2024
O que é o User Agent do Colly?
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.
Código Bônus
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
Por que mudar o User-Agent?
Antes de mergulhar no código, vamos dar uma olhada rápida no porquê de mudar o User-Agent ser crucial:
- Evite a detecção: Muitos sites usam mecanismos anti-bot que analisam as strings de User-Agent recebidas para detectar padrões suspeitos ou repetitivos. Se seu scraper enviar o mesmo User-Agent em cada solicitação, ele se torna um alvo fácil para detecção.
- Imite navegadores reais: Ao mudar a string do User-Agent, seu scraper pode imitar navegadores reais como Chrome, Firefox ou Safari, tornando menos provável que seja sinalizado como um bot.
- Melhore a experiência do usuário e resolva o CAPTCHA: Muitos sites usam desafios CAPTCHA para verificar se um usuário não é um bot, garantindo uma experiência de navegação mais segura. No entanto, para tarefas de automação, esses desafios podem interromper o fluxo de trabalho. Se seu scraper encontrar esses desafios CAPTCHA, você pode integrar ferramentas como CapSolver para resolvê-los automaticamente, permitindo que sua automação continue sem interrupções.
Como configurar o User Agent personalizado no Colly
Certamente! Vou traduzir o texto para o inglês e formatá-lo adequadamente. Aqui está a versão traduzida e formatada:
Lidando com User Agents no Colly
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:
- Visitar: acesse o site de destino
- OnResponse: processe o conteúdo da resposta
- OnError: trate erros de solicitação
Aqui está um exemplo completo de código para acessar o httpbin e imprimir o User Agent:
go
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á:
json
{
"user-agent": "colly - https://github.com/gocolly/colly"
}
Personalizando User Agents
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:
go
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)
}
}
Usando a biblioteca fake-useragent
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:
go
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)
}
}
Integrando o CapSolver
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:
Conclusão
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:
- Usar uma lista predefinida de User Agents
- Implementando seleção aleatória a partir desta lista
- Utilizando a biblioteca fake-useragent para opções mais diversas
-
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.
Nota sobre Conformidade
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.
Declaração de Conformidade: As informações fornecidas neste blog são apenas para fins informativos. A CapSolver está comprometida em cumprir todas as leis e regulamentos aplicáveis. O uso da rede CapSolver para atividades ilegais, fraudulentas ou abusivas é estritamente proibido e será investigado. Nossas soluções de resolução de captcha melhoram a experiência do usuário enquanto garantem 100% de conformidade ao ajudar a resolver dificuldades de captcha durante a coleta de dados públicos. Incentivamos o uso responsável de nossos serviços. Para mais informações, visite nossos Termos de Serviço e Política de Privacidade.
Mais

Qual é a melhor extensão para resolver CAPTCHA 2026?
No mundo em constante evolução da segurança online, os desafios CAPTCHA tornaram-se uma barreira comum para os usuários da internet...

Sora Fujimoto
12-Dec-2025

Lumiproxy: Proxy Premium para Scraping de Web e Coleta de Dados
Neste artigo, mostraremos o que é Lumiproxy e os serviços que eles oferecem.

Ethan Collins
12-Dec-2025

Genlogin: Revolutionar sua experiência de automação da web
Neste artigo, vamos mostrar para você o que é o Genlogin e os serviços que eles oferecem.

Rajinder Singh
12-Dec-2025

Proxys.io: Proxies individuais para qualquer tarefa
Neste artigo, vamos mostrar para você o que é o Proxys.io e os serviços que eles oferecem.

Rajinder Singh
12-Dec-2025

Tabproxy: Bom custo proxy residencial internacional
Neste artigo, vamos mostrar para você o que é o Tabproxy e os serviços que eles oferecem.

Ethan Collins
12-Dec-2025

O que são erros 402, 403, 404 e 429 em raspagem de web? Um Guia Completo
Domine o tratamento de erros de raspagem de web entendendo o que são os erros 402, 403, 404 e 429. Aprenda a corrigir o erro 403 Proibido, implementar soluções para o erro de limitação de taxa 429 e tratar o código de status Payment Required emergente 402.

Lucas Mitchell
12-Dec-2025


