CAPSOLVER
Blog
Cómo resolver reCAPTCHA con Puppeteer en PHP para web scraping

Cómo resolver reCAPTCHA con Puppeteer en PHP para la extracción de datos web

Logo of CapSolver

Aloísio Vítor

Image Processing Expert

28-Aug-2024

¡Has chocado contra un muro con reCAPTCHA mientras raspas datos? ¡Yo también he estado ahí!

Esos desafíos de CAPTCHA pueden convertir una tarea de raspado simple en un obstáculo importante. Pero no te preocupes, tengo una solución que te ayudará a superar esas barreras con facilidad.

En este blog, te guiaré a través del uso de Puppeteer, una poderosa biblioteca de Node.js, para abordar los desafíos de reCAPTCHA. Luego, integraremos esto con PHP para hacer tus tareas de raspado web más fluidas y eficientes. ¿Listo para abordar reCAPTCHA y obtener tus datos sin problemas? ¡Vamos a entrar!

¿Qué es reCAPTCHA al raspar la web?

Para darte algo de contexto, reCAPTCHA es un sistema diseñado para proteger los sitios web del abuso automatizado. Pide a los usuarios que completen tareas que son fáciles para los humanos pero desafiantes para los bots, como identificar objetos en imágenes o marcar una casilla. Si bien estos desafíos son excelentes para la seguridad, pueden ser un verdadero dolor de cabeza para el raspado web. Estos son los tipos básicos que puedes encontrar:

  • reCAPTCHA v2: Esta versión es conocida por la casilla "No soy un robot" y los desafíos basados ​​en imágenes. Los usuarios pueden necesitar hacer clic en imágenes o completar acciones específicas para demostrar que son humanos. Es eficaz para distinguir entre usuarios reales y bots.
  • reCAPTCHA v3: Esta versión opera en segundo plano. En lugar de requerir interacción del usuario, analiza el comportamiento del usuario en todo el sitio y asigna una puntuación de riesgo. Esta puntuación ayuda a los sitios web a determinar si deben otorgar o bloquear el acceso en función de la probabilidad de que el usuario sea un bot.

  • reCAPTCHA Enterprise: Para empresas con requisitos de seguridad más exigentes, reCAPTCHA Enterprise ofrece protección avanzada contra amenazas sofisticadas. Incluye funciones como análisis de riesgos mejorado, puntuación personalizable y escalabilidad mejorada, lo que lo hace adecuado para organizaciones que manejan información confidencial u operaciones críticas.

¿Te cuesta completar el molesto captcha una y otra vez?

¡Descubre la resolución automática de captcha sin problemas con la tecnología Auto Web Unblock de Capsolver impulsada por IA!

Reclama tu Código de Bono para las mejores soluciones de captcha; CapSolver: WEBS. Después de canjearlo, obtendrás un bono adicional del 5% después de cada recarga, ¡ilimitado!

Comprender estas versiones nos ayudará a navegar los desafíos de reCAPTCHA de manera efectiva. Profundicemos en cómo podemos usar Puppeteer y CapSolver para manejar estos desafíos y optimizar nuestros esfuerzos de raspado web.

Cómo CapSolver puede ayudar a resolver reCAPTCHA

CapSolver es una solución robusta para manejar desafíos de CAPTCHA, incluido reCAPTCHA. A continuación, se muestra cómo puedes integrar CapSolver en tu flujo de trabajo para simplificar la resolución de CAPTCHA:

  1. Recuperar la clave del sitio
    • Busca en los registros de solicitudes del navegador una solicitud como /recaptcha/api2/reload?k=6LcR_okUAAAAAPYrPe-HK_0RULO1aZM15ENyM-Mf. El parámetro k= es la clave del sitio que necesitas.
    • Si proporcionas una clave incorrecta, recibirás un mensaje de error como:
      Copy
      ¡Error al resolver! respuesta: {"errorId":1,"errorCode":"ERROR_INVALID_TASK_DATA","errorDescription":"Clave de sitio no válida","taskId":"1cd1e687-96dd-4f14-b8ef-18b5d144d9b8","status":"failed"}
  • Si utiliza la versión incorrecta de reCAPTCHA (V2 o V3), o si hay una discrepancia entre el tipo de sitio de destino y el tipo de solicitud de API, es posible que vea:
    Copy
    ¡Resolver fallado! respuesta: {"errorId":1,"errorCode":"ERROR_CAPTCHA_SOLVE_FAILED","errorDescription":"Error al resolver el captcha: 1001","taskId":"da450cbc-ff9d-439d-908a-77e7eb8852dd","status":"failed"}
  1. Configure su entorno

    • Instale los paquetes necesarios:
      bash Copy
      npm install axios puppeteer-core
  2. Escriba el código de integración

php Copy
<?php

require_once 'vendor/autoload.php';
use Nesk\Puphpeteer\Puppeteer;
use Nesk\Rialto\Data\JsFunction;
use GuzzleHttp\Client;

$puppeteer = new Puppeteer;
$browser = $puppeteer->launch();

// TODO: configure su configuración
$api_key = "SU_CLAVE_API"; // su clave API de CapSolver
$site_key = "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-"; // clave del sitio de su sitio de destino
$site_url = "https://www.google.com/recaptcha/api2/demo"; // URL de la página de su sitio de destino

