Pular para o conteúdo principal
Está tendo problemas para obter o token?
Entre em contato com o suporte

Imperva (Incapsula)

Mais sobre o tema em nosso blog
Atenção!
  • Para executar esta tarefa, utilize os seus próprios proxies.

  • Se o proxy usar autenticação por IP, é necessário adicionar o endereço 65.21.190.34 à lista de permissões (whitelist).

  • Após a resolução, você receberá cookies especiais, que devem ser adicionados ao navegador.

Parâmetros da solicitação


IMPORTANTE: alguns valores de parâmetros são dinâmicos — eles mudam a cada renderização da página que contém Imperva.
Extraia-os imediatamente antes de criar a tarefa para evitar erros durante a resolução.
Veja exemplos de extração automática de parâmetros na seção Como encontrar todos os parâmetros necessários para criar uma tarefa.


type<string>required

CustomTask


class<string>required

Imperva


websiteURL<string>required

O endereço da página principal onde o Incapsula está localizado.


incapsulaScriptUrl (dentro da metadata)<string>required

"incapsulaScriptUrl": "_Incapsula_Resource?SWJIYLWA=719d34d31c8e3a6e6fffd425f7e032f3" - Nome do arquivo JS do Incapsula.


incapsulaCookies (dentro da metadata)<string>required

Seus cookies do Incapsula. Eles podem ser obtidos na página usando document.cookie ou no cabeçalho da requisição Set-Cookie: "incap_sess_*=...; visid_incap_*=..." (veja o exemplo de requisição /createTask).


proxyType<string>required

http - proxy http/https comum;
https - tente esta opção apenas se "http" não funcionar (necessário para alguns proxies personalizados);
socks4 - proxy socks4;
socks5 - proxy socks5.


proxyAddress<string>required

Endereço IP do proxy IPv4/IPv6. Não é permitido:

  • uso de proxies transparentes (que revelem o IP do cliente);
  • uso de proxies em máquinas locais.

proxyPort<integer>required

Porta do proxy.


proxyLogin<string>required

Login do servidor proxy.


proxyPassword<string>required

Senha do servidor proxy.


reese84UrlEndpoint (dentro da metadata)<string>optional

O nome do endpoint para onde a impressão digital reese84 é enviada pode ser encontrado entre as solicitações e termina com ?d=site.com.


userAgent<string>optional

User-Agent do navegador. Use o valor atual compatível com o CapMonster Cloud: userAgentPlaceholder

Você pode obter o valor mais recente em: https://capmonster.cloud/api/useragent/actual.

Criar método de tarefa

POST
https://api.capmonster.cloud/createTask

Exemplo de requisição

{
"clientKey": "API_KEY",
"task": {
"type": "CustomTask",
"class": "Imperva",
"websiteURL": "https://yourwebsite.com/page-with-imperva",
"userAgent": "userAgentPlaceholder",
"metadata": {
"incapsulaScriptUrl": "_Incapsula_Resource?example-parameter=example-value",
"incapsulaCookies": "example-session-cookie=your-session-cookie; example-visitor-cookie=your-visitor-cookie;",
"reese84UrlEndpoint": "your-reese84-url-endpoint"
},
"proxyType": "your-proxy-type",
"proxyAddress": "your-proxy-address",
"proxyPort": 1234,
"proxyLogin": "your-proxy-login",
"proxyPassword": "your-proxy-password"
}
}

Exemplo de resposta

{
"errorId": 0,
"taskId": 407533072
}

Obter resultado da tarefa

Use o método getTaskResult para obter a solução Imperva.

POST
https://api.capmonster.cloud/getTaskResult

Exemplo de requisição

{
"clientKey":"API_KEY",
"taskId": 407533072
}

Exemplo de resposta

{
"errorId":0,
"status":"ready",
"solution": {
"domains": {
"https://example.com": {
"cookies": {
"___utmvc": "NMB+nRa4inxXNeXuhPl9w4opzdo...E4OTU2OGEwNzI2ODlkODc4MWIwNmU3MQ==; Max-Age=31536000; Domain=.site.com; Path=/; Secure; SameSite=Lax"
}
}
}
}
}

Access denied

Error 16 - este erro está relacionado ao uso de servidores proxy que não correspondem à geolocalização exigida.

Como encontrar todos os parâmetros necessários para criar uma tarefa

Automaticamente

