Resolvendo o reCAPTCHA Enterprise usando o CapMonster Cloud: um guia completo
Os sistemas de segurança modernos para sites estão se tornando cada vez mais difíceis de serem contornados com vários scripts. Algoritmos inteligentes, aprendizado de máquina e tecnologias de análise comportamental criam uma forte barreira para bloquear possíveis ameaças. Os captchas padrão já são um sério obstáculo, e soluções ainda mais avançadas foram desenvolvidas para grandes empresas e sites com altos requisitos de segurança, incluindo reCAPTCHA Enterprise.
Neste artigo, daremos uma olhada detalhada no que é o reCAPTCHA Enterprise, como ele difere das versões padrão e como ajuda a proteger os recursos da Web contra vários ataques. Você aprenderá a reconhecer esse tipo de captcha no site, estudará as principais características e parâmetros e também se familiarizará com exemplos de soluções de captcha para verificação bem-sucedida e interação adicional com recursos da Web.
Agora, o reCAPTCHA Enterprise é uma versão do conhecido sistema de segurança do Google, projetado para a segurança de sites e aplicativos com altos requisitos de segurança. Ele oferece recursos adicionais e mecanismos de segurança aprimorados em comparação com as versões regulares do reCAPTCHA v2 e v3, o que o torna mais adequado para grandes empresas, instituições financeiras e outras organizações que lidam com dados confidenciais.
reCAPTCHA Enterprise aplica mecanismos de segurança mais sofisticados do que as versões padrão. Embora os métodos de verificação sejam os mesmos - a v2 exige que os usuários executem uma tarefa específica, enquanto a v3 realiza uma análise comportamental - a versão Enterprise oferece várias vantagens significativas:
- personalização flexível e análise detalhada. No reCAPTCHA Enterprise, uma personalização mais profunda e análises avançadas estão disponíveis para os administradores do site. Esse é o principal benefício importante que permite o ajuste fino dos limites para avaliação de risco, levando em conta fatores adicionais - comportamento do usuário, taxa de ação e local.
- Minimizando falsos positivos. Graças ao uso de algoritmos complexos e análise de risco, o reCAPTCHA Enterprise permite que você reduza o número de falsos positivos. Isso é especialmente importante para grandes empresas e serviços com um grande número de usuários, onde os erros podem levar ao bloqueio de clientes reais. Ao contrário do reCAPTCHA v2, em que o erro pode ser óbvio (por exemplo, imagens selecionadas incorretamente), no Enterprise a análise é mais abrangente e inclui fatores adicionais, como comportamento e reputação do usuário.
- Relatórios detalhados. Fornece informações detalhadas sobre interações, incluindo motivos para bloqueio ou sinalização com base no perfil de risco.
Semelhante às versões padrão (não Enterprise), essas versões diferem na forma como os usuários são validados:
reCAPTCHA v2:
O usuário deve resolver um desafio visual ou baseado em texto (por exemplo, um desafio de software).g., selecionar imagens com semáforos) ou marcar a caixa "Não sou um robô". A verificação pode ser explícita (baseada em desafio) e requer a participação do usuário. Adequado para formulários, entradas e outros pontos de validação individuais.
reCAPTCHA v3:
Verificação invisível executada em segundo plano. Ela avalia o comportamento do usuário na página e atribui uma pontuação de risco de 0,0 a 1,0 (em que 1,0 é um usuário real e 0,0 é um provável bot). O desenvolvedor decide quais ações tomar dependendo da pontuação (por exemplo, bloquear o acesso, exigir verificação adicional). Ideal para monitorar a atividade no site, proteger páginas de pagamento e analisar o tráfego.
Para determinar se o reCAPTCHA Enterprise está sendo usado em uma página da Web, abra Browser Developer Toolse examine o código-fonte da página:
- Para encontrar consultas específicas, examine os URLs e os parâmetros de consulta. Se as consultas incluírem um domínio como este: /enterprise, isso indica o uso de reCAPTCHA Enterprise.
- Nas versões padrão, haverá uma URL: ...recaptcha/api2/
Esse tipo de captcha protege efetivamente os sites contra hacks, ataques e outras atividades mal-intencionadas. No entanto, a automação da interação com o reCAPTCHA Enterprise pode ser necessária para fins nobres. A solução automática desses captchas é uma tarefa complexa que exige profundo conhecimento técnico; é mais fácil recorrer a serviços especiais - por exemplo, CapMonster Cloud. Esse serviço, usando os recursos da inteligência artificial, resolve captchas de forma rápida e eficiente, reduzindo significativamente o tempo e os custos financeiros. Ele se tornará seu assistente indispensável se sua atividade estiver conectada com as seguintes instruções:
- Teste e desenvolvimento
- Automação de testes: Os desenvolvedores podem criar testes automatizados para aplicativos da Web que usam o reCAPTCHA. Para que os testes sejam executados corretamente, é necessário emular sua solução.
- Garantia de qualidade (QA): Os engenheiros de qualidade podem verificar o desempenho do sistema, inclusive o comportamento do site quando um captcha é aprovado ou reprovado.
- Ethical Web Scraping
- Monitoramento de preços e da concorrência: As empresas de monitoramento de preços podem usar a automação para coletar dados sobre produtos e serviços de sites que tenham captcha instalado.
- Análise de dados para pesquisa: Cientistas e analistas podem coletar dados para pesquisas econômicas, sociais ou científicas.
- Ferramentas de segurança cibernética
- Pentestas: Os especialistas em segurança da informação testam as vulnerabilidades dos aplicativos da Web, inclusive a resistência a bots e ataques. Isso exige testar a evasão de mecanismos de defesa.
- Análise de vulnerabilidade: Testar a eficácia do captcha na proteção contra ataques automatizados.
A solução automatizada de captcha também pode ajudar os usuários que têm dificuldade para passar no reCAPTCHA devido à mobilidade limitada ou a deficiências visuais. Nesses casos, técnicas especializadas podem oferecer uma maneira mais conveniente e acessível de interagir com o site.
O serviço resolve o reCAPTCHA Enterprise com uma extensão de navegador (para Chrome e Firefox) e por meio da API. Se você precisar integrar a solução de captcha em seu código usando a API, siga estas etapas:
- Crie uma conta emCapMonster Cloud, recarregue seu saldo, obtenha uma chave de API de sua conta pessoal - você precisará dela para a integração.
- Encontre as informações de que você precisa em documentaçãoque será necessário para resolver com êxito o captcha por meio do serviço:
CapMonster Cloud suporta a solução reCAPTCHA Enterprise versão 2. Dois tipos de tarefas são usados - RecaptchaV2EnterpriseTaskProxyless(sem proxy) e RecaptchaV2EnterpriseTask (com proxy). As diferenças entre eles são:
RecaptchaV2EnterpriseTaskProxyless:
Esse tipo de tarefa não exige a especificação de um proxy. CapMonster Cloud usa seus próprios servidores proxy para resolver o captcha. Adequado para tarefas simples em que não é necessário usar um endereço IP de uma região específica ou garantir que o IP do usuário e o servidor de solução de captcha sejam iguais.
RecaptchaV2EnterpriseTask:
Requer a especificação de um servidor proxy para resolver o captcha. Isso permite que você emule solicitações de um endereço IP específico. Necessário se o site verificar a correspondência de endereço IP ao resolver captchas ou exigir acesso de um país específico. Aumenta a probabilidade de uma solução bem-sucedida em sites com restrições geográficas ou de IP.
Escolha o tipo de tarefa que melhor se adapta às suas necessidades e explore opções adicionais dependendo da sua escolha:
type<string>mandatory
RecaptchaV2EnterpriseTaskProxyless
websiteURL<string>obrigatório
O endereço da página em que o captcha é resolvido.
websiteKey<string>obrigatório
A chave de identificação do reCAPTCHA na página de destino.
<div class="g-recaptcha" data-sitekey="THIS_ONE"></div>
ou <iframe title="reCAPTCHA" src="...;k=6LdIFr0ZAAAAAAAAAO3vz0O0O0OQrtAefzdJcWQM2TMYQH&... , em que 6LdIFr0ZAAAAAO3vz0O0O0OQrtAefzdJcWQM2TMYQH é o siteKey
enterprisePayload<string>opcional
Algumas implementações do widget reCAPTCHA Enterprise podem conter um campo s adicional na estrutura que é passada para o método grecaptcha.enterprise.render junto com o sitekey. Por exemplo: 2JvvUXHNTnZl1Jb6WEvbDyB...ugQA of <pre lang="js" ><code>grecaptcha.enterprise.render("some-div-id", { sitekey: "6Lc_aCMTAAAAABx7u2N2N0D1XnVbI_v6ZdbM6rYf16" theme: "dark" s: "2JvUXHNTnZl1Jb6WEvbDyB...ugQA" });</code></pre>
apiDomain<string>opcional
O endereço do domínio a partir do qual carregar o reCAPTCHA Enterprise. Por exemplo:
- www.google.com
- www.recaptcha.net
Não use um parâmetro a menos que você saiba para que ele serve.
userAgent<string>opcional
O agente de usuário do navegador usado na emulação. Deve ser usada uma assinatura de navegador moderna; caso contrário, o Google retornará um erro solicitando que você atualize o navegador.
cookies<string>opcional
Cookies adicionais que devem ser usados ao interagir com a página de destino.
Formato: cookiename1=cookievalue1; cookiename2=cookievalue2
type<string>optional
RecaptchaV2EnterpriseTask
websiteURL<string>obrigatório
O endereço da página em que o captcha é resolvido.
websiteKey<string>obrigatório
A chave identificadora do reCAPTCHA na página de destino.
<div class="g-recaptcha" data-sitekey="THIS_ONE"></div>
ou <iframe title="reCAPTCHA" src="...;k=6LdIFr0ZAAAAAAAAAO3vz0O0O0OQrtAefzdJcWQM2TMYQH&... , em que 6LdIFr0ZAAAAAO3vz0O0O0OQrtAefzdJcWQM2TMYQH é o siteKey
enterprisePayload<string>opcional
Algumas implementações do widget reCAPTCHA Enterprise podem conter um campo s adicional na estrutura que é passada para o método grecaptcha.enterprise.render junto com o sitekey.
Por exemplo: 2JvvUXHNTnZl1Jb6WEvbDyB...ugQA of <pre lang="js" ><code>grecaptcha.enterprise.render("some-div-id", { sitekey: "6Lc_aCMTAAAAABx7u2N2N0D1XnVbI_v6ZdbM6rYf16" theme: "dark" s: "2JvUXHNTnZl1Jb6WEvbDyB...ugQA" });</code></pre>
apiDomain<string>opcional
O endereço do domínio a partir do qual será carregado o reCAPTCHA Enterprise. Por exemplo:
- www.google.com
- www.recaptcha.net
Não use um parâmetro a menos que você saiba para que ele serve.
userAgent<string>opcional
O agente de usuário do navegador usado na emulação. Deve ser usada uma assinatura de navegador moderna; caso contrário, o Google retornará um erro solicitando que você atualize o navegador.
cookies<string>opcional
Cookies adicionais que devem ser usados ao interagir com a página de destino.
Formato: cookiename1=cookievalue1; cookiename2=cookievalue2
proxyType<string>obrigatório
http - proxy http/https normal;
https - tente essa opção somente se "http" não funcionar (necessário para alguns proxies personalizados);
socks4 - proxy socks4;
socks5 - proxy socks5.
proxyAddress<string>obrigatório
Endereço IP do proxy IPv4/IPv6. Não permitido:
uso de nomes de host;
uso de proxies transparentes (onde o IP do cliente pode ser visto);
uso de proxies em máquinas locais.
proxyPort<integer>obrigatório
Porta do proxy.
proxyLogin<string>opcional
Login do servidor proxy.
proxyPassword<string>opcional
A senha do servidor proxy.
Use o método POST:
https://api.capmonster.cloud/createTask
Como deve ser a consulta:
{{{
"clientKey": "API_KEY",
"task": {
{ "type": "RecaptchaV2EnterpriseTaskProxyless",
"websiteURL": "https://mydomain.com/page-with-recaptcha-enterprise",
"websiteKey": "6Lcg7CMUAAAAAAAANphynKgn9YAgA4tQ2KI_iqRyTwd",
"enterprisePayload": {
"s": "SOME_ADDITIONAL_TOKEN".
}
}
}
Resposta bem-sucedida:
{{{
"errorId":0,
"taskId":407533072
}
Use method getTaskResult para obter a solução. Dependendo da carga do sistema, você obterá uma resposta após um período de tempo que varia de 10s a 80s. Use o método POST:
https://api.capmonster.cloud/getTaskResult
Request:
{
"clientKey": "API_KEY",
"taskId": 407533072
}
Resposta bem-sucedida:
{{{
"errorId":0,
"status": "ready",
"solution": {
"gRecaptchaResponse": "3AHJ_VuvYIBNBW5yyyv0zRYJ75VkOKvhKj9_xGBJKnQimF72rfoq3Iy-DyGHMwLAo6a3".
}
}
gRecaptchaResponse - Hash a ser substituído no formulário com o reCAPTCHA Enterprise em <textarea id="g-recaptcha-response" ..></textarea>. Tem um comprimento entre 500 e 2190 bytes.
Para sua conveniência, o serviço tem seu próprio libraries para resolver automaticamente muitos tipos de captchas. Vamos usar C#, Python e JavaScript como exemplos:
C#
https://github.com/ZennoLab/capmonstercloud-client-dotnet
RecaptchaV2EnterpriseProxyless
usando Zennolab.CapMonsterCloud.Requests;
using Zennolab.CapMonsterCloud;
classe Programa
{
static async Task Main(string[] args)
{nbsp; {
var clientOptions = new ClientOptions
{
ClientKey = "your_api_key" // Substitua por sua chave de API do CapMonster Cloud
};
var cmCloudClient = CapMonsterCloudClientFactory.Create(clientOptions);
var recaptchaV2EnterpriseRequest = new RecaptchaV2EnterpriseProxylessRequest
{
WebsiteUrl = "https://example.com", // Endereço do site com captcha
WebsiteKey = "6Lf56sWnAAAAAAAIKLuWNYgRsFUfmI-5Lex3xT5N-s", // Substitua pela chave do site.
EnterprisePayload = "{\"s\":\"SOME_ADDITIONAL_TOKEN\"}" // Token adicional (se necessário)
};
var recaptchaV2EnterpriseResult = await cmCloudClient.SolveAsync(recaptchaV2EnterpriseRequest);
Console.WriteLine("Captcha Solution: " + recaptchaV2EnterpriseResult.Solution.Value); // Resultado da solução de captcha
}
}
ReCaptchaV2Enterprise
usando Zennolab.CapMonsterCloud.Requests;
using Zennolab.CapMonsterCloud;
classe Programa
{
static async Task Main(string[] args)
{nbsp; {
var clientOptions = new ClientOptions
{
ClientKey = "your_api_key" // Substitua por sua chave de API do CapMonster Cloud
};
var cmCloudClient = CapMonsterCloudClientFactory.Create(clientOptions);
var recaptchaV2EnterpriseRequest = new RecaptchaV2EnterpriseRequest
{
WebsiteUrl = "https://example.com", // Endereço do site com captcha
WebsiteKey = "6Lf56sWnAAAAAIKLuWNYgRsFUfmI-5Lex3xT5N-s", // Substitua pela chave do site.
EnterprisePayload = "{\"s\":\"SOME_ADDITIONAL_TOKEN\"}", // Token adicional (se necessário).
ProxyType = ProxyType.Http, // Tipo de proxy
ProxyAddress = "8.8.8.8.8", // Endereço Proxy
ProxyPort = 8080, // ProxyPort
ProxyLogin = "proxyLoginHere", // Login do proxy (se necessário)
ProxyPassword = "proxyPasswordHere" // Senha do proxy (se necessário)
};
var recaptchaV2EnterpriseResult = await cmCloudClient.SolveAsync(recaptchaV2EnterpriseRequest);
Console.WriteLine("Captcha Solution: " + recaptchaV2EnterpriseResult.Solution.Value); // Resultado da solução de captcha
}
}
Python
https://github.com/ZennoLab/capmonstercloud-client-python
RecaptchaV2EnterpriseProxyless
importar asyncio
from capmonstercloudclient import CapMonsterClient, ClientOptions
from capmonstercloudclient.requests import RecaptchaV2EnterpriseProxylessRequest
client_options = ClientOptions(api_key="your_api_key") # Substitua por sua chave de API do CapMonster Cloud
cap_monster_client = CapMonsterClient(options=client_options)
recaptcha2request = RecaptchaV2EnterpriseProxylessRequest(
websiteUrl="https://example.com", # O endereço do site com o captcha.
websiteKey="6Lf56sWnAAAAAIKLuWNYgRsFUfmI-5Lex3xT5N-s", # Substitua por sua websiteKey.
enterprisePayload={ # Token adicional (se necessário)
{ "s": "SOME_ADDITIONAL_TOKEN".
}
)
async def solve_captcha():
return await cap_monster_client.solve_captcha(recaptcha2request)
responses = asyncio.run(solve_captcha())
print(responses) # Imprime a solução do captcha
ReCaptchaV2Enterprise
importar asyncio
from capmonstercloudclient import CapMonsterClient, ClientOptions
from capmonstercloudclient.requests import RecaptchaV2EnterpriseRequest
client_options = ClientOptions(api_key="your_api_key") # Substitua pela sua chave de API do CapMonster Cloud
cap_monster_client = CapMonsterClient(options=client_options)
recaptcha2request = RecaptchaV2EnterpriseRequest(
websiteUrl="https://example.com", # Endereço do site do captcha
websiteKey="6Lf56sWnAAAAAIKLuWNYgRsFUfmI-5Lex3xT5N-s", # Substitua por sua websiteKey.
enterprisePayload={ # Token adicional (se necessário)
{ "s": "SOME_ADDITIONAL_TOKEN".
},
proxy_type="http", # Tipo de proxy (http, https, socks5)
proxy_address="8.8.8.8.8", # Endereço do servidor proxy
proxy_port=8080, # Porta do servidor proxy
proxy_login="proxyLoginHere", # Login do proxy (se necessário)
proxy_password="proxyPasswordHere", # Senha do proxy (se necessário)
)
async def solve_captcha():
return await cap_monster_client.solve_captcha(recaptcha2request)
responses = asyncio.run(solve_captcha())
print(responses) # Solução de captcha de saída
JavaScript (baseado em navegador)
https://github.com/ZennoLab/capmonstercloud-client-js
RecaptchaV2EnterpriseProxyless
import { CapMonsterCloudClientFactory, ClientOptions, RecaptchaV2EnterpriseProxylessRequest } from '@zennolab_com/capmonstercloud-client';
document.addEventListener('DOMContentLoaded', async () => {
const cmcClient = CapMonsterCloudClientFactory.Create(new ClientOptions({ clientKey: '<your capmonster.cloud API key>' })); // Substitua por sua chave de API do CapMonsterCloud
const recaptchaV2EnterpriseRequest = new RecaptchaV2EnterpriseProxylessRequest({
websiteURL: 'https://mydomain.com/page-with-recaptcha-enterprise', // URL do site do Captcha
websiteKey: '6Lf56sWnAAAAAIKLuWNYgRsFUfmI-5Lex3xT5N-s', // Substitua por sua websiteKey.
enterprisePayload: {
s: 'SOME_ADDITIONAL_TOKEN',// Token adicional (se necessário)
},
});
console.log(await cmcClient.Solve(recaptchaV2EnterpriseRequest));
});
RecaptchaV2Enterprise
import { CapMonsterCloudClientFactory, ClientOptions, RecaptchaV2EnterpriseRequest } from '@zennolab_com/capmonstercloud-client';
document.addEventListener('DOMContentLoaded', async () => {
const cmcClient = CapMonsterCloudClientFactory.Create(new ClientOptions({ clientKey: '<your capmonster.cloud API key>' })); // Substitua por sua chave de API do CapMonsterCloud
const recaptchaV2EnterpriseRequest = new RecaptchaV2EnterpriseRequest({
websiteURL: 'https://mydomain.com/page-with-recaptcha-enterprise', // O endereço do site com o captcha
websiteKey: '6Lf56sWnAAAAAIKLuWNYgRsFUfmI-5Lex3xT5N-s', // Substitua por sua websiteKey.
enterprisePayload: {
s: 'SOME_ADDITIONAL_TOKEN',// Token adicional (se necessário)
},
proxyType: 'http', // Tipo de proxy (http, https, socks5)
proxyAddress: '8.8.8.8.8',// Porta do servidor proxy
proxyPort: 8080, // ProxyServerPort
proxyLogin: 'proxyLoginHere', // Login do proxy (se necessário)
proxyPassword: 'proxyPasswordHere', // Senha do proxy (se necessário)
userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/131.0.0.0.0 Safari/537.36',
});
console.log(await cmcClient.Solve(recaptchaV2EnterpriseRequest));
});
JavaScript (usando Node.js)
// https://github.com/ZennoLab/capmonstercloud-client-js
RecaptchaV2EnterpriseProxyless
const { CapMonsterCloudClientFactory, ClientOptions, RecaptchaV2EnterpriseProxylessRequest } = require('@zennolab_com/capmonstercloud-client');
função assíncrona run() {
Const cmcClient = CapMonsterCloudClientFactory.Create(new ClientOptions({ clientKey: 'your_api_key' })); // Substitua por sua chave de API do CapMonsterCloud
const recaptchaRequest = new RecaptchaV2EnterpriseProxylessRequest({
websiteURL: 'https://example.com/', // O endereço do site com o captcha
websiteKey: '6Lf56sWnAAAAAIKLuWNYgRsFUfmI-5Lex3xT5N-s', // Substitua por sua websiteKey.
enterprisePayload: {
s: 'SOME_ADDITIONAL_TOKEN', // Token adicional (se necessário)
},
});
const response = await cmcClient.Solve(recaptchaRequest);
se (!response?.solution) lançar um novo erro('Captcha não foi resolvido.');
console.log('Captcha não resolvido:', response.solution);
}
run()
.then(() => {
console.log('DONE');
process.exit(0);
})
.catch((err) => {
console.error(err);
process.exit(1);
});
RecaptchaV2Enterprise
const { CapMonsterCloudClientFactory, ClientOptions, RecaptchaV2EnterpriseRequest, ProxyType } = require('@zennolab_com/capmonstercloud-client');
função assíncrona run() {
const cmcClient = CapMonsterCloudClientFactory.Create(
new ClientOptions({ clientKey: 'your_api_key' }) // Substitua por sua chave de API do CapMonsterCloud
);
const recaptchaRequest = new RecaptchaV2EnterpriseRequest({
websiteURL: 'https://example.com/', // O endereço do site com o captcha
websiteKey: '6Lf56sWnAAAAAIKLuWNYgRsFUfmI-5Lex3xT5N-s', // Substitua por sua websiteKey.
enterprisePayload: {
s: 'SOME_ADDITIONAL_TOKEN', // Token adicional (se necessário)
},
proxyType: ProxyType.Http, // Tipo de proxy (http, https, socks5)
proxyAddress: '8.8.8.8.8', // Endereço do servidor proxy
proxyPort: 8080, // Porta do servidor proxy
proxyLogin: 'proxyLoginHere', // Login do proxy (se necessário)
proxyPassword: 'proxyPasswordHere', // Senha do proxy (se necessário)
userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/131.0.0.0.0.0 Safari/537.36' // Use um UserAgent atualizado.
});
const response = await cmcClient.Solve(recaptchaRequest);
if (!response?.solution) throw new Error('Captcha not solved.');
console.log('Captcha não resolvido:', response.solution);
}
run()
.then(() => {
console.log('DONE');
process.exit(0);
})
.catch((err) => {
console.error(err);
process.exit(1);
});
Na maioria dos casos, a solução reCAPTCHA Enterprise é inserida por meio do navegador. Isso ocorre porque esse tipo de validação funciona no lado do cliente e usa JavaScript para realizar verificações complexas. Você pode usar ferramentas de automação do navegador (por exemplo, Puppeteer ou Selenium). Para inserir uma solução, você também precisará examinar o código da página e localizar o formulário apropriado, depois usar esse elemento em seu código e validar a validação.
- Vamos tomar Python e Selenium como ferramentas de exemplo. Primeiro, precisamos estudar a página de destino com captcha e encontrar todos os necessários para serem resolvidos pelo serviço CapMonster Cloud parâmetros e o próprio elemento em que o token precisa ser substituído. Normalmente, ele está contido em textarea e se parece com isto:
- Depois de resolver o captcha e obter o token, usando o Selenium, encontre este elemento:
textarea = driver.find_element(By.ID, "g-recaptcha-response")
- Muitos sites ocultamáreas de textopara o reCAPTCHA (display: none) para que o usuário não possa interagir diretamente. Em alguns navegadores ou versões do Selenium, os elementos que estão completamente ocultos podem não receber dados via .send_keys(). Abrir um elemento o torna disponível para entrada. Mas fazer textarea visible é opcional, essa linha é apenas uma medida extra em caso de problemas com elementos invisíveis:
driver.execute_script("arguments[0].style.display = 'block';", textarea)
- Cole o token no formulário usando .send_keys:
textarea.send_keys(captcha_token)
- A decisão pode ser confirmada clicando em (use ActionChains) no botão (digamos que o elemento em nosso exemplo se chama button[data-action='demo_action']:
button = driver.find_element(By.CSS_SELECTOR, "button[data-action='demo_action']")
ActionChains(driver).move_to_element(button).click(button).perform()
Ou use o envio automático de formulário:
driver.execute_script("document.forms[0].submit();")
- Código completo para resolver o RecatchaV2EnterpriseProxyless:
import asyncio
import time
from capmonstercloudclient import CapMonsterClient, ClientOptions
from capmonstercloudclient.requests import RecaptchaV2EnterpriseProxylessRequest
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
# Personalizar o Selenium
driver = webdriver.Chrome()
driver.get("https://example.com") # Carregando a página com captcha
# Configuração do CapMonster Cloud
client_options = ClientOptions(api_key="your_api_key") # Substitua por sua chave de API
cap_monster_client = CapMonsterClient(options=client_options)
# Obter a chave do site (pode ser recuperada da página)
website_url = driver.current_url
website_key = "6Lf56sWnAAAAAAAIKLuWNYgRsFUfmI-5Lex3xT5N-s" # Substitua pela chave do site real.
recaptcha_request = RecaptchaV2EnterpriseProxylessRequest(
websiteUrl=website_url,
websiteKey=website_key
)
# Solução Captcha
async def solve_captcha():
return await cap_monster_client.solve_captcha(recaptcha_request)
respostas = asyncio.run(solve_captcha())
captcha_token = responses["gRecaptchaResponse"] # Obtém o token da resposta
# Inserir o token no elemento reCAPTCHA
textarea = driver.find_element(By.ID, "g-recaptcha-response")
driver.execute_script("arguments[0].style.display = 'block';", textarea) # Tornar visível
textarea.send_keys(captcha_token) # Inserir token
# Acionar o evento de alteração e clicar no botão de confirmação
button = driver.find_element(By.CSS_SELECTOR, "button[data-action='demo_action']")
ActionChains(driver).move_to_element(button).click(button).perform()
print("O captcha foi resolvido e enviado com sucesso!")
time.sleep(5)
driver.quit()
Este método de resolução e substituição de um token em um formulário é um exemplo para referência - em cada caso individual, os nomes dos elementos e os métodos podem ser diferentes.
Quando estiver trabalhando com o reCAPTCHA Enterprise, é importante entender quais erros podem ocorrer e como lidar com eles de forma eficaz. Nesta seção, falaremos sobre os erros típicos ao trabalhar com a API, além de compartilhar recomendações sobre como melhorar o desempenho e a estabilidade do seu script. Tudo isso o ajudará a economizar tempo e evitar problemas desnecessários.
Erros típicos ao trabalhar com a API e dicas para melhorar o processo
- Invalid query parameters
Normalmente, o erro ocorre devido a parâmetros incorretos que você passa nas consultas. Por exemplo, pode ser um erro em sitekey, URL errado ou token errado para resolver o captcha. Para evitar essas situações, certifique-se sempre de que está enviando os dados corretos.
Conselho:
Certifique-se de sitekeye url correto para cada página em que você resolver o captcha. Use os parâmetros apropriados em consultas que correspondam ao tipo de captcha (por exemplo, para Enterprise captcha pode ter parâmetros adicionais, como enterprisePayload). Leia a documentação e use os parâmetros corretos para cada solicitação.
- Erro de tempo limite (timeout)
Às vezes, resolver um captcha pode demorar um pouco mais do que você esperava. Se a solicitação não for concluída a tempo, ocorrerá um erro de tempo limite. Para evitar isso, é uma boa ideia definir o tempo de espera corretamente e permitir novas tentativas.
Conselho:
Defina tempos limite razoáveis para suas solicitações.
Em caso de timeouts, use o mecanismo de repetição para não perder a solução.
- Limites da API e frequência de solicitações
U CapMonster Cloudhá limites para o número de solicitações que você pode enviar em um determinado período de tempo. Se você exceder esse limite, poderá ter problemas de desempenho ou até mesmo de bloqueio. Para evitar isso, é importante respeitar os limites e distribuir a carga adequadamente.
Conselho:
Observe os limites do número de solicitações. Divida as solicitações em partes menores para evitar bloqueios.
- Testes e monitoramento interativos
Às vezes, é útil usar ferramentas de monitoramento em tempo real para rastrear as interações com o seu site. Isso o ajudará a identificar onde está ocorrendo um erro.
Conselho:
Use ferramentas de monitoramento (por exemplo,DevTools do Chrome ou depuradores incorporados) para ver o processo de solução de captcha em tempo real.
- Asynchronous Queries
Se o seu script estiver lidando com vários captchas simultaneamente, as consultas assíncronas podem melhorar muito o desempenho. A assincronia permite que você evite bloquear a execução de outras tarefas enquanto um captcha está sendo resolvido.
Conselho:
Tente bibliotecas como, asyncio ou aiohttp para tornar as solicitações assíncronas.
Então, em nosso artigo, explicamos em detalhes o que é o reCAPTCHA Enterprise e como ele ajuda a proteger os sites contra ataques automatizados. Explicamos como reconhecer esse tipo de captcha em uma página e fornecemos exemplos de código para resolvê-lo usando as bibliotecas oficiais do CapMonster Cloud em diferentes linguagens de programação. Também mostramos como substituir corretamente o token no formulário e confirmar a solução do captcha.
Além disso, compartilhamos dicas úteis para otimizar seu trabalho com o reCAPTCHA Enterprise e analisamos erros típicos que podem ocorrer ao trabalhar com a API. Essas recomendações simples o ajudarão a evitar problemas e a tornar seu script mais estável e mais rápido!"
Estamos confiantes de que, seguindo essas dicas, você poderá enfrentar com eficácia os desafios associados à solução automatizada reCAPTCHA Enterprise e a ferramentas como CapMonster Cloud, torna o processo muito mais fácil e economiza tempo.
NB: Como lembrete, o produto é usado para automatizar testes em seus próprios sites e em sites aos quais você tem acesso legal.