Menu

Como passar por qualquer captcha com as tarefas AntiGate

Uma nova versão em vídeo do tutorial de tarefas do AntiGate está disponível aqui.

Após anos de pesquisa e desenvolvimento, apresentamos uma solução universal para ajudar seus robôs passarem por captchas gerados por humanos. Chamamos a solução de "AntiGate", e essas são as templates pré-definidas que nosso pessoal usa para executar tarefas exatas.

Em algum momento, o seu app encontrará um "gateway" de proteção de automação com algum novo tipo de captcha, scripts de navegação ofuscados, ou qualquer coisa desse tipo. É aqui que as tarefas do AntiGate atuam. Você seleciona um de nossos workers para construir uma sessão de navegação real.
  • Primeiro, escolha uma template. Você pode usar uma existente ou criar a sua própria. Uma template é um conjunto de instruções passo a passo que os workers executam.
  • Segundo, forneça qualquer dado adicional que a template solicite, como o valor de um campo a ser preenchido, o seletor CSS de um campo, ou o endereço web para o qual devemos navegar. Falaremos mais sobre templates a seguir.
  • Terceiro, esse é opcional - proxies. Você precisa deles se um website associa cada cookie de sessão com um endereço de IP exato.
Tendo esses três, você cria uma tarefa com a nossa API. Um worker navega em seu website com o nosso plugin e executa todos as etapas do ambiente manualmente ou automaticamnete. E no final do script, pegamos todas as informações da sessão do navegador deles cookies, valores de localStorage, impressão digital do navegador e transmitimos de volta para o seu app. Tudo o que você tem que fazer é usar esses dados para restaurar a sessão do nosso worker e continuar as operações como um usuário humano. Agora, como isso é incrível? :)

O que são as templates AntiGate?

Uma template AntiGate define um cenário exato por onde nossos workers deverão passar. As templates consistem de etapas, executadas sequencialmente. Quando uma etapa é concluída, o worker passa para a próxima. Quando todas as etapas são concluídas, a tarefa é finalizada e é tirado um snapshot da sessão do worker, enviado para o seu app.

Quais são as etapas envolvidas?
  • Preencha um campo de texto automaticamente ou manualmente.
  • Aguarde a exibição (ou desaparecimento) da amostra de texto na página.
  • Aguarde a exibição (ou desaparecimento) de um elemento DOM definido por CSS na página.
  • Aguarde a exibição (ou desaparecimento) de uma palavra-chave do endereço URL atual do worker.
No campo de texto "descrição para workers" da template pode ser descrito qualquer outra etapa que você espera do worker. Por exemplo: "Resolva um captcha e pressione o botão de enviar".
vamos ver um exemplo. Navegue para Centro de Desenvolvedores e crie uma template gratuita para teste. Não se preocupe, você não vai mandar nada pelos ares!
Clique para adicionar a template
Clique para carregar um exemplo
Observe a seção de etapas
Você acaba de carregar o exemplo de demonstração. Você pode salvá-lo em sua conta e testar mais tarde. Vamos conhecer um pouco mais sobre a lista completa de propriedades da template:
  • Nome da Template. Uma vez salvo, não poderá ser modificado. Depois de publicado, sua template ficará disponível na API por este nome.
  • Descrição para clientes. Templates públicas estão disponíveis em nosso catálogo de templates.
  • Descrição para os workers. Este é o texto que nossos workers veem no topo da página.
    Exemplo de interface dos workers
  • Variáveis. Esta é uma lista de nomes de variáveis que você pode adicionar e usar nas etapas em vez de valores permanentes. Neste exemplo, temos 2 variáveis, "login" e "password". Essas 2 são usadas na etapa 1 e 2 para preencher o formulário de login de demonstração. Dessa forma, você pode fornecer esses valores por meio da API ao invés de codificar de modo permanente um login e senha na template.
    Variáveis usadas nas etapas 1 e 2
  • . Aqui você pode editar e alterar a ordem das etapas do cenário. No nosso exemplo, fazemos o seguinte:
    1. Preencher automaticamente o campo de texto com o seletor CSS "#login". O valor para o campo de texto é definido pela variável "login".
    2. Preencher automaticamente o campo de texto com o seletor CSS "#password". O valor para o campo de texto é definido pela variável "password".
    3. Aguardar a exibição do texto de controle na página. Está definido permanentemente com o valor "Teste executado com login".

Você já pode salvar a template, ela vai aparecer em seu Centro de Desenvolvedor. Observe que ela possui o status "Sandbox", destacando estar visível apenas para você e não através da API. Aqui, poderá testar sua nova template como se você fosse o seu próprio worker.

Testando templates

