¿Cómo saltarse los CAPTCHA al hacer web scraping? - 5 sencillos pasos

Cómo hacerlo, Raspado, Mar-06-20245 minutos de lectura

Cuando raspas datos de sitios web a gran escala, lo menos probable es que no hayas tenido que enfrentarte a un CAPTCHA para demostrar que eres humano. Como web scraper, es posible que ya sepas por qué los profesionales de la ciberseguridad se vieron obligados a inventarlos. Fueron el resultado de que sus bots automatizaran interminables peticiones de sitios web para acceder a ellos.

Cuando raspas datos de sitios web a gran escala, lo menos probable es que no hayas tenido que enfrentarte a un CAPTCHA para demostrar que eres humano. Como web scraper, es posible que ya sepas por qué los profesionales de la ciberseguridad se vieron obligados a inventarlos. Fueron el resultado de que sus bots automatizaran un sinfín de peticiones de sitios web para acceder a ellos. Así que incluso los usuarios auténticos tuvieron que pasar por el suplicio de enfrentarse a CAPTCHAs que aparecen de diferentes formas. Sin embargo, puedes saltarte los CAPTCHAs tanto si eres un web scraper como si no, que sería el objetivo de este artículo. Pero primero, vamos a sumergirnos en lo que son los CAPTCHAs.

Saltar CAPTCHA para Web Scraping

Los CAPTCHA suelen activarse para detectar tráfico no natural en el sitio. Para evitar esta restricción, los usuarios prefieren una solución que pueda descifrar todos estos códigos CAPTCHA y acceder al sitio web como un ser humano real. Una solución para saltarse los captchas es Capsolver. Utilizando proxies con las solicitudes web también ayudará a los usuarios a aparecer como un tráfico natural. 

¿Qué es un CAPTCHA?

CAPTCHA son las siglas de Completely Automated Public Turing Test to tell Computers and Humans Apart. Es un acrónimo bastante largo, ¿verdad? Ahora te estarás preguntando qué significa la última parte de este acrónimo, Prueba de Turing - bueno, es una prueba sencilla para determinar si un humano o un bot está interactuando con una página web o un servidor web.

Después de todo, un CAPTCHA diferencia a los humanos de los bots, ayudando a los analistas de ciberseguridad a proteger los servidores web de ataques de fuerza bruta, DDoS y, en algunas situaciones, de web scraping. 

Averigüemos cómo los CAPTCHA diferencian a los humanos de los bots.

¿Cómo funcionan los CAPTCHA?

Puede encontrar los CAPTCHA en los formularios de un sitio web, incluidos los formularios de contacto, registro, comentarios, inscripción o salida.

Los CAPTCHA tradicionales incluyen una imagen con letras, números o ambas cosas estiradas o borrosas en un recuadro con un color de fondo o un fondo transparente. Luego hay que identificar los caracteres y escribirlos en el campo de texto que aparece a continuación. Este proceso de identificación de caracteres es más fácil para los humanos pero algo complicado para un bot.

La idea de difuminar o distorsionar el texto CAPTCHA es dificultar al bot la identificación de los caracteres. En cambio, los seres humanos pueden interpretar e interceptar caracteres en diversos formatos, como diferentes tipos de letra, escritura a mano, etc. Dicho esto, no todos los humanos pueden resolver un CAPTCHA en el primer intento. Según las investigaciones, el 8% de los usuarios escribirá mal en su primer intento, mientras que el 29% fallará si los CAPTCHA distinguen entre mayúsculas y minúsculas.

Por otro lado, algunos bots avanzados pueden interceptar letras distorsionadas con la ayuda del aprendizaje automático a lo largo de los años. Como resultado, algunas empresas como Google sustituyeron los CAPTCHA convencionales por CAPTCHA sofisticados. Uno de estos ejemplos es ReCAPTCHA, que descubrirá en la siguiente sección.

¿Qué es un ReCAPTCHA?

ReCAPTCHA es un servicio gratuito que ofrece Google. Pide a los usuarios que marquen casillas en lugar de escribir texto, resolver rompecabezas o ecuaciones matemáticas.

Un ReCAPTCHA típico es más avanzado que las formas convencionales de CAPTCHA. Utiliza imágenes y textos del mundo real, como semáforos en las calles, textos de periódicos antiguos y libros impresos. Como resultado, los usuarios no tienen que confiar en los CAPTCHA de la vieja escuela con texto borroso y distorsionado.

¿Cómo funcionan los ReCAPTCHAs?

Hay tres tipos significativos de pruebas ReCAPTCHA para verificar si eres un ser humano o no:

Casilla de verificación

Se trata de los ReCAPTCHAs que piden a los usuarios que marquen una casilla de verificación, "No soy un robot", como en la imagen superior. Aunque a simple vista pueda parecer que incluso un bot podría completar esta prueba, se tienen en cuenta varios factores:

  • Esta prueba investiga los movimientos del ratón del usuario cuando se acerca a la casilla de verificación.
  • Los movimientos del ratón de un usuario no son rectos, incluidos la mayoría de los movimientos directos del ratón. Para un robot es todo un reto imitar el mismo comportamiento.
  • Por último, el ReCAPTCHA inspeccionaría las cookies que almacena su navegador.

