Furtividade e Evasão
Como o Xcrap ajuda a evitar bloqueios e detecção de bots.
Para sites com proteções avançadas (Cloudflare, Akamai, Datadome), o Xcrap oferece clientes especializados em passar despercebido.
Stealth com Got Scraping
O @xcrap/got-scraping-client utiliza o got-scraping, que emula o fingerprint de TLS e cabeçalhos HTTP de navegadores reais. É a opção mais rápida para sites protegidos que não exigem JS.
import { GotScrapingClient } from "@xcrap/got-scraping-client";
const client = new GotScrapingClient();
// Automaticamente lida com TLS fingerprinting e cabeçalhos complexos
const response = await client.fetch({ url: "https://amazon.com" });Puppeteer Extra Plugins
O @xcrap/puppeteer-extra-client permite o uso de todo o ecossistema de plugins do puppeteer-extra.
import { PuppeteerExtraClient } from "@xcrap/puppeteer-extra-client";
const StealthPlugin = require("puppeteer-extra-plugin-stealth");
const client = new PuppeteerExtraClient({
plugins: [StealthPlugin()] // Ativa o plugin stealth
});Puppeteer Real Browser
O @xcrap/puppeteer-real-browser-client é a arma definitiva para evasão. Ele utiliza uma instância de navegador que é quase impossível de distinguir de um usuário real.
Usando Plugins no Real Browser
Diferente do Puppeteer padrão, o Real Browser já vem otimizado, mas você ainda pode adicionar plugins extras:
import { PuppteerRealBrowserClient } from "@xcrap/puppeteer-real-browser-client";
const client = new PuppteerRealBrowserClient({
plugins: [/* Seus plugins aqui */]
});Ações de Navegação (Actions)
Muitas vezes, a furtividade exige interações humanas (scroll, clicks). Você pode definir ações que ocorrem antes ou depois da extração.
const response = await client.fetch({
url: "https://example.com",
actions: [
{
type: "beforeRequest",
exec: async (page) => {
// Simula scroll humano antes de carregar o conteúdo
await page.evaluate(() => window.scrollBy(0, window.innerHeight));
}
}
]
});