CAPSOLVER
Blog
Como resolver o reCAPTCHA com Puppeteer em PHP para Web Scraping

Como Resolver reCAPTCHA com Puppeteer em PHP para Web Scraping

Logo of CapSolver

Aloísio Vítor

Image Processing Expert

28-Aug-2024

Já se deparou com um bloqueio do reCAPTCHA ao raspar dados? Eu também já passei por isso. Esses desafios de CAPTCHA podem transformar uma simples tarefa de raspagem em um grande obstáculo. Mas não se preocupe, tenho uma solução que vai ajudar você a superar essas barreiras.

Neste artigo, vou guiá-lo no uso do Puppeteer, uma poderosa biblioteca Node.js, para resolver desafios do reCAPTCHA. Em seguida, integraremos isso ao PHP para tornar suas tarefas de raspagem da Web mais suaves e eficientes. Pronto para enfrentar o reCAPTCHA e obter seus dados sem problemas? Vamos começar!

O que é reCAPTCHA em Web Scraping?

Para lhe dar um pouco de contexto, o reCAPTCHA é um sistema projetado para proteger sites contra abusos automatizados. Ele solicita que os usuários concluam tarefas que são fáceis para os humanos, mas desafiadoras para os bots, como identificar objetos em imagens ou marcar uma caixa. Embora esses desafios sejam ótimos para a segurança, eles podem ser um verdadeiro incômodo para a raspagem da Web. Aqui estão os tipos básicos que você pode encontrar:

  • reCAPTCHA v2: Esta versão é conhecida pela caixa de seleção "Não sou um robô" e desafios baseados em imagens. Os usuários podem precisar clicar em imagens ou realizar ações específicas para provar que são humanos. É eficaz na distinção entre usuários reais e bots.
  • reCAPTCHA v3: Esta versão opera em segundo plano. Em vez de exigir interação do usuário, ela analisa o comportamento do usuário em todo o site e atribui uma pontuação de risco. Essa pontuação ajuda os sites a determinar se devem conceder ou bloquear o acesso com base na probabilidade de o usuário ser um bot.

  • reCAPTCHA Enterprise: Para empresas com requisitos de segurança mais exigentes, o reCAPTCHA Enterprise oferece proteção avançada contra ameaças sofisticadas. Ele inclui recursos como análise de risco aprimorada, pontuação personalizável e escalabilidade aprimorada, tornando-o adequado para organizações que lidam com informações confidenciais ou operações críticas.

Está enfrentando problemas para resolver o irritante captcha repetidamente?

Descubra a resolução automática de captcha perfeita com a tecnologia Auto Web Unblock da Capsolver com tecnologia AI!

Reivindique seu Código de Bônus para as melhores soluções de captcha; CapSolver: WEBS. Após resgatá-lo, você receberá um bônus extra de 5% após cada recarga, Ilimitado

Compreender essas versões nos ajudará a navegar pelos desafios do reCAPTCHA de forma eficaz. Vamos mergulhar em como podemos usar Puppeteer e CapSolver para lidar com esses desafios e otimizar nossos esforços de web scraping.

Como o CapSolver pode ajudar a resolver o reCAPTCHA

CapSolver é uma solução robusta para lidar com desafios de CAPTCHA, incluindo reCAPTCHA. Veja como você pode integrar o CapSolver em seu fluxo de trabalho para simplificar a resolução de CAPTCHA:

  1. Recupere a chave do site
    • Pesquise os logs de solicitações do navegador por uma solicitação como /recaptcha/api2/reload?k=6LcR_okUAAAAAPYrPe-HK_0RULO1aZM15ENyM-Mf. O parâmetro k= é a chave do site que você precisa.
    • Se você fornecer uma chave incorreta, receberá uma mensagem de erro como:
      Copy
      Solve failed! response: {"errorId":1,"errorCode":"ERROR_INVALID_TASK_DATA","errorDescription":"Invalid site key","taskId":"1cd1e687-96dd-4f14-b8ef-18b5d144d9b8","status":"failed"}
  • Se você usar a versão incorreta do reCAPTCHA (V2 ou V3) ou se houver uma incompatibilidade entre o tipo de site de destino e o tipo de solicitação da API, poderá ver:
    Copy
    Solve failed! response: {"errorId":1,"errorCode":"ERROR_CAPTCHA_SOLVE_FAILED","errorDescription":"Failed to solve the captcha: 1001","taskId":"da450cbc-ff9d-439d-908a-77e7eb8852dd","status":"failed"}
  1. Configurar seu ambiente

    • Instale os pacotes necessários:
      bash Copy
      npm install axios puppeteer-core
  2. Escrever o código de integração

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: configurar sua configuração
$api_key = "YOUR_API_KEY"; // sua chave de API do CapSolver
$site_key = "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-"; // chave do site do seu site de destino
$site_url = "https://www.google.com/recaptcha/api2/demo"; // URL da página do seu site 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 "Falha ao criar tarefa: " . json_encode($data) . PHP_EOL;
            return null;
        }
        echo "Obteve 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();

