Como resolver o reCAPTCHA com Puppeteer em PHP para Web Scraping
Como Resolver reCAPTCHA com Puppeteer em PHP para Web Scraping
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:
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"}
Configurar seu ambiente
Instale os pacotes necessários:
bashCopy
npm install axios puppeteer-core
Escrever o código de integração
phpCopy
<?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", [
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.