Bypass captcha com PHP

Bypass captcha com PHP

Integre o pacote PHP para solução de automação de bypass captcha. Melhor taxa de reconhecimento captcha bem-sucedida.

Pacote PHP para fácil integração com a API do serviço de solução de captcha 2Captcha para fazer bypass a reCAPTCHA, Arkose captcha, geetest e resolver quaisquer outros captchas

Início rápido

Instalação

O pacote de scripts pode ser instalado usando o instalador de pacotes ou manualmente

Compositor

Para instalar automaticamente um pacote de bibliotecas, necessita de usar a solução padrão para pacotes PHP - Composer. Descarregue o link e instale de acordo com as instruções. Depois de instalar a app, use o comando:

composer require 2captcha/2captcha

Manual

Descarregue o conteúdo da pasta src para o seu projeto e ative o autoloader src/autoloader.php com o comando:

require 'path/to/autoloader.php';

Convidamo-lo a explorar o nosso repositório GitHub onde pode encontrar bibliotecas e módulos para fácil integração com a nossa API.

Configuração

Descrição de todos os parâmetros necessários para configurar o pacote instalado

Uma instância da classe TwoCaptcha pode ser criada desta forma:

$solver = new \TwoCaptcha\TwoCaptcha('YOUR_API_KEY');

Também pode personalizar algumas das opções para a instância criada:

$solver = new \TwoCaptcha\TwoCaptcha([
    'apiKey'           => 'YOUR_API_KEY',
    'softId'           => 123,
    'callback'         => 'https://your.site/result-receiver',
    'defaultTimeout'   => 120,
    'recaptchaTimeout' => 600,
    'pollingInterval'  => 10,
]);
Opções de instância TwoCaptcha
OpçãoValor padrãoDescrição
softId-o seu ID de software obtido após a publicação no 2Captcha catálogo de software
callback-URL do seu servidor web que recebe o resultado do reconhecimento captcha. O URL deve ser registado primeiro nas configurações de pingback da sua conta
defaultTimeout120Tempo limite de pesquisa em segundos para todos os tipos de captcha, exceto reCAPTCHA. Define por quanto tempo o módulo tenta obter a resposta da parte da API res.php
recaptchaTimeout600Tempo limite de sondagem para reCAPTCHA em segundos. Define por quanto tempo o módulo tenta obter a resposta da parte da API res.php
pollingInterval10Intervalo em segundos entre solicitações da parte da API res.php, não é recomendado definir valores inferiores a 5 segundos
IMPORTANTE: assim que o callback seja definido para a instância TwoCaptcha, todos os métodos retornam apenas o ID do captcha e NÃO pesquisam a API para obter o resultado. O resultado será enviado para o URL de retorno de chamada. Para obter a resposta manualmente, use o método getResult

Resolver o captcha

Quando envia qualquer captcha baseado em imagem, o uso de captcha pode fornecer opções adicionais para ajudar os funcionários do 2Captcha a resolvê-lo corretamente

Opções de Captcha
OpçãoValor por defeitoDescrição
numeric0Define se o captcha contém símbolos numéricos ou outros veja mais informações na documentação API
minLength0comprimento mínimo da resposta
compMax0comprimento máximo da resposta
phrase0define se a resposta contém ou não várias palavras
caseSensitive0define se a resposta diferencia maiúsculas de minúsculas
calc0define se captcha requer cálculo
lang-define o idioma captcha, consulte a lista de idiomas suportados
hintImg-uma imagem com dica mostrada aos trabalhadores com o captcha
hintText-dica ou texto de tarefa mostrado aos trabalhadores com o captcha
simpleCaptcha

Para ignorar um captcha normal (texto distorcido na imagem) use o seguinte método. Este método também pode ser usado para reconhecer qualquer texto na imagem.

$result = $solver->normal('path/to/captcha.jpg');
textCaptcha

Este método pode ser usado para ignorar um captcha que requer responder a uma pergunta fornecida em texto não encriptado.

$result = $solver->text('If tomorrow is Saturday, what day is today?');
recaptchaV2

Use este método para resolver o reCAPTCHA V2 e obter um token para fazer bypass a proteção.

