Combatir técnicas anti-scraping
Combatir técnicas anti-scraping

5 Técnicas Anti-Scraping que puedes Enfrentar

Con el advenimiento de los grandes datos, las personas comienzan a obtener datos de Internet para el análisis de datos con la ayuda de rastreadores web (web crawlers). Hay varias formas de hacer tu propio rastreador: extensiones en los navegadores, codificación de Python con Beautiful Soup o Scrapy, y también herramientas de extracción de datos.

Sin embargo, siempre hay una guerra de codificación entre los spiders y los anti-bots. Los desarrolladores web aplican diferentes tipos de técnicas anti-raspado/anti-scraping para evitar que tus sitios web sean raspados. En este artículo, he enumerado las cinco técnicas anti-raspado más comunes y cómo se pueden evitar o combatirlas.

1. IP

Una de las formas más fáciles para que un sitio web detecte actividades de raspado web es a través del seguimiento de IP. El sitio web podría identificar si la IP es un robot en función de sus comportamientos. Cuando un sitio web descubre que se ha enviado una cantidad abrumadora de solicitudes desde una sola dirección IP periódicamente o en un corto período de tiempo, existe una buena posibilidad de que la IP se bloquee porque se sospecha que es un bot. En este caso, lo que realmente importa para construir un rastreador anti-scraping es el número y la frecuencia de visitas por unidad de tiempo. Aquí hay algunos escenarios que puedes encontrar.

  • Escenario 1: Hacer múltiples visitas en segundos. No hay forma de que un humano real pueda navegar tan rápido. Entonces, si el rastreador envía solicitudes frecuentes a un sitio web, el sitio web definitivamente bloquearía la IP para identificarlo como un robot.

Solución: Disminuir la velocidad de raspado. Configurar un tiempo de retraso (por ejemplo, la función “sleep”) antes de ejecutar o aumentar el tiempo de espera entre dos pasos siempre funcionaría.

  • Escenario 2: Visitar un sitio web exactamente al mismo ritmo. El humano real no repite los mismos patrones de comportamiento una y otra vez. Algunos sitios web monitorean la frecuencia de las solicitudes y si las solicitudes se envían periódicamente con el mismo patrón exacto, como una vez por segundo, es muy probable que se active el mecanismo anti-raspado.

Solución: Establecer un tiempo de retraso aleatorio para cada paso del rastreador. Con una velocidad de raspado aleatoria, el rastreador se comportaría más como los humanos navegan por un sitio web.

  • Escenario 3: Algunas técnicas anti-raspado de alto nivel incorporarían algoritmos complejos para rastrear las solicitudes de diferentes IP y analizar las solicitudes promedio. Si la solicitud de una IP es inusual, como enviar la misma cantidad de solicitudes o visitar el mismo sitio web a la misma hora todos los días, se bloquearía.

Solución: Cambiar IP periódicamente. La mayoría de los servicios VPN, servidores en la nube y servicios proxy podrían proporcionar IP rotadas. Cuando se envían solicitudes a través de estas IP rotadas, el rastreador se comporta menos como un bot, lo que podría disminuir el riesgo de ser bloqueado.

2. Captcha

¿Alguna vez has visto este tipo de imagen al navegar por un sitio web?

  • Debes hacer un clic
Yo no soy robot para Captcha
Yo no soy robot para Captcha
  • Necesitas seleccionar imágenes específicas
Captcha seleccionar imágenes
Captcha seleccionar imágenes
  • Debes escribir o seleccionar la cadena correcta
Seleccionar cadena correcta Captcha
Seleccionar cadena correcta Captcha

Estas imágenes se llaman Captcha. Captcha significa Completely Automated Public Turing test to tell Computers and Humans Apart. Es un programa público automático para determinar si el usuario es un humano o un robot. Este programa proporcionaría varios desafíos, como imagen degradada, rellenar espacios en blanco o incluso ecuaciones, que se dice que son resueltas solo por un humano.

Esta prueba ha evolucionado durante mucho tiempo y actualmente muchos sitios web aplican Captcha como técnicas anti-raspado. Alguna vez fue muy difícil pasar Captcha directamente. Pero hoy en día, muchas herramientas de código abierto ahora se pueden aplicar para resolver problemas de Captcha, aunque pueden requerir habilidades de programación más avanzadas. Algunas personas incluso crean sus propias bibliotecas de características y crean técnicas de reconocimiento de imágenes con aprendizaje automático o habilidades de aprendizaje profundo para pasar esta verificación.

Es más fácil no activarlo que resolverlo

Para la mayoría de las personas, la forma más fácil es ralentizar o aleatorizar el proceso de extracción para no desencadenar la prueba del Captcha. Ajustar el tiempo de retardo o utilizar IPs rotadas puede reducir eficazmente la probabilidad de desencadenar la prueba.

