//
Python ReCaptcha v.3
reCaptcha

Como resolver o ReCaptcha v3 em Python usando Selenium & CapMonster Cloud

  • Para resolver esse tipo de captcha, crie um arquivo ".env" com os seguintes valores:

CAPMONSTER_API_KEY=YOUR_API_KEY
WEBSITE_KEY=6Le0xVgUAAAAAIt20XEB4rVhYOODgTl00d8juDob
WEBSITE_URL=https://lessons.zennolab.com/captchas/recaptcha/v3.php?level=beta

 

  • Instale todas as dependências necessárias via pip install (consulte Python ReCaptcha v.2), importe-os em seu projeto e envie a tarefa de captcha para o servidor do CapMonster Cloud:

import asyncio
import os
from dotenv import load_dotenv
from selenium import webdriver
from capmonstercloudclient import CapMonsterClient, ClientOptions
from capmonstercloudclient.requests import RecaptchaV3ProxylessRequest
from selenium.webdriver.common.by import By

load_dotenv()

CAPMONSTER_API_KEY = os.getenv('CAPMONSTER_API_KEY')
WEBSITE_KEY = os.getenv('WEBSITE_KEY')
WEBSITE_URL = os.getenv('WEBSITE_URL')

async def solve_recaptcha():
    # Inicialização do cliente CapMonster
    client_options = ClientOptions(api_key=CAPMONSTER_API_KEY)
    cap_monster_client = CapMonsterClient(options=client_options)

 Inicializando o Selenium WebDriver
    options = webdriver.ChromeOptions()
    options.headless = False
    browser = webdriver.Chrome(options=options)
 Imprimir('Navegador inicializado!')

    try:
        # Ir para a página especificada
       browser.get(WEBSITE_URL)
        print('O navegador mudou para a página com captcha!')

        # Criar uma solicitação para resolver um tipo reCAPTCHA V3 Proxyless
        recaptcha_request = RecaptchaV3ProxylessRequest(
            websiteUrl=WEBSITE_URL,
            websiteKey=WEBSITE_KEY,
             action='verify',
             min_score=0.7,
        )

 Solução do reCAPTCHA usando o CapMonster
       task_result = await cap_monster_client.solve_captcha(recaptcha_request)
        print('reCAPTCHA V3 solved:', task_result)

 Instalação do agente do usuário (opcional)
       user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/120.0.0.0 Safari/537.36'
       browser.execute_cdp_cmd('Network.setUserAgentOverride', {"userAgent": user_agent})

 Inserção do resultado na página
       script = f'document.querySelector(\'#g-recaptcha-response-100000\').style.display = "block";'
       script += f'document.querySelector(\'#g-recaptcha-response-100000\').style.visibility = "visible";'
       script += f'document.querySelector(\'#g-recaptcha-response-100000\').value = "{task_result}";'
        browser.execute_script(script)
 Imprimir('O resultado foi inserido na página!')

        # Clique no botão para verificar
 submit_button = browser.find_element(By.ID, 'v3_submit')
       submit_button.click()
 Imprimir(''O botão "Verificar" foi pressionado!')

         # Pausa de 10 segundos
        aguarde asyncio.sleep(10)

     finalmente:
         # Fechando o navegador
        browser.quit()

# Executar uma função assíncrona para resolver o reCAPTCHA
asyncio.run(solve_recaptcha())

 

 

Explicação do código: 

 

Carregando variáveis de ambiente: load_dotenv(). Carregamento de variáveis de ambiente: load_dotenv(): Essa função carrega os valores das variáveis de ambiente do arquivo .env e os torna disponíveis para o programa.

 

Inicializando variáveis do ambiente: CAPMONSTER_API_KEY = os.getenv('CAPMONSTER_API_KEY'). Aqui, obtemos o valor da variável CAPMONSTER_API_KEY a partir das variáveis de ambiente.

 

WEBSITE_KEY = os.getenv('WEBSITE_KEY'): de forma semelhante, obtemos o valor da variável WEBSITE_KEY.

WEBSITE_URL = os.getenv('WEBSITE_URL'): obtemos o valor da variável WEBSITE_URL.

 

async def solve_recaptcha():declarando a função assíncrona solve_recaptcha.

 

Inicializando o cliente CapMonster e o Selenium WebDriver: client_options = ClientOptions(api_key=CAPMONSTER_API_KEY). Criando um objeto com opções para inicializar o cliente CapMonster.

 

cap_monster_client = CapMonsterClient(options=client_options): inicialização do cliente CapMonster usando opções.

 

options = webdriver.ChromeOptions(): criando um objeto de opções para configurar o driver da Web do Chrome.

 

options.headless = False: configuração do modo de visibilidade do navegador (False - visível, True - invisível).

 

browser = webdriver.Chrome(options=options): inicializando o driver da Web do Chrome usando opções.

 

Trabalhando com uma página da Web: browser.get(WEBSITE_URL). Ir para a página da Web especificada.

 

recaptcha_request = RecaptchaV3ProxylessRequest(...): criando um objeto de solicitação para a solução reCAPTCHA V3 Proxyless.

 

task_result = await cap_monster_client.solve_captcha(recaptcha_request): resolução de reCAPTCHA usando o CapMonster.

 

user_agent = '...': Configuração do agente do usuário (uma string que identifica o navegador e a plataforma).

 

browser.execute_cdp_cmd('Network.setUserAgentOverride', {"userAgent": user_agent}): Instalação de um agente de usuário usando o protocolo Chrome DevTools.

 

script = '...': Criação de uma string JavaScript que insere a solução na página.

 

browser.execute_script(script): execução de código JavaScript no contexto da página atual do navegador.

 

submit_button = browser.find_element(By.ID, 'v3_submit'): busca de um elemento HTML por seu ID na página.

 

submit_button.click(): simulação de um clique em um botão encontrado.

 

Conclusão do trabalho: await asyncio.sleep(10). Pausa assíncrona de 10 segundos.

browser.quit(): fecha o driver da Web e as janelas do navegador.

 

Executando uma função assíncrona: asyncio.run(solve_recaptcha()). Execução da função assíncrona solve_recaptcha em um ambiente assíncrono.

 

 

Execução do script e execução bem-sucedida: 

none provided

Note: Gostaríamos de lembrá-lo de que o produto é usado para automatizar testes em seus próprios sites e em sites aos quais você tem acesso legal.