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

Como lidar com os bloqueios de raspagem da web: métodos práticos que funcionam
Aprenda como lidar efetivamente com os bloqueios de scraping na web. Descubra métodos práticos, insights técnicos sobre detecção de bots e soluções confiáveis para extração de dados.

Ethan Collins
03-Apr-2026

Otimizar o tempo de resposta da API de resolução de CAPTCHA para automação mais rápida
Aprenda como otimizar o tempo de resposta da API de resolução de CAPTCHA para automação mais rápida e confiável. Este guia aborda fatores-chave como a complexidade do CAPTCHA, o desempenho da API e as estratégias de polling, com dicas práticas usando o CapSolver para alcançar tempos de resolução abaixo de 10 segundos.

Adélia Cruz
03-Apr-2026

Técnicas de Anti-Deteção para Web Scraping: Extração de Dados Estável
Domine técnicas anti-deteção de web scraping para garantir a extração estável de dados. Aprenda a evitar a detecção com rotação de IP, otimização de cabeçalhos, fingerprinting de navegador e métodos de resolução de CAPTCHA.

Anh Tuan
03-Apr-2026

API de Resolução de CAPTCHA vs Resolução Manual: Custos & Eficiência (2026)
Compare API de resolução de CAPTCHA vs resolução manual. Aprenda sobre custos, velocidade e eficiência. Descubra por que APIs com inteligência artificial como a CapSolver são a melhor escolha para automação.

Adélia Cruz
03-Apr-2026

Tempo de Resposta da API de Resolução de CAPTCHA Explicado: Fatores de Velocidade e Desempenho
Entenda o tempo de resposta da API de resolução de CAPTCHA, seu impacto na automação e os principais fatores que afetam a velocidade. Aprenda como otimizar o desempenho e aproveitar soluções eficientes como a CapSolver para resolução rápida de CAPTCHA.

Emma Foster
03-Apr-2026

O que é uma API de resolução de CAPTCHA? Como Funciona e Quando Usá-la
Aprenda o que é uma API de resolução de CAPTCHA, como ela funciona e quando usá-la para automação. Descubra os benefícios da resolução de CAPTCHA com inteligência artificial para raspagem de dados.

Sora Fujimoto
02-Apr-2026