Para automatizar a extração dos parâmetros, eles podem ser obtidos via navegador (normal ou headless, por exemplo, usando Playwright) ou diretamente a partir de requisições HTTP. Como os valores dos parâmetros dinâmicos têm curta duração, recomenda-se utilizá-los imediatamente após a extração.

Importante!

Os trechos de código fornecidos são exemplos básicos para aprendizado sobre como extrair os parâmetros necessários. A implementação exata dependerá do seu site com captcha, sua estrutura e os elementos HTML e seletores utilizados.

Mostrar código (Node.js)
import { chromium } from "playwright";

(async () => {
const browser = await chromium.launch({ headless: false });
const page = await browser.newPage();

await page.goto("https://www.example.com/");

// Extraia o atributo src do iframe com id main-iframe
const iframeSrc = await page.$eval("#main-iframe", (iframe) =>
iframe.getAttribute("src")
);
console.log("src do iframe:", iframeSrc);

// Obtenha todos os cookies
const cookies = await page.context().cookies();

// Filtre cookies que começam com visid_incap_ ou incap_ses_
const filteredCookies = cookies.filter(
(cookie) =>
cookie.name.startsWith("visid_incap_") ||
cookie.name.startsWith("incap_ses_")
);

filteredCookies.forEach((cookie) => {
console.log(`${cookie.name}=${cookie.value}`);
});

await browser.close();
})();

Usar biblioteca SDK

Mostrar código (para navegador)
// https://github.com/CapMonsterCloud/capmonster-nodejs-captcha-solver

import {
CapMonsterCloudClientFactory,
ClientOptions,
ImpervaRequest
} from "@zennolab_com/capmonstercloud-client";

document.addEventListener("DOMContentLoaded", async () => {

const API_KEY = "YOUR_API_KEY"; // Informe sua chave de API do CapMonster Cloud

const client = CapMonsterCloudClientFactory.Create(
new ClientOptions({ clientKey: API_KEY })
);

// O Imperva (Incapsula) só pode ser resolvido usando seu próprio proxy
const proxy = {
proxyType: "http",
proxyAddress: "123.45.67.89",
proxyPort: 8080,
proxyLogin: "username",
proxyPassword: "password",
};

const impervaRequest = new ImpervaRequest({
websiteURL: "https://yourwebsite.com/page-with-imperva",
metadata: {
incapsulaScriptUrl:
"_Incapsula_Resource?SWJIYLWA=1234567890abcdef1234567890abcdef",
incapsulaCookies:
"incap_ses_1234_5678901=testSessionValue1234567890abcdef==; " +
"visid_incap_5678901=testVisitorValue1234567890abcdef==;",
},
proxy,
});

// Se necessário, você pode verificar o saldo
const balance = await client.getBalance();
console.log("Balance:", balance);

const result = await client.Solve(impervaRequest);
console.log("Solution:", result.solution);
});
Mostrar código (Node.js)
// https://github.com/CapMonsterCloud/capmonster-nodejs-captcha-solver

const {
CapMonsterCloudClientFactory,
ClientOptions,
ImpervaRequest,
} = require("@zennolab_com/capmonstercloud-client");

const API_KEY = "YOUR_API_KEY"; // Informe sua chave de API do CapMonster Cloud

async function solveImperva() {
const client = CapMonsterCloudClientFactory.Create(
new ClientOptions({ clientKey: API_KEY }),
);

// O Imperva (Incapsula) só pode ser resolvido usando seu próprio proxy
const proxy = {
proxyType: "http",
proxyAddress: "123.45.67.89",
proxyPort: 8080,
proxyLogin: "username",
proxyPassword: "password",
};

const impervaRequest = new ImpervaRequest({
websiteURL: "https://yourwebsite.com/page-with-imperva",
metadata: {
incapsulaScriptUrl:
"_Incapsula_Resource?SWJIYLWA=1234567890abcdef1234567890abcdef",
incapsulaCookies:
"incap_ses_1234_5678901=testSessionValue1234567890abcdef==; " +
"visid_incap_5678901=testVisitorValue1234567890abcdef==;",
},
proxy,
});

// Se necessário, você pode verificar o saldo
const balance = await client.getBalance();
console.log("Balance:", balance);

const result = await client.Solve(impervaRequest);
console.log("Solution:", result.solution);
}

solveImperva().catch(console.error);