Si el ReCAPTCHA no puede verificar que eres humano, te presentará otro desafío.

Reconocimiento de imágenes

Estos ReCAPTCHAs proporcionan a los usuarios nueve o dieciséis imágenes cuadradas como puede ver en la imagen superior. Cada cuadrado representa una parte de una imagen más grande o diferentes imágenes. El usuario debe seleccionar cuadrados que representen objetos específicos, animales, árboles, vehículos o semáforos.

Si la selección del usuario coincide con las selecciones de otros usuarios que han realizado la misma prueba, el usuario es verificado. En caso contrario, el ReCAPTCHA presentará una prueba más desafiante.

Sin interacción

¿Sabías que ReCAPTCHA puede verificar si eres humano o no sin utilizar casillas de verificación ni ninguna interacción con el usuario?

Ciertamente, lo hace teniendo en cuenta el historial de interacción del usuario con los sitios web y el comportamiento general del usuario mientras está en línea. En la mayoría de los casos, en función de estos factores, el sistema podría determinar si eres un bot.

De lo contrario, se volvería a cualquiera de los dos métodos mencionados anteriormente.

¿Qué activa los CAPTCHA y los ReCAPTCHA?

Los CAPTCHA pueden activarse si un sitio web detecta actividades inusuales que se asemejen al comportamiento de un bot. Este comportamiento inusual incluye solicitudes ilimitadas en fracciones de segundo y clics en enlaces a un ritmo muy superior al de los humanos. 

Entonces, algunos sitios web dispondrían automáticamente de CAPTCHAs para blindar sus sistemas.

En cuanto a los ReCAPTCHAs, no está exactamente claro qué los activa. Sin embargo, las causas generales son los movimientos del ratón, el historial de navegación y el rastreo de cookies.

Lo que hay que saber para evitar los CAPTCHA en el web scraping

Ahora ya tiene una idea clara de qué son los CAPTCHA y los Rechaptchas, cómo funcionan y qué los activa. Ahora es el momento de analizar cómo afectan los CAPTCHA al web scraping.

Los CAPTCHA pueden dificultar el scraping de la web, ya que los robots automatizados realizan la mayoría de las operaciones de scraping. Sin embargo, no se desanime. Como se mencionó al principio de este artículo, hay formas de superar los CAPTCHAs al hacer scraping en la web. Antes de llegar a ellos, vamos a centrar nuestra atención en lo que debe tener en cuenta antes de hacer scraping.

Envío de demasiadas solicitudes al sitio web de destino

En primer lugar, debes asegurarte de que no permites que tu web scraper/crawler envíe demasiadas peticiones en un corto periodo de tiempo. La mayoría de los sitios web han mencionado en sus páginas de términos y condiciones cuántas solicitudes permite el sitio web. Asegúrese de leerlos antes de empezar a raspar.

Cabeceras HTTP

Cuando se conecta a un sitio web, envía información sobre su dispositivo al sitio web de conexión. Pueden utilizar esta información para adaptar el contenido a las especificaciones de tu dispositivo y realizar un seguimiento métrico. Por eso, cuando descubran que las solicitudes proceden del mismo dispositivo, cualquier solicitud que envíes después se bloqueará.

Por lo tanto, si ha desarrollado el scraper/crawler web por su cuenta, podrá cambiar la información del encabezado para cada solicitud que realice su scraper. De este modo, el sitio web de destino parecerá estar recibiendo múltiples peticiones desde diferentes dispositivos. Lea aquí para más información sobre las cabeceras HTTP.

Dirección IP

Otro dato que debes tener en cuenta es que el sitio web de destino no haya incluido tu dirección IP en una lista negra. Es probable que pongan tu dirección IP en la lista negra cuando envíes demasiadas solicitudes con tu scraper/crawler. 

Para superar el problema anterior, puede utilizar un servidor proxy, ya que enmascara su dirección IP. 

Rotar las cabeceras HTTP y los proxies (más sobre esto en la siguiente sección) con un pool asegurará que múltiples dispositivos accedan al sitio web desde diferentes ubicaciones. Por lo tanto, debería ser capaz de continuar el scraping sin interrupción de CAPTCHAs. Dicho esto, debes asegurarte de que no estás perjudicando el rendimiento del sitio web por ningún medio.

Sin embargo, debe tener en cuenta que los proxies no le ayudarán a superar CAPTCHAs en los formularios de registro, cambio de contraseña, check-out, etc. Sólo pueden ayudarle a superar las capturas que los sitios web desencadenan por tener un comportamiento de bot. Para evitar CAPTCHAs en dichos formularios, veremos CAPTCHA solvers en una próxima sección.

Otros tipos de CAPTCHA

Además de los factores clave anteriores, debe conocer los CAPTCHA que se indican a continuación cuando realice web scraping con un bot:

