Menu

Como passar por qualquer captcha com as tarefas AntiGate

Está disponível uma nova versão de vídeo do tutorial AntiGate tasks aqui.

Após anos de pesquisa e desenvolvimento, introduzimos 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-cenários 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.
Com estes três elementos, cria-se uma tarefa com a nossa API. Um trabalhador navega para o seu sítio Web com o nosso plugin especial para o browser e executa todos os passos do cenário manual ou automaticamente. E, no final do script, recolhemos todas as informações da sessão do browser, como cookies, valores de localStorage, impressão digital do browser, e transmitimo-las de volta à sua aplicação. Tudo o que resta é utilizar estes dados para restaurar a nossa sessão de trabalhador e continuar as operações como se fosse um utilizador humano. Não é fantástico? :)

O que são as templates AntiGate?

Uma template AntiGate define um cenário exato pelo qual 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 até o Centro de Desenvolvedores e crie uma template para teste. Não se preocupe, você não vai quebrar nada!
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 do modelo. Uma vez guardado, não pode ser modificado. Depois de o publicar, o seu modelo fica disponível na API com este nome.
  • Descrição para clientes. As templates públicas estão disponíveis em nosso catálogo de templates.
  • Descrição para os trabalhadores. Este é o texto que os nossos trabalhadores vêem no topo da página.
    Exemplo de interface dos workers
  • Variáveis. Esta é uma lista de nomes de variáveis que pode adicionar para utilizar nos passos em vez de valores permanentes. Neste exemplo, temos 2 variáveis, "login" e "password". Estas duas são utilizadas nas etapas 1 e 2 para preencher o formulário de registo de demonstração. Desta forma, pode fornecer estes valores através da API em vez de codificar um início de sessão e uma palavra-passe permanentes no modelo.
    Variáveis usadas nas etapas 1 e 2
  • Passos do trabalhador. Aqui 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 guardar a template, e 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 descarregue o plugin para a sua plataforma. Depois, recarregue a página para que tenha efeito, preencha as variáveis "login" e "password" com alguns valores aleatórios e carregue no botão "Launch Test". Deve abrir-se uma nova página com o seguinte aspeto:

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 do console 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 executadas com sucesso retornam uma solução que incluem "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) .