Cómo eludir reCAPTCHA mientras haces web scraping

Expert Network Defense Engineer
Introducción
El propósito de CAPTCHA es distinguir entre los verdaderos usuarios de un sitio web y los programas automatizados al asignar a las computadoras tareas complejas, que debes completar primero antes de poder acceder al contenido real de un sitio web.
¿Qué podemos hacer para abordar esto? Eso es exactamente lo que cubrirá este artículo: cómo eludir los CAPTCHAs utilizando la programación, con un énfasis en reCAPTCHA.
reCAPTCHA: ¿Qué es?
En 2007, Google lanzó reCAPTCHA, un servicio CAPTCHA gratuito, para proporcionar a los propietarios de sitios web un método simple para incluir una API de CAPTCHA basada en SaaS en sus sitios. Al principio, también estaba destinado a ayudar a digitalizar archivos de periódicos y bibliotecas. Al proporcionar a los usuarios información escaneada, se crowdsourcó la conversión de documentos que solo estaban disponibles en formato impreso. Google ha descontinuado el soporte para la versión 1 desde hace 6 años, así que veamos la versión 2 y la versión 3.
reCAPTCHA v2
Cuando se publicó reCAPTCHA v2 en 2013, trajo consigo el análisis del comportamiento. Esto significa que antes de que aparezca el cuadro de reCAPTCHA y solo muestre la casilla de verificación de CAPTCHA por defecto, reCAPTCHA rastrea el comportamiento del usuario y el navegador (es decir, eventos de entrada como el ratón y el teclado). Después de que el usuario selecciona la casilla de verificación, reCAPTCHA utilizará la huella digital para decidir si el usuario necesita completar un desafío CAPTCHA genuino o si puede pasar de inmediato. Además, existe una solución CAPTCHA "invisible" que puede incluirse sin problemas en las operaciones de tu sitio web.
reCAPTCHA v3
En 2018, Google mejoró reCAPTCHA una vez más y lanzó una implementación que calcula un puntaje de bot—una medida de la probabilidad de que una solicitud provenga de un ser humano en lugar de un script automatizado—en lugar de requerir cualquier participación del usuario en absoluto.
Uso de Web Unlocker/Solver de Captchas para Resolver reCAPTCHA
Hoy en día, las tecnologías para resolver CAPTCHAs emplean aprendizaje automático e inteligencia artificial para detectar y superar con éxito los obstáculos de CAPTCHA, gracias a la creciente popularidad del web scraping. Una búsqueda rápida de "Web Unlocker/Solver de Captchas" producirá una gran cantidad de sitios web y servicios que ofrecen un conjunto de características bastante similar. Utilizar el Web Unlocker de Scrapeless es una de estas opciones.
¿Cansado de los constantes bloqueos de scrapeo web y CAPTCHAs?
Presentamos Scrapeless: ¡la solución definitiva de web scraping todo en uno!
Desbloquea todo el potencial de tu extracción de datos con nuestra poderosa suite de herramientas:
Mejor Web Unlocker
Resuelve automáticamente CAPTCHAs avanzados, manteniendo tu scraping fluido y sin interrupciones.
¡Experimenta la diferencia: pruébalo gratis!
Estrategias para Evitar a Máximo reCAPTCHA Mientras Haces Web Scraping
Los web scrapers evitan reCAPTCHA de varias maneras diferentes. Aquí están las más confiables:
Ten Cuidado con las Trampas Ocultas
Los honeypots son trampas que aparecen para los bots pero permanecen indetectables para los humanos. Estos pueden ser páginas web completas, formularios o campos de datos que a menudo son interactuados por los bots cuando realizan tareas como la recopilación de datos de la web.
La mayoría de los sitios web utilizan JavaScript para ocultar las trampas de honeypots, como display:none. Dado que los bots normalmente examinan partes de los sitios web, existe una mayor posibilidad de que estos componentes ocultos puedan ser vistos e interactuados.
Observe estas medidas prácticas para evitar las trampas de honeypots:
- Observe los términos del servicio: Asegúrese de revisar las condiciones de un sitio web antes de extraer datos. Para obtener una lista de páginas que puede rastrear, verifique el archivo robots.txt y otras directrices de participación de bots. Luego, para evitar interferir con la actividad de otros usuarios, asegúrese de realizar su raspado web durante horas no pico y prolongue los intervalos de sus solicitudes.
- Evite interactuar con componentes ocultos: Los honeypots pueden conducir a etiquetas de anclaje ocultas, por lo que debe evitarlas al rastrear enlaces. Una inspección exhaustiva del elemento web y el uso de salvaguardas programáticas pueden ayudarle a evitar tratar con componentes de sitio web ocultos superfluos.
- Manténgase alejado de redes públicas: Un servidor en una red pública compartida puede establecer un honeypot. Esto se debe a que las redes Wi-Fi públicas a veces tienen un cifrado peor que el que se encuentra en redes privadas. Debido a esta vulnerabilidad, los anti-bots pueden monitorizar todo el tráfico de la red, lo que facilita la identificación de la actividad de raspado automatizado al comparar los comportamientos de navegación de los bots y los usuarios reales.
Un entorno de navegador real
Nada revelará su identidad como raspador más rápidamente que un agente de usuario de cliente HTTP que esté configurado en predeterminado.
La mayoría de los anti-bots comienzan buscando parámetros similares a bots en los encabezados de las solicitudes. Esta es una de sus primeras medidas de seguridad. En situaciones más complejas, verifican si los encabezados de la solicitud son auténticos comparándolos con los de bots reconocidos. Se activará un CAPTCHA para bloquear su solicitud si difiere en cualquier forma de la de un navegador real.
Considere el siguiente encabezado de ejemplo:
language
"User-Agent": [
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, como Gecko)
HeadlessChrome/126.0.0.0 Safari/537.36"
]
Compare el agente de usuario de Chrome real a continuación con la imagen anterior. Verá que se utiliza Chrome en lugar de la bandera HeadlessChrome, que parece un bot:
language
"User-Agent": [
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, como Gecko)
Chrome/126.0.0.0 Safari/537.36"
]
Reemplace los encabezados basados en bibliotecas por los de un navegador genuino para parecer auténtico y reducir la probabilidad de ser incluido en una lista negra. Incluso se puede copiar y utilizar el encabezado completo de solicitud de un navegador por su raspador.
Haga que su raspador parezca un usuario genuino
Las claves para evitar la detección son imitar el comportamiento humano y evitar tendencias similares a las de un bot. Para distinguir entre personas y bots, los métodos anti-bot monitorean el comportamiento del usuario, como los movimientos del mouse, las técnicas de suspensión, las orientaciones de desplazamiento y las ubicaciones de clics.
Las siguientes técnicas se pueden utilizar para imitar el comportamiento real del usuario:
- Incorporar aleatoriedad en tareas repetitivas como el desplazamiento;
- Seleccionar los componentes que se muestran al hacer clic;
- Introducir datos en los campos del formulario;
- Al separar interacciones, usar períodos de tiempo arbitrarios;
- Después de que una solicitud no se procese, utilizar retrocesos exponenciales para posponerla.
Observaciones finales
Cuando solo deseas terminar un raspado web corto, los CAPTCHA pueden causar mucho dolor. Sin embargo, hay varios métodos para abordarlos desde un entorno de raspado, así que no te rindas.
Sugerimos utilizar Scrapeless, una herramienta completa de raspado web que realiza estas técnicas de elusión y muchas más, para facilitar tu trabajo de raspado. Se requiere solo una solicitud de API. Únete hoy para probarlo gratis.
En Scrapeless, solo accedemos a datos disponibles públicamente y cumplimos estrictamente con las leyes, regulaciones y políticas de privacidad del sitio web aplicables. El contenido de este blog es sólo para fines de demostración y no implica ninguna actividad ilegal o infractora. No ofrecemos garantías y renunciamos a toda responsabilidad por el uso de la información de este blog o enlaces de terceros. Antes de realizar cualquier actividad de scraping, consulte a su asesor legal y revise los términos de servicio del sitio web de destino u obtenga los permisos necesarios.