Blog

Postado em em 30 de abril de 2022

Quebrar CAPTCHA com Python – Automação para Quebra de CAPTCHA

Hoje eu vou te mostrar como quebrar CAPTCHA com Python de forma automática utilizando o serviço anti-captcha para quebrá-los!

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

Como Quebrar CAPTCHA com Python

Você já deve ter preenchido diversos CAPTCHAS pensando que não era um robô, mas e se você fosse? Como passar de CAPTCHA com Python? Já pensou nisso?

Hoje eu vou te mostrar uma ferramenta anti-captcha para que você possa passar de qualquer CAPTCHA com Python.

Passando de CAPTCHA com Python

Antes de iniciar é importante falar que existem várias ferramentas online que servem para passar de CAPTCHAs.

Na verdade, é um serviço de quebrar CAPTCHA. Só que esses serviços são pagos, então o que vamos mostrar para vocês é o anti-captcha que é um serviço para quebra de CAPTCHA pago.

Esse serviço geralmente é do tipo pay-per-captcha, ou seja, você vai pagar por cada CAPTCHA que for quebrado, mas são alguns centavos por CAPTCHA então não é algo caro.

IMPORTANTE: Lembrando que o intuito da aula é apenas educativo, então se você for quebrar CAPTCHAS para fazer coisas indevidas fica por sua conta. O nosso objetivo é apenas ensinar como utilizar um serviço de CAPTCHA para poder passar por eles.

Quebrar CAPTCHA com Python
CAPTCHA de teste

Para poder testar esse serviço nós vamos utilizar essa ferramenta do Google que é para teste de CAPTCHA, então você pode acessar o site abaixo para poder fazer seus testes.

http://google.com/recaptcha/api2/demo

O que acontece quando você preenche um CATPCHA? Você tem uma caixa que fica oculta que quando preenche corretamente o CAPTCHA ela é preenchida com um código bem grande que é a “solução” daquele CAPTCHA.

Quebrar CAPTCHA com Python
Visualizando a caixa de texto do CATPCHA para ver a resolução

Você pode habilitar isso dentro da opção Inspecionar quando clica com o botão direito do mouse na página.

Lá dentro você vai selecionar onde está o CAPTCHA e vai desmarcar a caixa display, assim vai conseguir visualizar essa caixa de texto onde é inserida a “solução”.

Na página de documentação desse serviço nós vamos ter os tipos de Captcha que podem ser resolvidos, onde o nosso é o RecaptchaV2TaskProxyless.

E ao clicar no link do CAPTCHA desejado você vai ver que temos as informações de solicitação e de resposta desse CAPTCHA.

Mas, para que você não tenha que copiar o código do site nós já deixamos o código todo pronto para download!

from webdriver_manager.chrome import ChromeDriverManager
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from anticaptchaofficial.recaptchav2proxyless import *
import time
from chave import chave_api

navegador = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
link = "https://google.com/recaptcha/api2/demo"
navegador.get(link)

chave_captcha = navegador.find_element(By.ID, 'recaptcha-demo').get_attribute('data-sitekey')

solver = recaptchaV2Proxyless()
solver.set_verbose(1)
solver.set_key(chave_api)
solver.set_website_url(link)
solver.set_website_key(chave_captcha)

resposta = solver.solve_and_return_solution()

if resposta != 0:
    print(resposta)
    # preencher o campo do token do captcha
    # g-recaptcha-response
    navegador.execute_script(f"document.getElementById('g-recaptcha-response').innerHTML = '{resposta}'")
    navegador.find_element(By.ID, 'recaptcha-demo-submit').click()
else:
    print(solver.err_string)

time.sleep(100)

Esse é o código que nós vamos utilizar para quebrar o CAPTCHA utilizando o anti-captcha.

Lembrando que para que esse código funcione vamos instalar a biblioteca do selenium e a biblioteca do anticaptchaofficial.

Na primeira parte do código nós vamos utilizar o selenium para poder navegar até o site onde vamos quebrar o CAPTCHA desejado.

Em seguida nós temos que buscar a chave_captcha que vai ser dentro do próprio site, lá com o botão direito e Inspecionar.

Quebrar CAPTCHA com Python
Inspecionando a caixa onde temos o CAPTCHA

Aqui vamos colocar o mouse até que toda a área do CAPTCHA fique selecionada. Logo acima do código que foi identificado quando colocou o mouse no CAPTCHA, você vai encontrar o data-sitekey.

Vai ficar logo acima do <iframe. Essa é a chave desse CAPTCHA específico.

Encontrando o data-sitekey do CAPTCHA
Encontrando o data-sitekey do CAPTCHA

Então com o próprio selenium ainda, nós vamos poder encontrar esse elemento data-sitekey para trazer essa informação.

Feito isso nós vamos mandar essas informações para o solver, que é o nosso resolvedor do anti-captcha.

OBS: Aqui você deve ter notado que estamos utilizando uma variável chamada chave_api, essa chave é a chave que você recebeu no seu e-mail depois de fazer a conta no site anti-captcha.

Para finalizar nós vamos pegar a resposta desse serviço e vamos aplicá-la ao CAPTCHA, mas como fazer isso?

Da mesma maneira que fizemos para ativar aquela caixa de texto, mas agora nós vamos identificar qual é o elemento dessa caixa para fazer com que o selenium faça esse preenchimento automático.

Obtendo o id de resposta do CAPTCHA
Obtendo o id de resposta do CAPTCHA

Esse é o elemento onde vamos preencher a informação, que é onde vamos ter a resposta do CAPTCHA.

A única diferença aqui é que o selenium não consegue escrever em um elemento que ele não está vendo, então por isso vamos utilizar esse código.

Para que ele vá até a janela Console e escreva o código em java script (pois não precisa do elemento visível) para escrever a nossa resposta do CAPTCHA no campo g-recaptcha-response.

Pronto! Agora você já tem o código pronto para quebrar os próximos CAPTCHAS que precisar com a ajuda do serviço anti-captcha!

Conclusão

Nessa aula eu te mostrei como quebrar qualquer CAPTCHA com Python utilizando um serviço pago para isso.

Claro que você pode automatizar todo o processo, pois pode enviar as informações de forma automática para esse serviço e ele vai te devolver a resposta desse CAPTCHA.

Assim você vai poder resolver qualquer CAPTCHA que precise de forma automática sempre que precisar!

Hashtag Treinamentos

Para acessar outras publicações de Python, clique aqui!


Quer aprender mais sobre Python com um minicurso básico gratuito?

Quer sair do zero no Python e virar uma referência na sua empresa? Inscreva-se agora mesmo no Python Impressionador