Seja você lidando com o reCAPTCHA v2, v3 ou Enterprise, integrar o CapSolver com o Puppeteer pode simplificar seu fluxo de trabalho e aumentar a eficiência de sua raspagem. Se você encontrar algum problema ou precisar de mais assistência, tanto o CapSolver quanto o Puppeteer oferecem documentação e suporte abrangentes para ajudá-lo a superar quaisquer desafios.

Declaração de Conformidade: As informações fornecidas neste blog são apenas para fins informativos. A CapSolver está comprometida em cumprir todas as leis e regulamentos aplicáveis. O uso da rede CapSolver para atividades ilegais, fraudulentas ou abusivas é estritamente proibido e será investigado. Nossas soluções de resolução de captcha melhoram a experiência do usuário enquanto garantem 100% de conformidade ao ajudar a resolver dificuldades de captcha durante a coleta de dados públicos. Incentivamos o uso responsável de nossos serviços. Para mais informações, visite nossos Termos de Serviço e Política de Privacidade.

Mais

Qual é o melhor solucionador de reCAPTCHA v2 e v3 durante a raspagem da web em 2025
Qual é o melhor resolvedor de reCAPTCHA v2 e v3 para web scraping em 2025

Em 2025, com a sofisticação crescente dos sistemas anti-bot, encontrar solucionadores de reCAPTCHA confiáveis tornou-se crítico para a extração bem-sucedida de dados.

reCAPTCHA
Logo of CapSolver

Adélia Cruz

17-Jan-2025

Resolvendo o reCAPTCHA com Reconhecimento de IA em 2025
Resolvendo o reCAPTCHA com Reconhecimento de IA em 2025

Explore como a IA está transformando a resolução de reCAPTCHA, as soluções da CapSolver e a paisagem em evolução da segurança CAPTCHA em 2025.

reCAPTCHA
Logo of CapSolver

Aloísio Vítor

11-Nov-2024

Resolvendo reCAPTCHA Usando Python, Java e C++
Resolvendo reCAPTCHA usando Python, Java e C++

Saiba como resolver o reCAPTCHA com sucesso usando três poderosas linguagens de programação: Python, Java e C++ em um único blog? Entre!

reCAPTCHA
Logo of CapSolver

Adélia Cruz

25-Oct-2024

Como Resolver o reCAPTCHA v2 com Rust
Como Resolver reCAPTCHA v2 com Rust

Aprenda a resolver o reCaptcha v2 usando Rust e a API do Capsolver. Este guia abrange métodos com e sem proxy, fornecendo instruções passo a passo e exemplos de código para integrar a resolução do reCaptcha v2 em seus aplicativos Rust.

reCAPTCHA
Logo of CapSolver

Adélia Cruz

17-Oct-2024

Guia para Resolver reCAPTCHA v3 com Pontuações Altas em Python
Guia para Resolver reCAPTCHA v3 com Pontuações Altas em Python

Este guia irá guiá-lo através de estratégias eficazes e técnicas Python para resolver o reCAPTCHA v3 com pontuações altas, garantindo que suas tarefas de automação funcionem perfeitamente.

reCAPTCHA
Logo of CapSolver

Adélia Cruz

17-Sep-2024

Resolvendo Desafios do reCAPTCHA v3 Enterprise com Python e Selenium
Resolvendo Desafios do reCAPTCHA v3 Enterprise com Python e Selenium

Como resolver desafios reCAPTCHA v3 Enterprise usando Python e Selenium, a popular ferramenta de automação de navegador.

reCAPTCHA
Logo of CapSolver

Aloísio Vítor

04-Sep-2024