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:
- O Cliente (ex:
AxiosClient) faz o download do HTML. - O Parser (ex:
HtmlParser) recebe esse HTML. - O Model define que o
titleestá no seletorh1usandoinnerText. - O resultado é um objeto JavaScript limpo:
{ title: "Olá Mundo" }.