Como Executar um Parser de Sites Rápido para LLMs com Apenas 14 Megabytes de RAM
A última vez que tentei fazer deploy de uma stack local para web scraping em um pipeline RAG, meu modesto VPS rapidamente implorou por misericórdia. A combinação de engines de navegador, filas de tarefas e runtimes pesados devorou instantaneamente gigabytes de memória. Se você também tentou fazer self-hosting de soluções populares como Firecrawl, provavelmente se lembra desses requisitos de sistema.
Recentemente, o projeto fastCRW chamou minha atenção (no repositório ele é simplesmente chamado de crw). O autor reescreveu as funções familiares de scraping e crawling em Rust, ajustando tudo em um binário compacto.
O que o projeto pode fazer
fastCRW foi concebido como uma alternativa direta ao Firecrawl e Tavily. Ele busca páginas web por URL e as entrega como Markdown limpo, pronto para modelos de linguagem consumirem, ou como JSON estruturado.
A ferramenta lida com quatro tarefas principais:
- Scrape: converte uma página em Markdown, HTML bruto ou uma captura de tela.
- Crawl: percorre sistematicamente as páginas do site através de links internos respeitando o robots.txt.
- Map: constrói um mapa de links de um recurso sem carregar completamente cada página.
- Search: pesquisa na internet e exporta os resultados imediatamente.
De acordo com os benchmarks no repositório, em um dataset aberto de mil endereços, fastCRW mostrou boa velocidade de carregamento e completude na extração de dados, enquanto o binário em repouso usa apenas cerca de 14 megabytes de RAM.
Como trabalhar com isso
Você pode testar o utilitário localmente sem registro, ou conectar um backend em nuvem com um tier gratuito.
Instalação no terminal:
curl -fsSL https://fastcrw.com/install | sh
Imediatamente após isso, o CLI está disponível. Uma chamada simples retornará o Markdown parseado diretamente no stream de saída:
crw https://example.com
Integração no código
Para desenvolvedores, existem bibliotecas prontas. Veja como fica a coleta de dados em Python:
from crw import CrwClient
client = CrwClient()
page = client.scrape("https://example.com", formats=["markdown"])
print(page["markdown"])
Para Node.js, a sintaxe é praticamente a mesma:
import { CrwClient } from "crw-sdk";
const client = new CrwClient();
const page = await client.scrape("https://example.com", {
formats: ["markdown"],
});
console.log(page.markdown);
Conectando a assistentes de IA via MCP
Uma vantagem adicional é o suporte ao Model Context Protocol. Isso significa que o utilitário pode ser rapidamente conectado como uma ferramenta para Claude Desktop, Cursor ou qualquer outro agente.
Comando para configuração automática do MCP:
npx -y crw-mcp@latest install
Após a instalação, o modelo ganha a capacidade de pesquisar na web e ler páginas independentemente, sem gambiarras com scripts externos.
Opções de deploy e licenciamento
O projeto tem dois caminhos para uso. O primeiro é executar um binário local em seus próprios servidores sob Linux ou macOS. O segundo é uma API em nuvem com renderização JavaScript pesada e pesquisa prontas.
É importante revisar as licenças se você planeja fazer deploy da ferramenta em produção. O próprio engine e o servidor MCP são distribuídos sob a licença restritiva AGPL-3.0. As bibliotecas cliente para Python e TypeScript são abertas sob a familiar MIT.
Para quem isso será útil
fastCRW é uma excelente escolha se você está construindo sistemas RAG, coletando dados para fine-tuning de modelos, ou criando agentes de IA autônomos. O projeto elimina a necessidade de manter uma frota pesada de navegadores apenas para extrair texto simples de artigos e documentação.
Se você está cansado de dedicar metade dos recursos do seu servidor a parsers pesados, tente executar o crw localmente — a diferença no consumo de memória é perceptível desde os primeiros segundos.
Projetos relacionados