CAPSOLVER
Blog
Como resolver o captcha no selenium python | Guia completo 2024

Como resolver o captcha no selenium python | Guia completo 2024

Logo of CapSolver

Adélia Cruz

Neural Network Developer

04-Jul-2024

Encontrar um CAPTCHA ao realizar automação na web é algo que deixa muitas pessoas sobrecarregadas. Esses CAPTCHAs, projetados especificamente para diferenciar entre usuários humanos e scripts automatizados, são sem dúvida um grande desafio ao usar o Selenium para tarefas de crawling ou automação na web. O guia completo de 2024 fornecerá uma solução abrangente para ajudá-lo a enfrentar esses obstáculos de maneira eficiente, focando principalmente nos dois tipos mais comuns de CAPTCHA: captcha e recaptcha, além de incorporar uma solução de terceiros para CAPTCHAs, CapSolver.

Índice

  1. O que é CAPTCHA
  2. Exemplos de CAPTCHA
  3. Pré-requisitos
  4. Método 1: Solução de CAPTCHA via API do Capsolver
    • Entendendo Formulários HTML
    • Lidando com Elementos de Textarea Ocultos
    • Obtendo o Token
    • Usando o SDK Python do Capsolver para Obter o Token
    • Usando o Token no Selenium
  5. Método 2: Solução de CAPTCHA com Extensão Capsolver
    • Download e Empacotamento da Extensão Capsolver
    • Usando a Extensão Capsolver no Selenium

Código Bônus

Reivindique seu Código Bônus para as principais soluções de captcha; CapSolver: WEBS. Depois de resgatá-lo, você receberá um bônus extra de 5% após cada recarga, ilimitado.

O que é CAPTCHA

CAPTCHA exige que os usuários realizem tarefas específicas, como inserir o texto exibido em uma imagem ou clicar em imagens de um conjunto que correspondem a critérios específicos. Essas tarefas são projetadas para verificar se o usuário é humano ou um robô. Devido à natureza dinâmica dessas tarefas, elas só podem ser concluídas com sucesso por meio da cognição humana e da correta interpretação das informações, áreas onde a inteligência artificial frequentemente enfrenta dificuldades.

Algumas variantes de CAPTCHA também suportam indivíduos com deficiência visual, gerando áudio em vez de imagens.

Exemplos de CAPTCHA

O widget CAPTCHA de código aberto do Google, reCAPTCHA, é amplamente utilizado porque suporta diversos leitores de tela principais como Jcaptcha e NVDA para IE, Edge ou Chrome no Windows OS, ChromeVox para Chrome OS, e VoiceOver para Safari e Chrome no Mac OS.

Além disso, o captcha é outro tipo comum de CAPTCHA onde os usuários precisam clicar em imagens específicas, como selecionar todas as imagens que contêm um objeto específico, para completar a verificação. Usuários humanos normais frequentemente precisam gastar até um minuto completando uma verificação complexa do captcha. Ambos os tipos de CAPTCHA impedem eficazmente ataques de script automatizados e são amplamente adotados por muitos sites.

Pré-requisitos

  • Google Chrome: Instale a versão mais recente do Chrome, pois interagiremos com o Chrome através do código.
  • Python: Certifique-se de ter o Python instalado e que a versão seja 3 ou superior. Versões abaixo de 3 não são mais recomendadas.
  • Selenium: A biblioteca Python para a ferramenta de automação Selenium.
  • Capsolver Python SDK: O SDK oficial do Capsolver Python, que permite uma integração fácil com o Capsolver.
  • Capsolver Extension: A extensão oficial do Capsolver para Chrome, que pode resolver automaticamente vários desafios para você.

Método 1: Solução de CAPTCHA via API do Capsolver

Vamos usar esta página demo como exemplo para demonstrar como resolver reCAPTCHA no Python Selenium usando a API do Capsolver.

Entendendo Formulários HTML

Antes de começarmos, precisamos entender o básico dos formulários HTML. Observe esta página e abra as ferramentas do desenvolvedor. Resolva manualmente o reCAPTCHA e clique no botão Enviar. Você verá uma solicitação POST enviada, submetendo três campos: ex-a, ex-b e g-recaptcha-response, como mostrado na imagem abaixo:

Esses três campos correspondem a dois elementos de entrada e um elemento de textarea no formulário no código-fonte HTML inicial, como mostrado na imagem abaixo:

Nosso método envolve resolver o reCAPTCHA usando a API do Capsolver, obter o token, inseri-lo no elemento textarea e então clicar no botão Enviar para submeter o formulário.

Lidando com Elementos de Textarea Ocultos

Ao inserir o token no elemento textarea, observe que o elemento textarea na página da web possui um estilo CSS display: none, o que significa que o textarea não está visível. Neste caso, se você tentar inserir conteúdo diretamente no elemento textarea no Selenium, ocorrerá um erro:
selenium.common.exceptions.ElementNotInteractableException: Mensagem: elemento não é interagível, porque o elemento textarea não é interagível neste momento. Para resolver isso, precisamos definir o estilo CSS do elemento textarea como display: block. O método específico será refletido no código posteriormente.

Obtendo o Token

O uso da API do Capsolver requer que forneçamos a websiteKey, que pode ser encontrada procurando pela palavra-chave data-sitekey no código-fonte da página:

Usando o SDK Python do Capsolver para Obter o Token

Veja como obter o token usando o SDK Python do Capsolver:

python Copy
import capsolver

