Crawlee - Framework Moderno para Web Scraping e Automação de Navegadores
Visão Geral do Projeto
Crawlee é uma poderosa biblioteca Node.js para web scraping e automação de navegadores, desenvolvida pela Apify, projetada para construir web crawlers confiáveis. O projeto suporta JavaScript e TypeScript, sendo capaz de fornecer serviços de extração de dados de alta qualidade para aplicações de IA, Modelos de Linguagem Grandes (LLM), Geração Aumentada por Recuperação (RAG), etc.
Endereço do GitHub: https://github.com/apify/crawlee
Principais Características e Funcionalidades
🚀 Interface de Scraping Unificada
- Suporte a Múltiplos Mecanismos: Interface unificada que suporta requisições HTTP e scraping com navegadores headless.
- Seleção Flexível: Escolha o método de scraping mais adequado às suas necessidades.
🔄 Gerenciamento Inteligente de Filas
- Filas Persistentes: Suporte a filas de rastreamento de URLs em largura e profundidade.
- Escalonamento Automático: Ajusta automaticamente a escala de scraping com base nos recursos do sistema.
💾 Sistema de Armazenamento Flexível
- Suporte a Múltiplos Formatos: Suporte plugável para armazenamento de dados tabulares e arquivos.
- Local/Nuvem: Armazenamento padrão no diretório local
./storage
, com suporte para armazenamento em nuvem.
🔒 Anti-Detecção de Nível Empresarial
- Rotação de Proxies: Integração de rotação de proxies e gerenciamento de sessões.
- Simulação Humana: Configuração padrão que simula o comportamento humano para contornar a detecção de bots modernos.
- Falsificação de Impressão Digital: Geração automática de impressões digitais TLS e cabeçalhos de requisição semelhantes aos de navegadores reais.
🛠 Amigável ao Desenvolvedor
- Suporte Nativo a TypeScript: Definições de tipo completas e suporte a genéricos.
- Ferramenta CLI: Fornece um scaffolding para criar projetos rapidamente.
- Ganchos de Ciclo de Vida: Tratamento personalizável de eventos do ciclo de vida.
- Pronto para Docker: Dockerfile integrado para facilitar a implantação.
Métodos de Scraping Suportados
Scraping HTTP
- Alto Desempenho: Suporte a HTTP2 sem configuração, incluindo proxies.
- Análise Inteligente: Integração de analisadores HTML rápidos Cheerio e JSDOM.
- Amigável a APIs: Suporte também para scraping de APIs JSON.
Automação de Navegadores
- Múltiplos Navegadores: Suporte a Chrome, Firefox, Webkit e outros navegadores.
- Renderização JavaScript: Lida com conteúdo dinâmico e aplicações de página única.
- Funcionalidade de Captura de Tela: Suporte para capturas de tela de páginas.
- Modo Headless/Com Cabeça: Escolha flexível do modo de execução.
- Interface Unificada: Playwright e Puppeteer usam a mesma interface de API.
Começo Rápido
Criar um Projeto Usando a CLI
npx crawlee create my-crawler
cd my-crawler
npm start
Código de Exemplo Básico
import { PlaywrightCrawler, Dataset } from 'crawlee';
const crawler = new PlaywrightCrawler({
async requestHandler({ request, page, enqueueLinks, log }) {
const title = await page.title();
log.info(`Title of ${request.loadedUrl} is '${title}'`);
await Dataset.pushData({ title, url: request.loadedUrl });
await enqueueLinks();
},
// headless: false,
});
await crawler.run(['https://crawlee.dev']);
Instalar Dependências
npm install crawlee playwright
Arquitetura Técnica
Módulos Principais
- @crawlee/core: Módulo de funcionalidades principais.
- @crawlee/types: Definições de tipo TypeScript.
- @crawlee/utils: Funções de utilidade.
Bibliotecas e Ferramentas Suportadas
- Playwright: Automação de navegadores moderna.
- Puppeteer: Automação de Chrome/Chromium.
- Cheerio: Análise HTML rápida.
- JSDOM: Operação e análise de DOM.
Implantação e Integração
Desenvolvimento Local
- Dados armazenados por padrão no diretório
./storage
.
- Suporte para personalizar o local de armazenamento através de arquivos de configuração.
- Guia de configuração completo e suporte à documentação.
Implantação na Nuvem
- Plataforma Apify: Como o Crawlee é desenvolvido pela Apify, pode ser facilmente implantado na plataforma de nuvem Apify.
- Suporte a Docker: Configuração Docker integrada, suportando implantação em contêineres.
- Multiplataforma: Pode ser executado em qualquer ambiente que suporte Node.js.
Gerenciamento de Versões
- Versão Estável: Instale a versão de lançamento estável via npm.
- Versão Beta: Suporte para instalar versões beta para testar novas funcionalidades.
npm install crawlee@3.12.3-beta.13
Cenários de Aplicação
Ciência de Dados e IA
- Conjuntos de Dados de Aprendizado de Máquina: Coleta de dados de treinamento para modelos de IA.
- Sistemas RAG: Fornece uma base de conhecimento para sistemas de Geração Aumentada por Recuperação.
- Treinamento de LLM: Coleta de dados de pré-treinamento para modelos de linguagem grandes.
Aplicações Comerciais
- Análise da Concorrência: Monitoramento de produtos e informações de preços dos concorrentes.
- Pesquisa de Mercado: Coleta de tendências da indústria e dados de mercado.
- Agregação de Conteúdo: Coleta automatizada de notícias, artigos, etc.
Monitoramento Técnico
- Monitoramento de Sites: Verificação regular de alterações em sites.
- Rastreamento de Preços: Monitoramento de preços de produtos de comércio eletrônico.
- Backup de Dados: Backup regular de conteúdo importante de páginas da web.
Conclusão
Crawlee é um framework de web scraping abrangente e com design moderno, especialmente adequado para aplicações de nível empresarial que exigem alta confiabilidade e capacidade anti-detecção. Seu design de API unificado, poderosas funcionalidades anti-detecção e ecossistema completo o tornam a escolha ideal para projetos modernos de coleta de dados. Seja para coletar dados para projetos de IA ou para realizar análises de inteligência de negócios, o Crawlee pode fornecer uma solução estável e confiável.