CAPSOLVER
Blog
Cómo resolver Cloudflare usando Python y Go en 2025

Cómo resolver Cloudflare utilizando Python y Go en 2025

Logo of CapSolver

Aloísio Vítor

Image Processing Expert

05-Nov-2024

¿Qué es Cloudflare Turnstile?

Cloudflare Turnstile es un sistema CAPTCHA moderno diseñado para distinguir a los usuarios humanos de los bots automatizados. A diferencia de los CAPTCHA tradicionales que a menudo requieren que los usuarios resuelvan rompecabezas complejos, Turnstile opera principalmente en segundo plano, utilizando análisis de comportamiento y evaluación de riesgos para determinar la autenticidad del usuario. Esto significa que los usuarios a menudo pueden acceder a los sitios web sin tener que completar desafíos frustrantes, lo que mejora su experiencia.
Turnstile utiliza técnicas basadas en JavaScript para evaluar varias señales, como los movimientos del mouse y los patrones de interacción, para determinar si un visitante es un humano o un bot. Esta tecnología está ganando rápidamente popularidad entre los sitios web que buscan mejorar la participación del usuario mientras mantienen un alto nivel de seguridad.

¿Por qué usar Python y Go?

Python y Go son lenguajes poderosos para superar los desafíos que presenta Turnstile y son particularmente adecuados para la automatización web. Aquí tienes una mirada más cercana a por qué son ideales para esta tarea:

Aquí tienes una versión con hipervínculos a recursos para una mayor exploración:

  1. Alta legibilidad y flexibilidad de Python
    La simplicidad y legibilidad de Python lo convierten en uno de los lenguajes más utilizados para la automatización web y el scraping. Herramientas como Selenium, Requests y BeautifulSoup proporcionan formas poderosas de gestionar interacciones web, gestionar cookies y realizar solicitudes HTTP. Estas herramientas, combinadas con la adaptabilidad de Python, lo convierten en la mejor opción para tareas que requieren ajustes precisos o regulares, especialmente en el manejo de CAPTCHA.

  2. Velocidad y concurrencia de Go
    La naturaleza compilada de Go significa que se ejecuta de forma más eficiente que los lenguajes interpretados como Python, lo que es ideal para tareas de alto rendimiento como evitar CAPTCHA con límite de velocidad. El modelo de concurrencia de Go, a través de goroutines, permite gestionar múltiples solicitudes a la vez, lo que reduce el tiempo de procesamiento total en los flujos de trabajo de automatización. Esto convierte a Go en una gran opción para situaciones en las que la velocidad y el procesamiento paralelo son esenciales.

  3. Fiabilidad de los enfoques combinados
    Combinar Python y Go significa aprovechar Python para la navegación web e interacciones complejas, mientras que se utiliza la velocidad de Go para gestionar solicitudes HTTP frecuentes. Este enfoque híbrido mantiene el rendimiento y la escalabilidad, lo que es especialmente importante al tratar con medidas de seguridad avanzadas como Cloudflare Turnstile), que pueden utilizar patrones de comportamiento para la detección de bots.

  4. Fuerte comunidad y soporte
    Ambos lenguajes están respaldados por comunidades grandes y activas que ofrecen extensas bibliotecas, foros y documentación. Este ecosistema significa que los desarrolladores pueden encontrar fácilmente soluciones, herramientas y bibliotecas para agilizar el proceso de evitar CAPTCHA y gestionar tareas complejas de automatización. Python, con su ecosistema maduro, y Go, con su eficiencia en tareas concurrentes, se complementan bien para casos de uso que exigen resiliencia y adaptabilidad.

Al utilizar Python y Go juntos, los desarrolladores pueden abordar los intrincados desafíos que presentan Cloudflare Turnstile y otros sistemas CAPTCHA con un enfoque que equilibra flexibilidad, velocidad y eficiencia.

¿Puede Cloudflare Turnstile detectar los raspadores de Python?

