Cómo resolver los captchas de Cloudflare Turnstile con Selenium
Cómo resolver los captchas de Cloudflare Turnstile con Selenium
Aloísio Vítor
Image Processing Expert
11-Oct-2024
¿Tu web scraper está luchando contra el bloqueo de Cloudflare a tus solicitudes?
Las captchas Turnstile de Cloudflare están diseñadas para identificar e impedir el tráfico automatizado, creando obstáculos importantes para el web scraping y la automatización. Sin embargo, al utilizar un navegador sin cabeza como Selenium, puedes superar estos obstáculos de manera efectiva. Dicho esto, las configuraciones estándar de Selenium aún pueden activar las sofisticadas defensas antibot de Cloudflare.
En este blog, analizaremos varias técnicas efectivas para superar las captchas Turnstile de Cloudflare utilizando Selenium.
Comprender las captchas Turnstile de Cloudflare
Las captchas Turnstile de Cloudflare son desafíos avanzados destinados a distinguir entre usuarios humanos y bots automatizados. A diferencia de las captchas tradicionales, Turnstile utiliza diversas evaluaciones basadas en el comportamiento y la interacción, como el análisis de los movimientos del ratón, los patrones de clics y otras métricas de interacción, para determinar la legitimidad del usuario.
¿Por qué elegir Selenium?
Selenium es una herramienta robusta para automatizar navegadores web, lo que te permite simular acciones del usuario como clics, envíos de formularios y navegación. Sin embargo, debido a su naturaleza automatizada, las configuraciones convencionales de Selenium aún pueden ser señaladas por los sistemas de seguridad de Cloudflare. Para gestionar eficazmente las captchas Turnstile, la integración de Selenium con herramientas y técnicas adicionales puede mejorar significativamente el éxito de tu web scraping.
Técnicas efectivas para resolver las captchas Turnstile de Cloudflare con Selenium
1. Implementar CapSolver
Uno de los métodos más eficientes para resolver captchas es utilizar un servicio de resolución de captchas como CapSolver. Este servicio utiliza algoritmos avanzados y solucionadores humanos para resolver rápida y precisamente varios tipos de captchas, incluido Cloudflare Turnstile.
Código de bonificación
¿Luchas contra el fallo repetido para resolver completamente la irritante captcha?
¡Descubre la resolución automática de captchas sin problemas con la tecnología Auto Web Unblock impulsada por IA de Capsolver!
Reclama tu Código de bonificación para las mejores soluciones de captchas; CapSolver: WEBS. Después de canjearlo, obtendrás un bono extra del 5% después de cada recarga, Ilimitado
Integra la API de CapSolver en tu script de Selenium.
Ejemplo de código:
pythonCopy
# pip install requests
import requests
import time
api_key = "TU_CLAVE_API" # tu clave api de capsolver
site_key = "0x4XXXXXXXXXXXXXXXXX" # clave del sitio de tu sitio objetivo
site_url = "https://www.tusitio web.com" # url de la página de tu sitio objetivo
def capsolver():
payload = {
"clientKey": api_key,
"task": {
"type": 'AntiTurnstileTaskProxyLess',
"websiteKey": site_key,
"websiteURL": site_url,
"metadata": {
"action": "" # opcional
}
}
}
res = requests.post("https://api.capsolver.com/createTask", json=payload)
resp = res.json()
task_id = resp.get("taskId")
if not task_id:
print("Error al crear la tarea:", res.text)
return
print(f"Se obtuvo taskId: {task_id} / Obteniendo el resultado...")
while True:
time.sleep(1) # retraso
payload = {"clientKey": api_key, "taskId": task_id}
res = requests.post("https://api.capsolver.com/getTaskResult", json=payload)
resp = res.json()
status = resp.get("status")
if status == "ready":
return resp.get("solution", {}).get('token')
if status == "failed" or resp.get("errorId"):
print("¡La resolución falló! respuesta:", res.text)
return
token = capsolver()
print(token)
En este código, reemplaza TU_CLAVE_API, 0x4XXXXXXXXXXXXXXXXX y https://www.tusitioweb.com con tu clave API real de CapSolver, la clave del sitio del sitio objetivo y la URL de la página a la que te diriges, respectivamente. Este script creará una tarea para resolver la captcha Turnstile y devolverá el token de solución.
2. Utilizando un ChromeDriver no detectado
Para evitar la detección por parte de Cloudflare, es fundamental emplear una versión no detectada de ChromeDriver. Los sistemas antibot de Cloudflare pueden reconocer fácilmente las instancias estándar de ChromeDriver, lo que lleva a desafíos de captcha. Un ChromeDriver no detectado modifica la huella digital y el comportamiento del navegador para minimizar las posibilidades de detección.
Configura Selenium para que utilice esta versión modificada.
Ejemplo de código:
pythonCopy
from undetected_chromedriver.v2 import Chrome, ChromeOptions
options = ChromeOptions()
options.add_argument('--headless') # Utiliza el modo sin cabeza si es necesario
driver = Chrome(options=options)
driver.get('https://example.com')
# Realiza las acciones necesarias y maneja la captcha
3. Utilizando SeleniumBase
SeleniumBase es una extensión de Selenium que mejora la funcionalidad y la facilidad de uso para el web scraping. Simplifica la gestión de las interacciones web y automatiza las tareas complejas de forma más eficaz.
Pasos para implementar:
Instala SeleniumBase mediante pip:
bashCopy
pip install seleniumbase
Utiliza las funciones de SeleniumBase para gestionar las interacciones web y manejar las captchas.
Ejemplo de código:
pythonCopy
from seleniumbase import BaseCase
class MyTestClass(BaseCase):
def test_example(self):
self.open('https://example.com')
# Realiza las acciones necesarias y maneja la captcha
4. Utilizando el plugin Selenium Stealth
El plugin Selenium Stealth ayuda a enmascarar tus esfuerzos de automatización, haciendo más difícil que Cloudflare detecte el uso de bots. Este plugin modifica el comportamiento del navegador para simular interacciones realistas del usuario.
Pasos para implementar:
Instala el plugin Selenium Stealth:
bashCopy
pip install selenium-stealth
Integra el plugin con tu configuración de Selenium.
Ejemplo de código:
pythonCopy
from selenium import webdriver
from selenium_stealth import stealth
driver = webdriver.Chrome()
stealth(driver,
languages=["en-US", "en"],
vendor="Google Inc.",
platform="Windows",
webgl_vendor="Google Inc.",
render="WebKit",
fix_hairline=True
)
driver.get('https://example.com')
# Realiza las acciones necesarias y maneja la captcha
5. Utilizando proxies premium
El uso de proxies premium puede ayudarte a evitar las prohibiciones de IP al distribuir tu tráfico a través de múltiples direcciones. Los proxies de alta calidad reducen significativamente el riesgo de detección y bloqueo por parte de Cloudflare.
Pasos para implementar:
Adquiere una lista de proxies premium de un proveedor de confianza.
Configura Selenium para que utilice estos proxies para las solicitudes web.
Conclusión
Navegar con éxito las captchas Turnstile de Cloudflare requiere una combinación de técnicas y herramientas avanzadas. Al integrar CapSolver con Selenium, utilizar versiones de ChromeDriver no detectadas, aprovechar SeleniumBase, emplear plugins stealth y utilizar proxies premium, puedes mejorar tus capacidades de web scraping al mismo tiempo que te aseguras de cumplir con los protocolos de seguridad web. Recuerda siempre cumplir con las normas éticas y utilizar estas herramientas de forma responsable en tus esfuerzos de web scraping.
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.