function capsolver()
{
    global $api_key, $site_key, $site_url;
    $client = new Client();
    $payload = [
        'clientKey' => $api_key,
        'task' => [
            'type' => 'ReCaptchaV2TaskProxyLess',
            'websiteKey' => $site_key,
            'websiteURL' => $site_url,
        ]
    ];

    try {
        $response = $client->post("https://api.capsolver.com/createTask", [
            'json' => $payload
        ]);
        $data = json_decode($response->getBody(), true);
        $task_id = $data['taskId'] ?? null;
        if (!$task_id) {
            echo "Error al crear la tarea: " . json_encode($data) . PHP_EOL;
            return null;
        }
        echo "Obtuvo taskId: " . $task_id . PHP_EOL;

        while (true) {
            sleep(1);

            $getResultPayload = [
                'clientKey' => $api_key,
                'taskId' => $task_id
            ];
            $resp = $client->post("https://api.capsolver.com/getTaskResult", [
php Copy
<?php

function capsolver()
{
    try {
        $client = new \GuzzleHttp\Client();
        $resp = $client->post('https://api.capsolver.com/createTask', [
            'json' => $getResultPayload
            ]);
        $data = json_decode($resp->getBody(), true);
        $status = $data['status'] ?? null;

        if ($status === "ready") {
            return $data['solution']['gRecaptchaResponse'];
        }
        if ($status === "failed" || isset($data['errorId'])) {
            echo "Solve failed! response: " . json_encode($data) . PHP_EOL;
            return null;
        }
    } catch (\Exception $e) {
        echo "Error: " . $e->getMessage() . PHP_EOL;
        return null;
    }
}

function reqSite()
{
    global $site_url, $browser;
    $token = capsolver();
    if ($token === null) {
        return;
    }
    echo $token . PHP_EOL;

    $page = $browser->newPage();
    $page->goto($site_url);
    $evaluate_script = <<<EOD
        document.getElementById("g-recaptcha-response").value="$token";
        onSuccess("$token");
    EOD;
    $page->evaluate(JsFunction::createWithBody($evaluate_script));
    $product_element = $page->querySelector('#recaptcha-demo-submit');
    if ($product_element instanceof ElementHandle) {
        $product_element->click();
    } else {
        echo 'Element not found.' . PHP_EOL;
    }
}

reqSite();

Ya sea que estés trabajando con reCAPTCHA v2, v3 o Enterprise, integrar CapSolver con Puppeteer puede simplificar tu flujo de trabajo y mejorar la eficiencia de tu raspado. Si te encuentras con algún problema o necesitas más ayuda, tanto CapSolver como Puppeteer ofrecen documentación y soporte completos para ayudarte a superar cualquier desafío.

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

¿Cuál es el mejor solucionador de reCAPTCHA v2 y v3 para web scraping en 2025
¿Cuál es el mejor solucionador de reCAPTCHA v2 y v3 para web scraping en 2025?

En 2025, con la mayor sofisticación de los sistemas anti-bot, encontrar solucionadores de reCAPTCHA fiables se ha vuelto crítico para la extracción exitosa de datos.

reCAPTCHA
Logo of CapSolver

Ethan Collins

17-Jan-2025

Resolviendo reCAPTCHA con Reconocimiento de IA en 2025
Resolviendo reCAPTCHA con Reconocimiento de IA en 2025

Explorar cómo la IA está transformando la resolución de reCAPTCHA, las soluciones de CapSolver y el panorama cambiante de la seguridad CAPTCHA en 2025.

reCAPTCHA
Logo of CapSolver

Adélia Cruz

11-Nov-2024

Resolviendo reCAPTCHA con Python, Java y C++
Resolviendo reCAPTCHA usando Python, Java y C++

¿Quieres saber cómo resolver reCAPTCHA con éxito usando tres lenguajes de programación poderosos: Python, Java y C++ en un solo blog? ¡Entra!

reCAPTCHA
Logo of CapSolver

Aloísio Vítor

25-Oct-2024

Cómo resolver reCAPTCHA v2 con Rust
Cómo resolver reCAPTCHA v2 con Rust

Aprende a resolver reCaptcha v2 usando Rust y la API de Capsolver. Esta guía abarca los métodos con y sin proxy, proporcionando instrucciones paso a paso y ejemplos de código para integrar la resolución de reCaptcha v2 en tus aplicaciones Rust.

reCAPTCHA
Logo of CapSolver

Aloísio Vítor

17-Oct-2024

Guía para resolver reCAPTCHA v3 con puntuaciones altas en Python
Guía para resolver reCAPTCHA v3 con puntuaciones altas en Python

Esta guía te guiará a través de estrategias efectivas y técnicas de Python para resolver reCAPTCHA v3 con puntajes altos, asegurando que tus tareas de automatización se ejecuten sin problemas.

reCAPTCHA
Logo of CapSolver

Aloísio Vítor

17-Sep-2024

Cómo manejar múltiples desafíos de reCAPTCHA de forma concurrente
Cómo manejar múltiples desafíos de reCAPTCHA de forma concurrente

Aprende a manejar varios desafíos de reCAPTCHA simultáneamente en proyectos de web scraping. Este blog explica los diferentes tipos de reCAPTCHA, cómo identificarlos usando herramientas como Capsolver y automatizar la resolución de CAPTCHA usando Python y threading.

reCAPTCHA
Logo of CapSolver

Aloísio Vítor

10-Sep-2024