Aunque Turnstile se centra principalmente en el comportamiento en lugar del lenguaje de programación, es posible que los raspadores basados en Python sean marcados al observar indicadores específicos:

  • Comportamiento de usuario poco natural: Las acciones rápidas y precisas pueden indicar un comportamiento similar al de un bot.
  • Reputación de la IP: Las solicitudes de centros de datos conocidos o IPs proxy pueden activar el escrutinio de Turnstile.
  • Cadenas de agentes de usuario: Las cadenas de agentes de usuario predeterminadas asociadas a las bibliotecas (por ejemplo, Requests) pueden marcar el tráfico como sospechoso.

Para evitar la detección, imita los patrones de interacción humana y utiliza proxies residenciales o de alta calidad.

Cómo evitar Cloudflare Turnstile

Evitar Turnstile puede ser un desafío, pero con las herramientas adecuadas, es alcanzable. A continuación, presentaré un método basado en Python y Go, integrando la API de CapSolver, para evitar el CAPTCHA de Turnstile de forma eficiente.

Código de bonificación

Reclama tu Código de bonificación para las mejores soluciones de captcha; CapSolver: WEBS. Después de canjearlo, obtendrás un 5% adicional de bonificación después de cada recarga, Ilimitado

Implementación de Python con CapSolver

El siguiente código demuestra cómo evitar Turnstile usando Python y la API de CapSolver.

python Copy
import time
import requests
import tls_client

CAPSOLVER_API_KEY = "YOUR_CAPSOLVER_API_KEY"
PAGE_URL = "https://dash.cloudflare.com/login"
SITE_KEY = "0x4AAAAAAAJel0iaAR3mgkjp"
PROXY = "YOUR_PROXY"

# Crea una tarea con CapSolver para evitar Turnstile
def call_capsolver():
    data = {
        "clientKey": CAPSOLVER_API_KEY,
        "task": {
            "type": "AntiTurnstileTaskProxyLess",
            "websiteURL": PAGE_URL,
            "websiteKey": SITE_KEY,
            "metadata": {"action": "login"}
        }
    }
    uri = 'https://api.capsolver.com/createTask'
    res = requests.post(uri, json=data)
    task_id = res.json().get('taskId')
    if not task_id:
        print("Error al crear la tarea:", res.text)
        return None

    # Consulta la finalización de la tarea
    while True:
        time.sleep(1)
        data = {
            "clientKey": CAPSOLVER_API_KEY,
            "taskId": task_id
        }
        response = requests.post('https://api.capsolver.com/getTaskResult', json=data)
        resp = response.json()
        if resp.get('status') == "ready":
            print("Tarea completada:", resp)
            return resp.get('solution')
        if resp.get('status') == "failed" or resp.get("errorId"):
            print("Tarea fallida:", response.text)
            return None

def login(token, userAgent):
    headers = {
        'Cookie': f'cf_clearance={token}',
        'Host': 'dash.cloudflare.com',
        'User-Agent': userAgent
    }
    session = tls_client.Session(client_identifier="chrome_120", random_tls_extension_order=True)
    response = session.post(
        url='https://dash.cloudflare.com/api/v4/login',
        headers=headers,
        data={"cf_challenge_response": token, "email": "your_email", "password": "your_password"},
    )
    print("Respuesta de inicio de sesión:", response.status_code)
    if response.status_code != 403:
        print('Inicio de sesión exitoso:', response.text)

if __name__ == "__main__":
    solution = call_capsolver()
    if solution:
        login(solution.get("token"), "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36")

Implementación de Go con CapSolver

Así es como se realiza la misma tarea en Go:

go Copy
package main

import (
    "fmt"
    "github.com/imroc/req/v3"
    "github.com/tidwall/gjson"
    "log"
    "time"
)

func createTask(apiKey, pageURL, siteKey string) string {
    client := req.C()

    postData := map[string]interface{}{
       "clientKey": apiKey,
       "task": map[string]interface{}{
          "type":       "AntiTurnstileTaskProxyLess",
          "websiteURL": pageURL,
          "websiteKey": siteKey,
          "metadata":   map[string]string{"action": "login"},
       },
    }
    resp, err := client.R().SetBodyJsonMarshal(postData).Post("https://api.capsolver.com/createTask")
    if err != nil {
       log.Fatal(err)
    }
    return gjson.Get(resp.String(), "taskId").String()
}