$result = $solver->recaptcha([
    'sitekey' => '6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-',
    'url'     => 'https://mysite.com/page/with/recaptcha',
]);
recaptchaV3

Este método fornece o solucionador reCAPTCHA V3 e retorna um token.

$result = $solver->recaptcha([
    'sitekey' => '6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-',
    'url'     => 'https://mysite.com/page/with/recaptcha',
    'version' => 'v3',
]);
funCaptcha

Método de resolução FunCaptcha (Arkoselabs). Retorna um token.

$result = $solver->funcaptcha([
    'sitekey' => '6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-',
    'url'     => 'https://mysite.com/page/with/funcaptcha',
]);
geeTest

Método para resolver o captcha do puzzle GeeTest. Retorna um conjunto de tokens como JSON.

$result = $solver->geetest([
    'gt'        => 'f1ab2cdefa3456789012345b6c78d90e',
    'challenge' => '12345678abc90123d45678ef90123a456b',
    'url'       => 'https://www.site.com/page/',
]);
keyCaptcha

Método baseado em token para resolver KeyCaptcha.

$result = $solver->keycaptcha([
    's_s_c_user_id'          => 10,
    's_s_c_session_id'       => '493e52c37c10c2bcdf4a00cbc9ccd1e8',
    's_s_c_web_server_sign'  => '9006dc725760858e4c0715b835472f22-pz-',
    's_s_c_web_server_sign2' => '2ca3abe86d90c6142d5571db98af6714',
    'url'                    => 'https://www.keycaptcha.ru/demo-magnetic/',
]);
capy

Método baseado em token para fazer bypass a captcha de puzzle Capy.

$result = $solver->capy([
    'sitekey' => 'PUZZLE_Abc1dEFghIJKLM2no34P56q7rStu8v',
    'url'     => 'http://mysite.com/',
    'api_server' => 'https://jp.api.capy.me/',
]);
grid

O método Grid é originalmente chamado de método Old reCAPTCHA V2. O método pode ser usado para contornar qualquer tipo de captcha onde pode aplicar uma grelha na imagem e deve clicar em caixas de grade específicas. Retorna números de caixas.

$result = $solver->grid('path/to/captcha.jpg');
canvas

O método Canvas pode ser usado quando precisa de desenhar uma linha ao redor de um objeto na imagem. Retorna um conjunto de coordenadas de pontos para desenhar um polígono.

$result = $solver->canvas('path/to/captcha.jpg');
clickCaptcha

O método ClickCaptcha retorna as coordenadas dos pontos na imagem captcha. Pode ser usado se necessitar de clicar em pontos específicos da imagem.

$result = $solver->coordinates('path/to/captcha.jpg');
rotateCaptcha

Este método pode ser usado para resolver um captcha que pede para girar um objeto. Usado principalmente para contornar o FunCaptcha. Retorna o ângulo de rotação.

$result = $solver->rotate('path/to/captcha.jpg');

Outros métodos

Métodos válidos adicionais usados durante o trabalho dos scripts principais

send / getResult

Estes métodos podem ser usados para envio manual de captcha e pesquisa de respostas.

$id = $solver->send(['file' => 'path/to/captcha.jpg', ...]);

sleep(20);

$code = $solver->getResult($id);

balance

Use este método para obter o saldo da sua conta.

$balance = $solver->balance();

report

Use este método para relatar uma resposta captcha boa ou má.

$solver->report($id, true); // captcha solved correctly
$solver->report($id, false); // captcha solved incorrectly

Manipulação de erros

Possíveis variantes de erros padrão retornados pelo serviço ao processar pedidos

Caso de um solucionador de captcha de erro lance uma exceção. É importante lidar adequadamente com estes casos. Recomendamos usar try/catch para lidar com exceções.

try {
    $result = $solver->text('If tomorrow is Saturday, what day is today?');
} catch (\TwoCaptcha\Exception\ValidationException $e) {
    // invalid parameters passed
} catch (\TwoCaptcha\Exception\NetworkException $e) {
    // network error occurred
} catch (\TwoCaptcha\Exception\ApiException $e) {
    // api respond with error
} catch (\TwoCaptcha\Exception\TimeoutException $e) {
    // captcha is not solved so far
}

Outras linguagens para integração com a API de serviço