Tipos de tarefas suportados
Métodos de API
Artigos
Tutoriais
GitHub
Menu da documentação

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.
Possuindo esses três, você cria uma tarefa com nossa API. Um worker navega no seu website com nossa extensão especial para navegadores e executa todas as etapas do cenário manualmente ou automaticamente. E, ao final do script, nós coletamos todas as informações de sessão do navegador, como os cookies, valores de localStorage, impressões digitais do navegador e as transmitimos de volta ao seu app. Depois, você pode usar esses dados para restaurar a sessão de nosso worker e continuar as operações como se fosse um usuário humano. Legal, não é mesmo? :)

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 da template. Uma vez salvo, ele não pode ser modificado. Ao ser publicada, sua template ficará disponível na API com esse nome.
  • Descrição para clientes. As templates públicas estão disponíveis em nosso catálogo de templates.
  • Descrição para workers. Esse é o texto que nossos workers visualizam no topo da página.
    Exemplo de interface dos workers
  • Variáveis. Essa é a lista de nomes de variáveis que você pode adicionar para usar nas etapas ao invés de valores permanentes. Nesse exemplo, temos 2 variáveis, "login" e "password". Essas 2 são usadas nas etapas 1 e 2 para preencher o formulário de registro de demonstração. Dessa forma, você pode oferecer esses valores via API ao invés de inseri-los manualmente na template.
    Variáveis usadas nas etapas 1 e 2
  • Etapas do worker. Aqui você pode editar e alterar a ordem das etapas-cenário. Em nosso exemplo, inserimos 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.

Em seguida, no card da sua template, pressione o botão "Teste".

Siga as instruções e baixe a extensão para sua plataforma. Depois, atualize a página para visualizar o efeito, preencha as variáveis "login" e "senha" com alguns valores aleatórios, e pressione o botão "Executar Teste". Uma nova página deverá ser aberta e terá essa aparência:

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
          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 fazer é navegar para a "url" usando "cookies" nessa solicitação, além de usar, pelo menos, o valor "fingerprint.self.navigator.userAgent" para o Agente de Usuário (User-Agent) do navegador. Websites mais complexos armazenam dados importantes no localStorage, que é um tipo de versão moderna dos cookies. Nesse caso, você precisará injetar esses dados na página antes de executar qualquer Javascript. Isso pode ser feito em um ambiente de desenvolvimento, como o Puppeteer. Esse tópico, provavelmente, merece um artigo separado.

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) .

Para concluir

Até o momento de produção deste artigo, Dezembro de 2021, essa função ainda está em modo "Beta". Fique à vontade para postar comentários e sugestões em relação às tarefas AntiGate através dos tickets de suporte.