Visão Geral dos Clientes
Conheça os clientes oficiais e as interfaces padrão do Xcrap.
O Xcrap oferece uma variedade de clientes oficiais, cada um otimizado para cenários específicos. Todos os clientes seguem a interface ClientInterface e estendem a classe BaseClient.
Clientes Oficiais
| Pacote | Motor | Melhor Uso |
|---|---|---|
@xcrap/core | Native Fetch | FetchClient: Nativo, rápido, funciona em ambientes modernos. |
@xcrap/core | Node HTTP | HttpClient: Estável, suporte legível a proxies e agentes. |
@xcrap/axios-client | Axios | Requisições rápidas, sites estáticos simples. |
@xcrap/got-scraping-client | Got Scraping | Bypass de TLS, HTTP/2, sites com bloqueio básico. |
@xcrap/impit-client | Impit | Cliente HTTP leve e moderno. |
@xcrap/puppeteer-client | Puppeteer | Sites que dependem de renderização JS. |
@xcrap/puppeteer-extra-client | Puppeteer Extra | Suporte a plugins (Stealth, Anonymize UA, etc). |
@xcrap/puppeteer-real-browser-client | Puppeteer Real Browser | Máxima evasão, simula navegação humana real. |
O Padrão BaseClient
Todos os clientes herdam funcionalidades comuns da classe BaseClient:
- Proxy: Suporta strings de proxy ou funções dinâmicas.
- User-Agent: Customização global de UA.
- Throttling: Controle interno de concorrência.
- Retries: Mecanismo de tentativa automática em caso de falha.
import { AxiosClient } from "@xcrap/axios-client";
const client = new AxiosClient({
proxy: "http://proxy.example.com:8080",
userAgent: () => "User-Agent-Dinâmico-" + Math.random(),
});A Interface fetch
O método principal de todo cliente é o fetch. Ele sempre retorna um HttpResponse, que fornece métodos utilitários para parsear o conteúdo imediatamente.
const response = await client.fetch({
url: "https://toscrape.com",
maxRetries: 3,
retryDelay: 1000
});
const parser = response.asHtmlParser();