capsolver.api_key = "sua chave de API"
solution = capsolver.solve({
    "type": "ReCaptchaV2TaskProxyLess",
    "websiteKey": "6LfW6wATAAAAAHLqO2pb8bDBahxlMxNdo9g947u9",
    "websiteURL": "https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php",
})
token = solution["gRecaptchaResponse"]
print(token)

Usando o Token no Selenium

Agora, precisamos usar o token com o Selenium. Existem duas operações principais no Selenium:

  • Tornar o elemento textarea visível para que ele possa ser interagido e o token possa ser inserido nele.
  • Localizar o botão de envio e clicar nele para submeter o formulário.

Essas operações envolvem localizar elementos e interagir com eles. Se você não estiver familiarizado com o Selenium, pode consultar Web Scraping com Selenium e Python | Resolvendo Captcha ao Fazer Web Scraping.

Combinando com a API do Capsolver, o código completo é o seguint

e:

python Copy
import capsolver
from selenium import webdriver
from selenium.webdriver.common.by import By

# Inicializar objeto Chrome Options e acessar o site alvo
chrome_options = webdriver.ChromeOptions()
driver = webdriver.Chrome(options=chrome_options)
url = "https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php"
driver.get(url)

# Chamando a API do Capsolver para resolver o ReCaptcha
capsolver.api_key = "sua chave de API"
solution = capsolver.solve({
    "type": "ReCaptchaV2TaskProxyLess",
    "websiteKey": "6LfW6wATAAAAAHLqO2pb8bDBahxlMxNdo9g947u9",
    "websiteURL": url,
})
token = solution["gRecaptchaResponse"]
print(f"Token retornado pelo Capsolver: {token}")

# Mudar a propriedade de estilo display do textarea para block para torná-lo visível
driver.execute_script("document.getElementById('g-recaptcha-response').style.display = 'block';")
# Simular a inserção do token no textarea
textarea = driver.find_element(By.ID, "g-recaptcha-response")
textarea.send_keys(token)

# Simular o clique e submeter o formulário
submit_btn = driver.find_element(By.CSS_SELECTOR, "button[type='submit']")
submit_btn.click()
input("Pressione qualquer tecla para sair.")
driver.close()

O código acima demonstra como resolver reCAPTCHA usando a API do Capsolver no Python Selenium. Depois de resolvê-lo com sucesso, você verá a página a seguir:

Método 2: Solução de CAPTCHA com Extensão Capsolver

O Método 1 envolveu a resolução de CAPTCHA através da API do Capsolver, que inclui muitas operações complexas. Se você procura uma maneira mais simples e conveniente de resolver CAPTCHA, então a Extensão Capsolver é a melhor escolha. Ela pode ser facilmente integrada a navegadores como Chrome e Firefox. A Extensão Capsolver pode reconhecer e resolver automaticamente vários desafios de CAPTCHA em apenas alguns segundos, sem nenhuma intervenção humana, permitindo que você aproveite o serviço de resolução de CAPTCHA do Capsolver sem escrever nenhum código.

Usamos o captcha como exemplo, com a página alvo

Download e Empacotamento da Extensão Capsolver

Como estamos usando a Extensão Capsolver no Selenium, precisamos baixar o arquivo zip do GitHub oficial do Capsolver. O uso da Extensão Capsolver requer que você insira sua chave de API, conforme mostrado abaixo:

Interagir com extensões do navegador no Selenium pode ser bastante complicado, então podemos pré-preencher a chave de API no arquivo de configuração da extensão \assets\config.js e depois carregá-la diretamente no Selenium. Extraia o arquivo zip da Extensão Capsolver que baixamos e insira sua chave de API no arquivo \assets\config.js, conforme mostrado abaixo:

Em seguida, use o recurso de empacotamento de extensões embutido do Chrome para reempacotar a Extensão Capsolver. Observe que você não pode simplesmente compactar a pasta de volta em um arquivo zip; essa extensão seria inutilizável. No Chrome, visite chrome://extensions/, ative o modo de desenvolvedor, selecione a opção Pack Extension e importe toda a pasta da extensão Capsolver. Após o reempacotamento, você obterá um arquivo .crx.

Usando a Extensão Capsolver no Selenium

Use o método add_extension para carregar a Extensão Capsolver no formato .crx recém-reempacotado. O código de exemplo é o seguinte:

python Copy
from selenium import webdriver

chrome_options = webdriver.ChromeOptions()
chrome_options.add_extension(r"C:\caminho\para\CapSolver.Browser.Extension-chrome-v1.14.0.crx")
driver = webdriver.Chrome(options=chrome_options)
driver.get("https://iframe.arkoselabs.com/3117BF26-4762-4F5A-8ED9-A85E69209A46/index.html")

input("Pressione qualquer tecla para sair.")
driver.close()

Execute o código e você verá que a Extensão Capsolver resolve automaticamente o desafio captcha:

Conclusão

Seja usando a API do Capsolver ou a Extensão Capsolver, você pode resolver perfeitamente CAPTCHA no Python Selenium. Se tiver alguma dúvida, consulte a documentação do Capsolver para mais informações úteis.

Declaração de Conformidade: As informações fornecidas neste blog são apenas para fins informativos. A CapSolver está comprometida em cumprir todas as leis e regulamentos aplicáveis. O uso da rede CapSolver para atividades ilegais, fraudulentas ou abusivas é estritamente proibido e será investigado. Nossas soluções de resolução de captcha melhoram a experiência do usuário enquanto garantem 100% de conformidade ao ajudar a resolver dificuldades de captcha durante a coleta de dados públicos. Incentivamos o uso responsável de nossos serviços. Para mais informações, visite nossos Termos de Serviço e Política de Privacidade.

Mais