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.