Honeypots-Honeypot será un tipo de CAPTCHA encerrado en un campo de formulario HTML o enlace, pero su visibilidad se oculta con CSS.Así que cuando un bot interactúa con él inevitablemente ha informado de que es un bot. Así que antes de hacer que su bot raspe el contenido, asegúrese de que las propiedades CSS del elemento son visibles.

CAPTCHA de palabras/parejas-Estos son los CAPTCHA de ecuaciones matemáticas como resolver "3+7", por ejemplo. También puede haber sopas de letras para resolver.

Inicio de sesión en redes sociales - Algunos sitios web exigen, por ejemplo, iniciar sesión con la cuenta de Facebook. Sin embargo, no son muy populares, ya que la mayoría de los administradores saben que la gente sería reacia a iniciar sesión con sus cuentas de redes sociales.

Seguimiento del tiempo: estos CAPTCHA supervisan la rapidez con la que se lleva a cabo una acción específica, como rellenar un formulario para determinar si se trata de un humano o de un bot.

Cómo evitar CAPTCHAs para Web Scraping

Rotación de proxies y uso de direcciones IP de calidad

Como se mencionó en la sección anterior, es necesario rotar los proxies cada vez que se envía una solicitud al sitio web de destino. Es una forma de evitar CAPTCHAs que se activan mientras raspas. En estas circunstancias, debe utilizar proxies de IP residencial limpia.

Cuando rotas los proxies, sería difícil para el sitio web de destino determinar tu huella IP. Esto se debe a que, para cada solicitud, aparecería la dirección IP de los proxies en lugar de la tuya.

Rotación de agentes de usuario

Dado que va a utilizar un raspador para el web scraping, tendrá que disfrazar el agente de usuario a un navegador web popular o bot-bots compatibles, tales como bots de motores de búsqueda que los sitios web reconocen.

Cambiar simplemente el agente de usuario no será suficiente, ya que necesitará tener una lista de cadenas de agente de usuario y luego rotarlas. Esta rotación hará que el sitio web de destino te vea como un dispositivo diferente cuando, en realidad, un dispositivo está enviando todas las solicitudes.

Como mejor práctica para este paso, sería estupendo mantener una base de datos de agentes de usuario reales. Además, elimine las cookies cuando ya no las necesite.

Servicios de resolución de CAPTCHA

Un método más sencillo y menos técnico para resolver un CAPTCHA sería utilizar un servicio de resolución de CAPTCHA. Estos utilizan Inteligencia Artificial (IA), Aprendizaje Automático (AM), y una culminación de otras tecnologías para resolver un CAPTCHA.

Algunos de los principales solucionadores de CAPTCHA que existen actualmente en la industria son Capsolver y Anti-CAPTCHA.

Evite los enlaces directos

Si deja que su scraper acceda directamente a una URL cada fracción de segundo, el sitio web receptor sospechará. Como resultado, el sitio web de destino activaría un CAPTCHA.

Para evitar tal escenario, podrías configurar la cabecera referer para que parezca referida desde otra página. Esto reduciría la probabilidad de ser detectado como un bot. Alternativamente, puedes hacer que el bot visite otras páginas antes de visitar el enlace deseado.

Evite los Honeypots

Los honeypots son elementos ocultos en una página web que los expertos en seguridad utilizan para atrapar bots o intrusos. Aunque el navegador muestra su HTML, sus propiedades CSS están configuradas para ocultarse. Sin embargo, a diferencia de los humanos, el código del honey pot sería visible para los bots cuando rastrearan los datos. Como resultado, cayeron en la trampa tendida por el honeypot.

Así que tienes que asegurarte de que compruebas que las propiedades CSS de todos los elementos de una página web no están ocultas o son invisibles antes de comenzar el scraping. Solo cuando estés seguro de que ninguno de los elementos está oculto, configura tu bot para el scraping.

Preguntas frecuentes

Preguntas frecuentes:

1. ¿Qué significa saltarse CAPTCHAs para Web Scraping?
Eludir CAPTCHAs es simplemente el proceso de eliminar los bloqueadores que surgen al raspar datos de numerosos sitios. Como CAPTCHAs están diseñados para verificar si el tráfico web es orgánico.
2. ¿Qué es ReCaptcha?
ReCaptcha previene sus sitios web de spam y tráfico bot malicioso. Genera rompecabezas interactivos para diferenciar el tráfico orgánico del tráfico de bots.
3. ¿Cómo ayudará un proxy a los usuarios a evitar los captchas?
Cuando se envían peticiones web back to back desde un bot o cualquier solución de scraping, los CAPTCHAs podrían identificar fácilmente que el tráfico proviene de un bot de spam. Por lo tanto, el uso de un proxy de direcciones de un proxy le permitirá aparecer más como un tráfico en tiempo real.

Conclusión

Este artículo le habrá dado una idea completa de cómo evitar CAPTCHAs mientras que raspa la tela. Evitar un CAPTCHA puede ser un proceso complicado. Sin embargo, con el uso de técnicas específicas discutidas en este artículo, se puede desarrollar el bot de tal manera como para evitar CAPTCHAs.

Esperamos que saque partido de todas las técnicas comentadas en este artículo.