Xcrap Logo

Arquitetura Modular

Como os pacotes do Xcrap se comunicam.

O Xcrap foi construído sobre o princípio de responsabilidade única. Cada pacote resolve uma parte específica do pipeline de scraping.

O Fluxo de Dados

A extração de dados no Xcrap geralmente segue este fluxo:

1. Clientes (clients)

Responsáveis por obter o conteúdo bruto.

  • Estáticos: axios-client, got-scraping-client.
  • Dinâmicos: puppeteer-client, puppeteer-real-browser-client.

2. Extratores (extractor)

O motor que processa o conteúdo. Ele utiliza seletores (CSS ou XPath) e funções de extração (innerText, attribute, etc.) para transformar o código bruto em dados.

3. Modelos (ExtractionModel)

A definição da forma do seu dado. Você define um objeto onde as chaves são os nomes das propriedades e os valores descrevem como encontrá-las.

4. Fábricas (factory)

Facilitam a criação dinâmica de clientes e modelos a partir de configurações JSON, ideal para sistemas que precisam mudar o comportamento em tempo de execução.

Exemplo Visual

Imagine que você quer extrair o título de uma página:

  1. O Cliente (ex: AxiosClient) faz o download do HTML.
  2. O Parser (ex: HtmlParser) recebe esse HTML.
  3. O Model define que o title está no seletor h1 usando innerText.
  4. O resultado é um objeto JavaScript limpo: { title: "Olá Mundo" }.

On this page