A partir daqui, você precisará usar o navegador Chrome, e recomendamos que crie um novo perfil de usuário nesse navegador, já que precisaremos instalar nossa extensão, que possui acesso aos cookies de perfil.
Exemplo de interface dos workers
Em seguida, no card da sua template, pressione o botão "Teste".
Siga as instruções e baixe o plugin para a sua plataforma. Depois, recarregue a página para atualizar, preencha as variáveis "login" e "senha" com alguns valores aleatórios e envie no botão "Launch Test". Abrirá uma nova página com a seguinte descrição:

Próximo da barra de endereço existe uma barra azul que a extensão adiciona no topo da página de interesse. É assim que os workers sabem sobre suas atribuições e controlam a execução da tarefa.

Além disso, observe que os campos de login e senha estão ocultos ao preenchê-los com as variáveis. Isso é intencional. Embora os workers tenham total acesso dos dados da tarefa através da interface de desenvolvedor, 99.99% deles não se preocupam em examinar o que está acontecendo por trás.
Ao resolver o Recaptcha, pressione o botão "Entrar". A última etapa da template, "WAIT_CONTROL_TEXT_PRESENT", será passada. A extensão busca pela frase de controle "Teste executado com login", que está definida permanentemente em sua template. A aba se fecha automaticamente e o snapshot da sessão é exibido no campo dos resultados.
Exemplo de resultados

Os mesmos dados do snapshot podem ser recebidos da API. Mas, para disponibilizar a sua template na API, primeiro precisamos publicá-la.

Publicando templates

Você tem 2 opções ao publicar uma template: torná-la privativa ou pública.
  • Templates privativas estão disponíveis apenas com a sua chave de API. Outros clientes não poderão usá-las. Custo para revisão e publicação: $1.
  • Templates públicas estão disponíveis para qualquer pessoa. Você receberá 5% sobre o consumo de cada cliente com essa template. Você precisará deixar algumas informações de contato para que nossos clientes consigam procurar ajudar se algo der errado com sua template. Custo para revisão e publicação: $1.
Nós fazemos a revisão de todas as templates com muito cuidado. Você precisa seguir algumas condições básicas para ter sucesso ao trocar para o modo de produção:
  • Não praticar atividade ilegal de qualquer tipo.
  • A template não pode duplicar uma já existente.
  • Não envie templates de teste ou do tipo 'mock-up'.
  • Forneça um endereço web e valores de exemplo para a revisão. Nós executaremos um teste, e todas as etapas deverão ser realizadas com sucesso.

Requisições de API

Uma requisição de criação de tarefa na API para a template AntiGate acima vai ficar assim:

curl -i -H "Accept: application/json" \
     -H "Content-Type: application/json" \
     -X POST -d '{
    "clientKey":"YOUR_API_KEY",
    "task":
        {
            "type":"AntiGateTask",
            "websiteURL":"https://anti-captcha.com/demo/?page=recaptcha_v2_textarea",
            "templateName":"Demo sign-in at anti-captcha.com #123456",
            "variables": {
                "login":"some value",
                "password":"some value"
            }
        }
}' https://api.anti-captcha.com/createTask

Ou seja, você passa os parâmetros "templateName" e "variables" para preencher a template.

Usando os resultados de uma tarefa

Tarefas AntiGate concluídas com sucesso retornam uma solução que inclui "cookies", "localStorage", "fingerprint" e "url". O que o seu software precisa de fazer é navegar para "url" utilizando "cookies" neste pedido e, pelo menos, utilizar o valor "fingerprint.self.navigator.userAgent" para o User-Agent do browser. Os sítios Web mais complexos armazenam dados importantes no localStorage, que é uma espécie de versão moderna dos cookies. Neste caso, terá de injetar estes dados na página antes de executar quaisquer Javascripts. Isto pode ser feito num ambiente de desenvolvimento como o Puppeteer. Este tópico provavelmente merece outro artigo.

Criando suas próprias templates

Basta seguir as etapas acima sem carregar a template do exemplo. Preencha cuidadosamente todos os detalhes e adicione as etapas. Observe que todas as etapas são executadas sequencialmente. A extensão não vai permitir a execução da próxima etapa até que a atual seja concluída. A qualquer momento, você pode salvar sua template e testá-la com a extensão de navegador do worker.

Preço

No momento, o valor é de $2 por 1000 tarefas. Além disso, cada segundo da execução da tarefa custa 1/60 do valor da tarefa. Por exemplo, o custo da tarefa é de $0.002, e o worker passou 20 segundos resolvendo a mesma.
O custo final será de $0.00266 = 0.002 + (0.002 / 60 * 20) .