3. Iniciar sesión

Muchos sitios web, especialmente las plataformas de redes sociales como Twitter y Facebook, solo te muestran información después de iniciar sesión en el sitio web. Para rastrear sitios como estos, los rastreadores también necesitarían simular los pasos de registro.

Después de iniciar sesión en el sitio web, el rastreador debe guardar las cookies. Una cookie es un pequeño dato que almacena los datos de navegación para los usuarios. Sin las cookies, el sitio web olvidaría que ya ha iniciado sesión y le pedirá que vuelva a iniciar sesión.

Además, algunos sitios web con mecanismos de raspado estrictos solo pueden permitir el acceso parcial a los datos, como 1000 líneas de datos todos los días, incluso después de iniciar sesión.

Tu bot necesita saber cómo iniciar sesión

  1. Simular operaciones de teclado y mouse. El rastreador debe simular el proceso de inicio de sesión, que incluye pasos como hacer clic en el cuadro de texto y los botones “Iniciar sesión/Login” con el mouse, o escribir información de cuenta y contraseña con el teclado.
  2. Iniciar sesión primero y luego guardar las cookies. Para los sitios web que permiten cookies, recordarían a los usuarios guardando sus cookies. Con estas cookies, no es necesario volver a iniciar sesión en el sitio web a corto plazo. Gracias a este mecanismo, tu rastreador podría evitar tediosos pasos de inicio de sesión y raspar la información que necesita.
  3. Si, desafortunadamente, encuentra los mecanismos de escalado estrictos anteriores, puede programar el rastreador para monitorear el sitio web a una frecuencia fija, como una vez al día.

4. User-Agent

UA significa User-Agent, que es un encabezado del sitio web para identificar cómo visita el usuario. Contiene información como el sistema operativo y su versión, tipo de CPU, navegador y su versión, idioma del navegador, un complemento del navegador, etc.

Un ejemplo de UA:

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/74.0.963.56 Safari/535.11

Al raspar un sitio web, si el rastreador no contiene encabezados, solo se identificaría como un script (por ejemplo, si usas Python para construir el rastreador, se declararía como un script de python). Los sitios web definitivamente bloquearían la solicitud de un script. En este caso, el rastreador debe simularse como un navegador con un encabezado UA para que los sitios web puedan proporcionarle acceso.

A veces, el sitio web muestra diferentes páginas o información a diferentes navegadores o diferentes versiones, incluso si ingresas al sitio con la misma URL. Lo más probable es que la información sea compatible con un navegador mientras que los otros navegadores están bloqueados. Por lo tanto, para asegurarte de que puedes ingresar a la página correcta, se requerirán múltiples navegadores y versiones.

Cambia entre diferentes UA para evitar ser bloqueado

Cambia la información de UA hasta que encuentres la correcta. Algunos sitios web sensibles que aplican técnicas complejas de anti-raspado pueden incluso bloquear el acceso si se usa el mismo UA durante mucho tiempo. En este caso, deberás cambiar la información de la AU periódicamente.

5. AJAX

Rastreador y AJAX
Rastreador y AJAX

Hoy en día, se desarrollan más sitios web con AJAX en lugar de las técnicas tradicionales de desarrollo web. AJAX significa Asynchronous JavaScript and XML, que es una técnica para actualizar el sitio web de forma asíncrona. En pocas palabras, todo el sitio web no necesita recargarse cuando solo se producen pequeños cambios dentro de la página.

Entonces, ¿cómo podría saber si un sitio web aplica AJAX?

  • Un sitio web sin AJAX: toda la página se actualizará incluso si solo realiza un pequeño cambio en el sitio web. Por lo general, aparecerá un signo de carga y la URL cambiará. Para estos sitios web, podríamos aprovechar el mecanismo e intentar encontrar el patrón de cómo cambiarían las URL. Luego, se podría generar URL en lotes y extraer directamente información a través de estas URL en lugar de enseñarle al rastreador cómo navegar por sitios web como los humanos.
  • Un sitio web con AJAX: solo se cambiará el lugar donde haces clic y no aparecerá ningún signo de carga. Por lo general, la URL web no cambiaría, por lo que el rastreador debe lidiar con ella de manera directa.

Para algunos sitios web complejos desarrollados por AJAX, se necesitarían técnicas especiales para descubrir formas cifradas únicas en esos sitios web y extraer los datos cifrados. Resolver este problema puede llevar mucho tiempo porque las formas cifradas varían en las diferentes páginas. Si pudieras encontrar un navegador con operaciones JS integradas, podrías descifrar automáticamente el sitio web y extraer datos.

Las técnicas de raspado web y anti raspado están progresando todos los días. Estas técnicas mencionadas estarán actualizándose continuamente…

Artículos recomendados:

My Cart Close (×)

Tu carrito está vacío
Ver tienda