Cambiar agentes de usuario para el web scraping con Go Colly

Ethan Collins
Pattern Recognition Specialist
27-Sep-2024
¿Qué es el Agente de Usuario de Colly?
El Agente de Usuario es una cadena especial que se encuentra en los encabezados de las solicitudes y permite a los servidores identificar el sistema operativo y la versión del cliente, el tipo de navegador y su versión, y otros detalles.
Para los navegadores normales, las cadenas de Agente de Usuario se parecen a esto:
-
Google Chrome versión 128 en el sistema operativo 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
Sin embargo, en Colly (un framework de raspado web), el Agente de Usuario predeterminado es:
colly - https://github.com/gocolly/colly
En el contexto del raspado de datos, una de las medidas anti-raspado más comunes es determinar si la solicitud proviene de un navegador normal examinando el Agente de Usuario. Esto ayuda a identificar bots.
El Agente de Usuario predeterminado de Colly es obviamente equivalente a decirle directamente al sitio web de destino: "Soy un bot". Esto facilita que los sitios web detecten y bloqueen potencialmente los intentos de raspado que utilizan Colly con su configuración predeterminada.
Código adicional
Reclama tu Código de bonificación para las mejores soluciones de captcha; CapSolver: WEBS. Después de canjearlo, obtendrás un bono adicional del 5% después de cada recarga, Ilimitado
¿Por qué cambiar el Agente de Usuario?
Antes de sumergirnos en el código, echemos un vistazo rápido a por qué es crucial cambiar el Agente de Usuario:
- Evitar la detección: Muchos sitios web utilizan mecanismos anti-bot que analizan las cadenas de Agente de Usuario entrantes para detectar patrones sospechosos o repetitivos. Si tu raspador envía el mismo Agente de Usuario en cada solicitud, se convierte en un objetivo fácil para la detección.
- Imitar navegadores reales: Al cambiar la cadena de Agente de Usuario, tu raspador puede imitar navegadores reales como Chrome, Firefox o Safari, lo que reduce la probabilidad de que se le marque como un bot.
- Mejorar la experiencia del usuario y resolver CAPTCHA: Muchos sitios web utilizan desafíos CAPTCHA para verificar que un usuario no es un bot, lo que garantiza una experiencia de navegación más segura. Sin embargo, para las tareas de automatización, estos desafíos pueden interrumpir el flujo de trabajo. Si tu raspador encuentra estos desafíos CAPTCHA, puedes integrar herramientas como CapSolver para resolverlos automáticamente, lo que permite que tu automatización continúe sin problemas sin interrupciones.
Cómo configurar un Agente de Usuario personalizado en Colly
¡Por supuesto! Traduciré el texto al español y lo formatearé correctamente. Aquí tienes la versión traducida y formateada:
Manejando Agentes de Usuario en Colly
Podemos comprobar el valor de nuestro Agente de Usuario visitando https://httpbin.org/user-agent. Colly proporciona principalmente tres métodos para gestionar las solicitudes:
- Visitar: Acceder al sitio web de destino
- OnResponse: Procesar el contenido de la respuesta
- OnError: Manejar errores de solicitud
Aquí tienes un ejemplo completo de código para acceder a httpbin e imprimir el Agente de Usuario:
go
package main
import (
"github.com/gocolly/colly"
"log"
)
func main() {
// Crear un nuevo recolector
c := colly.NewCollector()
// Llamar a la devolución de llamada onResponse e imprimir el contenido HTML
c.OnResponse(func(r *colly.Response) {
log.Println(string(r.Body))
})
// Manejar errores de solicitud
c.OnError(func(e *colly.Response, err error) {
log.Println("Solicitud fallida, err:", err)
})
// Comenzar a raspar
err := c.Visit("https://httpbin.org/user-agent")
if err != nil {
log.Fatal(err)
}
}
Esto imprimirá:
json
{
"user-agent": "colly - https://github.com/gocolly/colly"
}
Personalización de Agentes de Usuario
Colly proporciona el método colly.UserAgent para personalizar el Agente de Usuario. Si quieres utilizar diferentes Agentes de Usuario para cada solicitud, puedes definir una lista de Agentes de Usuario y seleccionarlos aleatoriamente. Aquí tienes un ejemplo:
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() {
// Crear un nuevo recolector
c := colly.NewCollector(
// Establecer el agente de usuario
colly.UserAgent(userAgents[rand.Intn(len(userAgents))]),
)
// Llamar a la devolución de llamada onResponse e imprimir el contenido HTML
c.OnResponse(func(r *colly.Response) {
log.Println(string(r.Body))
})
// Manejar errores de solicitud
c.OnError(func(e *colly.Response, err error) {
log.Println("Solicitud fallida, err:", err)
})
// Comenzar a raspar
err := c.Visit("https://httpbin.org/user-agent")
if err != nil {
log.Fatal(err)
}
}
Utilizando la biblioteca fake-useragent
En lugar de mantener una lista de Agentes de Usuario personalizada, podemos utilizar la biblioteca fake-useragent para generar Agentes de Usuario aleatorios. Aquí tienes un ejemplo:
go
package main
import (
browser "github.com/EDDYCJY/fake-useragent"
"github.com/gocolly/colly"
"log"
)
func main() {
// Crear un nuevo recolector
c := colly.NewCollector(
// Establecer el agente de usuario
colly.UserAgent(browser.Random()),
)
// Llamar a la devolución de llamada onResponse e imprimir el contenido HTML
c.OnResponse(func(r *colly.Response) {
log.Println(string(r.Body))
})
// Manejar errores de solicitud
c.OnError(func(e *colly.Response, err error) {
log.Println("Solicitud fallida, err:", err)
})
// Comenzar a raspar
err := c.Visit("https://httpbin.org/user-agent")
if err != nil {
log.Fatal(err)
}
}
Integrando CapSolver
Si bien la aleatorización de los Agentes de Usuario en Colly puede ayudar a evitar ser identificado como un bot hasta cierto punto, puede no ser suficiente cuando se enfrentan a desafíos anti-bot más sofisticados. Los ejemplos de estos desafíos incluyen reCAPTCHA, captcha, captcha, captcha WAF, captcha, Cloudflare Turnstile y otros. Estos sistemas comprueban la validez de los encabezados de tu solicitud, verifican tu huella digital del navegador, evalúan el riesgo de tu IP y pueden requerir parámetros de encriptación JS complejos o tareas difíciles de reconocimiento de imágenes.
Estos desafíos pueden obstaculizar significativamente tus esfuerzos de raspado de datos. Sin embargo, no hay que preocuparse, todos los desafíos de bots mencionados anteriormente se pueden manejar con CapSolver. CapSolver utiliza tecnología de desbloqueo web automático basada en IA para resolver CAPTCHAs automáticamente. Todas las tareas complejas se pueden resolver con éxito en cuestión de segundos.
El sitio web oficial proporciona SDKs en varios idiomas, lo que facilita su integración en tu proyecto. Puedes consultar la documentación de CapSolver para obtener más información sobre cómo implementar esta solución en tus proyectos de raspado.
¡Por supuesto! Aquí tienes una conclusión para el artículo sobre el cambio de Agentes de Usuario en Go Colly:
Conclusión
Cambiar el Agente de Usuario en Go Colly es una técnica crucial para un raspado web efectivo y resistente. Al implementar Agentes de Usuario personalizados, puedes reducir significativamente el riesgo de que tu raspador sea detectado y bloqueado por los sitios web de destino. Aquí tienes un resumen de los puntos clave que hemos cubierto:
-
Hemos aprendido por qué es importante cambiar el Agente de Usuario para los proyectos de raspado web.
-
Hemos explorado diferentes métodos para establecer Agentes de Usuario personalizados en Colly, incluyendo:
- Utilizar una lista predefinida de Agentes de Usuario
- Implementar la selección aleatoria de esta lista
- Utilizar la biblioteca fake-useragent para obtener opciones más diversas
-
Hemos discutido cómo estas técnicas pueden ayudar a imitar el comportamiento de los navegadores reales y evitar la detección.
-
Para desafíos anti-bot más avanzados, hemos introducido el concepto de utilizar herramientas especializadas como CapSolver para manejar CAPTCHAs y otros sistemas de verificación complejos.
Recuerda, si bien cambiar los Agentes de Usuario es una estrategia efectiva, es solo una parte del raspado web responsable y eficiente. Respeta siempre los términos de servicio y los archivos robots.txt de los sitios web, implementa la limitación de frecuencia y considera las implicaciones éticas de tus actividades de raspado.
Al combinar estas técnicas con otras mejores prácticas en el raspado web, puedes crear raspadores más robustos y fiables utilizando Go Colly. A medida que las tecnologías web continúan evolucionando, mantenerse actualizado con las últimas técnicas y herramientas de raspado será crucial para mantener la efectividad de tus proyectos de raspado web.
Nota sobre el cumplimiento
Importante: Al realizar raspado web, es crucial adherirse a las directrices legales y éticas. Asegúrate siempre de tener permiso para raspar el sitio web de destino y respeta el archivo
robots.txty los términos de servicio del sitio. CapSolver se opone firmemente al uso indebido de nuestros servicios para cualquier actividad no conforme. El uso indebido de herramientas automatizadas para eludir CAPTCHAs sin autorización adecuada puede acarrear consecuencias legales. Asegúrate de que tus actividades de raspado cumplen con todas las leyes y regulaciones aplicables para evitar posibles problemas.
Aviso de Cumplimiento: La información proporcionada en este blog es solo para fines informativos. CapSolver se compromete a cumplir con todas las leyes y regulaciones aplicables. El uso de la red de CapSolver para actividades ilegales, fraudulentas o abusivas está estrictamente prohibido y será investigado. Nuestras soluciones para la resolución de captcha mejoran la experiencia del usuario mientras garantizan un 100% de cumplimiento al ayudar a resolver las dificultades de captcha durante el rastreo de datos públicos. Fomentamos el uso responsable de nuestros servicios. Para obtener más información, visite nuestros Términos de Servicio y Política de Privacidad.
Máse

¿Qué es la mejor extensión para resolver CAPTCHA 2026?
En el mundo en constante evolución de la seguridad en línea, los desafíos CAPTCHA se han convertido en un obstáculo común para los usuarios de internet...

Lucas Mitchell
12-Dec-2025

Lumiproxy: Proxy Premium para Raspado de Web y Recolección de Datos
En este artículo, mostraremos qué es Lumiproxy y los servicios que ofrecen.

Ethan Collins
12-Dec-2025

Genlogin: Revoluciona tu experiencia de automatización web
En este artículo, te mostraremos qué es Genlogin y los servicios que ofrecen.

Rajinder Singh
12-Dec-2025

Proxys.io: Proxys individuales para cualquier tarea
En este artículo, te mostraremos qué es Proxys.io y los servicios que ofrecen.

Nikolai Smirnov
12-Dec-2025

Tabproxy: Buen valor de proxy residencial en el extranjero
En este artículo, te mostraremos qué es Tabproxy y los servicios que ofrecen.

Lucas Mitchell
12-Dec-2025

Proxys Residenciales IP2World: Soluciones Líderes Globales de Proxy IP
En este artículo, les mostraremos qué es IP2World y los servicios que ofrecen.

Ethan Collins
12-Dec-2025


