Nesta publicação irá aprender:
¿Qué es un agente de usuario?
El término se refiere a cualquier pieza de software que facilita la interacción del usuario final con el contenido web. Una cadena de agente de usuario (UA) es un texto que el software del ordenador cliente envía a través de una solicitud.
La cadena de agente de usuario ayuda al servidor de destino a identificar qué navegador, tipo de dispositivo y sistema operativo se está utilizando. Por ejemplo, la cadena indica al servidor que está utilizando el navegador Chrome y Windows 10 en su ordenador. El servidor puede utilizar esta información para ajustar la respuesta al tipo de dispositivo, sistema operativo y navegador.
La mayoría de los navegadores envían un encabezado de agente de usuario en el siguiente formato, aunque no hay mucha consistencia en cómo se eligen los agentes de usuario:
User-Agent: Mozilla/5.0 () ()
Cada navegador añade sus propios componentes de comentario, como plataforma o RV (versión de lanzamiento). Mozilla ofrece ejemplos de cadenas a utilizar para los rastreadores:
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
Puede obtener más información sobre las distintas cadenas que puede utilizar para el navegador de Mozilla en su “>sitio de desarrolladores.
A continuación, se muestra ejemplos de cómo se muestra el formato de cadena UA a diferentes dispositivos y navegadores, del sitio de desarrolladores de Chrome:
Chrome para Android
UA del teléfono:
Mozilla/5.0 (Linux; ; )AppleWebKit/ (KHTML, como Gecko) Chrome/Mobile Safari/
UA para tabletas:
Mozilla/5.0 (Linux; ; )AppleWebKit/(KHTML, como Gecko) Chrome/Safari/
¡Ponga su raspado de datos en piloto automático ahora!
¿Por qué utilizar un agente de usuario?
Cuando raspa datos, a veces encontrará que el servidor web bloquea ciertos agentes de usuario. Esto se debe principalmente a que identifica el origen como un bot y ciertos sitios web no permiten bot crawlers o scrapers. Los sitios web más sofisticados lo hacen al revés, es decir, sólo permiten que los agentes de usuario que consideran válidos realicen tareas de rastreo. Los realmente sofisticados comprueban que el comportamiento del navegador coincide realmente con el agente de usuario que declara.
Puede pensar que la solución correcta sería no incluir un agente de usuario en sus peticiones. Sin embargo, esto hace que las herramientas utilicen un UA por defecto. En muchos casos, el servidor web de destino lo tiene en su lista negra y lo bloquea.
Entonces, ¿cómo asegurarse de que su agente de usuario no sea bloqueado?
Consejos para evitar que su UA sea vetado al raspar datos:
#1: Utilice un agente de usuario real
Si su agente de usuario no pertenece a un navegador importante, algunos sitios web bloquearán sus peticiones. Muchos raspadores web basados en bots se saltan el paso de definir un UA, con la consecuencia de ser detectados y vetados por omitir el UA incorrecto/por defecto.
Puede evitar este problema definiendo una UA ampliamente utilizada para su rastreador web. Puede encontrar una amplia lista de agentes de usuario populares aquí. Puede compilar una lista de cadenas populares y rotarlas realizando una petición cURL para un sitio web. No obstante, le recomendamos que utilice el agente de usuario de su navegador porque es más probable que el comportamiento de su navegador coincida con lo que se espera del agente de usuario si no lo cambia demasiado.
#2: Rote los agentes de usuario
Cuando realice numerosas peticiones durante el raspado de datos, debería aleatorizarlas. Esto minimizará la posibilidad de que el servidor web identifique y bloquee sus UAs.
¿Cómo aleatorizar las solicitudes?
Una solución es cambiar la dirección IP de la petición utilizando proxies rotativos. De esta forma, enviará un conjunto diferente de encabezados cada vez. En el servidor web, parecerá que la solicitud procede de distintos ordenadores y navegadores.
Consejo profesional:Un agente de usuario es un encabezado, pero los encabezados incluyen mucho más que agentes de usuario. No se puede enviar encabezados al azar, es necesario asegurarse de que el agente de usuario que envía coincide con los encabezados que está enviando.
Se puede utilizar botcheck.luminatio.io para comprobar si las cabeceras que está enviando coinciden con lo esperado para el agente de usuario.
Cómo rotar los agentes de usuario
En primer lugar, necesita recopilar una lista de cadenas de agentes de usuario. Recomendamos usar strings de navegadores reales, que se pueden encontrar aquí. El siguiente paso es añadir las cadenas a una lista de Python. Y por último, definir que cada petición elija una cadena aleatoria de la lista.
Esta discusión de stack overflow muestra un ejemplo de cómo rotar agentes de usuario usando Python 3 y Selenium 4. El ejemplo de código tiene este aspecto:
Irrespectivo del programa o método que elija usar para rotar sus encabezados UA, se deben seguir las mismas técnicas para evitar que le detecten y bloqueen:
- #1: Rotación de un conjunto completo de encabezados que están asociados con cada UA.
- #2: Enví o de encabezados en el orden en que lo haría típicamente un navegador real
- #3: Uso de la página anterior que se visitó como “encabezado de referencia”.
Consejo profesional: Asegúrese de que la dirección IP y las cookies no cambien al usar un encabezado de referencia. Lo ideal es que visite realmente la página anterior para que haya un registro de ella en su servidor de destino.
#3: Rotar agentes de uso usando un Proxy
Puede evitar el dolor de cabeza y la molestia de tener que definir manualmente listas y rotar IPs manualmente utilizando una red proxy de rotación. Los proxies tienen la capacidad de configurar la rotación automática de IPs y la rotación de cadenas UA. Esto significa que sus peticiones parecen originadas desde una variedad de navegadores web. Esto disminuye drásticamente los bloqueos y aumenta las tasas de éxito, ya que las solicitudes parecen haber originado en usuarios web verdaderos. Tenga en cuenta que sólo proxies muy específicos que emplean la tecnología de desbloqueo de datos tienen la capacidad de gestionar y rotar adecuadamente sus agentes de usuario.
Acceda a la tecnología de desbloqueo de datos
Lista de agentes de usuario para el raspado de datos
Existe una amplia variedad de Agentes de Usuario basados en navegadores/teléfonos/dispositivos/bots/motores de búsqueda/herramientas de desarrollo que pueden utilizarse para emular varios navegadores utilizando herramientas como wget y cURL. Estos incluyen:
- Lynx: Lynx/2.8.8pre.4 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/2.12.23
- Wget: Wget/1.15 (linux-gnu)
- Curl: curl/7.35.0
- HTC: Mozilla/5.0 (Linux; Android 7.0; HTC 10 Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.83 Mobile Safari/537.36
- Google Nexus: Mozilla/5.0 (Linux; U; Android-4.0.3; en-us; Galaxy Nexus Build/IML74K) AppleWebKit/535.7 (KHTML, like Gecko) CrMo/16.0.912.75 Mobile Safari/535.7
- Samsung Galaxy Note 4: Mozilla/5.0 (Linux; Android 6.0.1; SAMSUNG SM-N910F Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile Safari/537.36
- Samsung Galaxy Note 3: Mozilla/5.0 (Linux; Android 5.0; SAMSUNG SM-N900 Build/LRX21V) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/2.1 Chrome/34.0.1847.76 Mobile Safari/537.36
- Samsung Phone: Mozilla/5.0 (Linux; Android 6.0.1; SAMSUNG SM-G570Y Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile Safari/537.36
- Bing’s Search Engine Bot: Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)
- Google’s Search Engine Bot: Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
- Apple iPhone: Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1
- Apple iPad: Mozilla/5.0 (iPad; CPU OS 8_4_1 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12H321 Safari/600.1.4
- Microsoft Internet Explorer 11 / IE 11: Mozilla/5.0 (compatible, MSIE 11, Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko
- Microsoft Internet Explorer 10 / IE 10: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0; MDDCJS)
- Microsoft Internet Explorer 9 / IE 9: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0; Trident/5.0)
- Microsoft Internet Explorer 8 / IE 8: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
- Microsoft Internet Explorer 7 / IE 7: Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; en-US)
- Microsoft Internet Explorer 6 / IE 6: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
- Microsoft Edge: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393
- Mozilla Firefox: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:53.0) Gecko/20100101 Firefox/53.0
- Google Chrome: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36
En resumen
Dado que la mayoría de los sitios web bloquean las peticiones que carecen de un agente de usuario de navegador válido o reconocible, aprender a rotar correctamente el UA es importante para evitar bloqueos de sitios. El uso correcto del agente de usuario indicará a su sitio web de destino que su solicitud procede de un origen válido, lo que le permitirá recopilar datos libremente de los sitios de destino que desee.
Bright Data ha desarrollado una solución de desbloqueo de datos totalmente automatizada que ahorra tiempo y recursos a los equipos mediante algoritmos de aprendizaje automático para generar agentes de usuario de navegador específicos para cada sitio, así como para eludir los sistemas de detección de bots.