Ir para o conteúdo

Crawlee: Biblioteca de Raspar Web para Node.js

Crawlee é uma solução completa para quem precisa construir rastreadores web robustos em ambientes Node.js. Ela combina diversas tecnologias de automação e parsing para oferecer flexibilidade na coleta de dados, armazenamento e integração com pipelines de IA ou análise.

Introdução

Crawlee entrega um conjunto de ferramentas que abrange desde a navegação em páginas até o armazenamento dos resultados. Sua arquitetura permite escolher entre diferentes drivers (Puppeteer, Playwright, Cheerio, JSDOM ou HTTP puro) conforme a necessidade de renderização JavaScript ou simplicidade de requisições.

Instalação

Para começar, é necessário ter Node.js versão 16 ou superior instalada. Depois disso, você pode usar a Crawlee CLI ou instalar manualmente.

Dica

A CLI cria um projeto pronto para uso com um exemplo de introdução, reduzindo o tempo de configuração.

Via Crawlee CLI

npx crawlee create my-crawler
cd my-crawler
npm start

Instalação manual

Se preferir adicionar Crawlee a um projeto existente, instale o pacote principal e, caso queira usar o PlaywrightCrawler, também instale o Playwright separadamente:

npm install crawlee playwright

Atenção

O Playwright não é incluído automaticamente para manter o tamanho do pacote reduzido; ele deve ser adicionado conforme o driver escolhido.

Uso básico

O exemplo abaixo demonstra como criar um rastreador com Playwright, extrair o título de cada página e salvar os resultados em um conjunto de dados.

import { PlaywrightCrawler, Dataset } from 'crawlee';

const crawler = new PlaywrightCrawler({
    async requestHandler({ request, page, enqueueLinks, log }) {
        const title = await page.title();
        log.info(`Título de ${request.loadedUrl} é '${title}'`);

        // Salva título e URL como JSON em ./storage/datasets/default
        await Dataset.pushData({ title, url: request.loadedUrl });

        // Opcional: enfileirar links encontrados na página
        await enqueueLinks();
    },
});

await crawler.run(['https://example.com']);

Recursos principais

  • Compatibilidade múltipla: trabalha com Puppeteer, Playwright, Cheerio, JSDOM e requisições HTTP brutas.
  • Modos headful e headless: permite execução com interface gráfica ou em segundo plano.
  • Rotação de proxies: integrada para reduzir chances de bloqueio.
  • Armazenamento flexível: salva dados em disco (JSON, CSV, etc.) ou envia para serviços de nuvem.
  • CLI e scaffolds: gera estrutura de projeto e exemplos prontos para teste.

Pontos-chave

  • Crawlee simplifica a construção de rastreadores Node.js com suporte a várias bibliotecas de automação.
  • Oferece modos headful/headless, rotação de proxies e armazenamento configurável.
  • Requer Node.js ≥16 e, opcionalmente, Playwright ou Puppeteer conforme o driver escolhido.
  • A CLI acelera a criação de projetos com um exemplo de introdução pronto para uso.
  • Ideal para coleta de dados destinada a IA, LLMs, RAG ou processos de ETL.

Ferramentas e Tecnologias

  • [[Playwright]]
  • [[Puppeteer]]
  • [[Cheerio]]
  • [[JSDOM]]
  • [[npm]]

Nota pessoal

https://github.com/apify/crawlee

Tags

web-scraping #automation #nodejs #puppeteer #playwright