func getTaskResult(apiKey, taskId string) map[string]gjson.Result {
    client := req.C()
    for {
        postData := map[string]interface{}{
          "clientKey": apiKey,
          "taskId":    taskId,
        }
        resp, err := client.R().SetBodyJsonMarshal(postData).Post("https://api.capsolver.com/getTaskResult")
        if err != nil {
          log.Fatal(err)
        }
        if gjson.Get(resp.String(), "status").String() == "ready" {
            return gjson.Get(resp.String(), "solution").Map()
        }
        time.Sleep(3 * time.Second)
    }
}

func main() {
    apiKey := "YOUR_CAPSOLVER_API_KEY"
    pageURL := "https://dash.cloudflare.com/login"
    siteKey := "0x4AAAAAAAJel0iaAR3mgkjp"

    taskId := createTask(apiKey, pageURL, siteKey)
    solution := getTaskResult(apiKey, taskId)
    if solution != nil {
       fmt.Println("Token obtenido:", solution["token"].String())
    }
}

Estos ejemplos de código ilustran cómo integrar CapSolver para evitar el CAPTCHA de Cloudflare Turnstile automatizando la recuperación de la solución CAPTCHA y enviando una solicitud de inicio de sesión exitosa.

Reflexiones finales

Cloudflare Turnstile sigue presentando desafíos para la automatización web. El uso de lenguajes potentes como Python y Go, junto con servicios como CapSolver, ofrece una forma optimizada de resolver los desafíos de Turnstile mientras se conserva un acceso eficiente y seguro.

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.

Máse

Cómo resolver Cloudflare usando Python y Go en 2025
Cómo resolver Cloudflare utilizando Python y Go en 2025

Compartiré información sobre qué es Cloudflare Turnstile, utilizando Python y Go para estas tareas, si Turnstile puede detectar raspadores Python y cómo evitarlo eficazmente utilizando soluciones como CapSolver.

Cloudflare
Logo of CapSolver

Aloísio Vítor

05-Nov-2024

Cómo resolver captchas de Cloudflare Turnstile con Selenium
Cómo resolver los captchas de Cloudflare Turnstile con Selenium

En este blog, discutiremos varias técnicas efectivas para superar los captchas de Cloudflare Turnstile usando Selenium.

Cloudflare
Logo of CapSolver

Aloísio Vítor

11-Oct-2024

Una guía para resolver los captchas de Cloudflare Turnstile en Java para la automatización web
Una guía para resolver captchas de Cloudflare Turnstile en Java para la automatización web

Aprende a automatizar interacciones web en Java y a sortear el CAPTCHA Turnstile de Cloudflare con herramientas prácticas y técnicas de codificación.

Cloudflare
Logo of CapSolver

Aloísio Vítor

08-Oct-2024

Cómo automatizar la solución de Cloudflare Turnstile para la rastreo web
Cómo automatizar la resolución de Cloudflare Turnstile para la extracción web

Exploraremos estrategias para manejar el CAPTCHA de Cloudflare Turnstile en la rastreo web y discutiremos técnicas para automatizar su solución usando Puppeteer y CapSolver en Python.

Cloudflare
Logo of CapSolver

Aloísio Vítor

27-Sep-2024

Cómo usar C# para resolver los desafíos de CAPTCHA de Cloudflare Turnstile
Cómo usar C# para resolver los desafíos de CAPTCHA de Cloudflare Turnstile

Sabrás cómo resolver fácilmente el desafío CAPTCHA de Cloudflare Turnstile usando C# y quieres saber los detalles específicos? ¡Vamos!

Cloudflare
Logo of CapSolver

Nikolai Smirnov

17-Sep-2024

Evitar el bloqueo de Cloudflare
Evadir el bloqueo de Cloudflare

Aprende a resolver el Desafío de Cloudflare con Capsolver: requisitos clave, uso de proxy y pasos detallados para una solución eficiente.

Cloudflare
Logo of CapSolver

Ethan Collins

16-May-2023