Crawlee - Marco de trabajo moderno para el rastreo web y la automatización del navegador
Resumen del proyecto
Crawlee es una potente biblioteca de Node.js para el rastreo web y la automatización del navegador, desarrollada por Apify, diseñada específicamente para construir rastreadores web fiables. El proyecto es compatible con JavaScript y TypeScript, y puede proporcionar servicios de extracción de datos de alta calidad para aplicaciones de IA, modelos de lenguaje grandes (LLM), generación aumentada por recuperación (RAG), etc.
Dirección de GitHub: https://github.com/apify/crawlee
Características principales
🚀 Interfaz de rastreo unificada
- Soporte multi-motor: Interfaz unificada que soporta peticiones HTTP y rastreo con navegadores sin cabeza.
- Selección flexible: Se puede elegir el método de rastreo adecuado según las necesidades.
🔄 Gestión inteligente de colas
- Colas persistentes: Soporta colas de rastreo de URLs con prioridad por anchura y profundidad.
- Escalado automático: Ajusta automáticamente la escala de rastreo según los recursos del sistema.
💾 Sistema de almacenamiento flexible
- Soporte multi-formato: Soporte para almacenamiento enchufable de datos tabulares y archivos.
- Local/Nube: Almacenamiento por defecto en el directorio local
./storage
, con soporte para almacenamiento en la nube.
🔒 Anti-detección de nivel empresarial
- Rotación de proxies: Integración de rotación de proxies y gestión de sesiones.
- Simulación humana: Configuración por defecto que simula el comportamiento humano para evitar la detección de robots modernos.
- Falsificación de huellas digitales: Generación automática de huellas digitales TLS y encabezados de petición similares a los de un navegador real.
🛠 Amigable para desarrolladores
- Soporte nativo de TypeScript: Definiciones de tipo completas y soporte genérico.
- Herramienta CLI: Proporciona un andamiaje para crear proyectos rápidamente.
- Ganchos de ciclo de vida: Manejo de eventos de ciclo de vida personalizables.
- Listo para Docker: Dockerfile incorporado para facilitar la implementación.
Métodos de rastreo soportados
Rastreo HTTP
- Alto rendimiento: Soporte HTTP2 sin configuración, incluyendo proxies.
- Análisis inteligente: Integración de analizadores HTML rápidos Cheerio y JSDOM.
- Amigable con APIs: También soporta el rastreo de APIs JSON.
Automatización del navegador
- Multi-navegador: Soporta múltiples navegadores como Chrome, Firefox, Webkit, etc.
- Renderizado JavaScript: Manejo de contenido dinámico y aplicaciones de una sola página.
- Función de captura de pantalla: Soporte para capturas de pantalla de páginas.
- Modo con/sin cabeza: Selección flexible del modo de ejecución.
- Interfaz unificada: Playwright y Puppeteer utilizan la misma interfaz API.
Inicio rápido
Crear un proyecto usando CLI
npx crawlee create my-crawler
cd my-crawler
npm start
Código de ejemplo 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 dependencias
npm install crawlee playwright
Arquitectura técnica
Módulos principales
- @crawlee/core: Módulo de funcionalidad principal.
- @crawlee/types: Definiciones de tipo TypeScript.
- @crawlee/utils: Funciones de utilidad.
Librerías y herramientas soportadas
- Playwright: Automatización moderna del navegador.
- Puppeteer: Automatización de Chrome/Chromium.
- Cheerio: Análisis HTML rápido.
- JSDOM: Operaciones y análisis DOM.
Implementación e integración
Desarrollo local
- Los datos se almacenan por defecto en el directorio
./storage
.
- Soporte para personalizar la ubicación de almacenamiento a través de archivos de configuración.
- Soporte completo de guías de configuración y documentación.
Implementación en la nube
- Plataforma Apify: Dado que Crawlee está desarrollado por Apify, se puede implementar fácilmente en la plataforma en la nube de Apify.
- Soporte Docker: Configuración Docker incorporada, soporte para implementación en contenedores.
- Multiplataforma: Se puede ejecutar en cualquier entorno que soporte Node.js.
Gestión de versiones
- Versión estable: Instalar la versión de lanzamiento estable a través de npm.
- Versión Beta: Soporte para instalar versiones beta para probar nuevas funcionalidades.
npm install crawlee@3.12.3-beta.13
Escenarios de aplicación
Ciencia de datos e IA
- Conjuntos de datos de aprendizaje automático: Recopilación de datos de entrenamiento para modelos de IA.
- Sistemas RAG: Proporcionar una base de conocimiento para sistemas de generación aumentada por recuperación.
- Entrenamiento LLM: Recopilación de datos de pre-entrenamiento para modelos de lenguaje grandes.
Aplicaciones comerciales
- Análisis de la competencia: Monitorización de los productos e información de precios de los competidores.
- Investigación de mercado: Recopilación de tendencias de la industria y datos de mercado.
- Agregación de contenido: Recopilación automatizada de noticias, artículos, etc.
Monitorización técnica
- Monitorización de sitios web: Comprobación periódica de los cambios en los sitios web.
- Seguimiento de precios: Monitorización de precios de productos de comercio electrónico.
- Copia de seguridad de datos: Copia de seguridad periódica del contenido importante de las páginas web.
Resumen
Crawlee es un marco de trabajo de rastreo web completo y de diseño moderno, especialmente adecuado para aplicaciones de nivel empresarial que requieren alta fiabilidad y capacidades anti-detección. Su diseño de API unificado, sus potentes funciones anti-detección y su completo ecosistema lo convierten en la opción ideal para proyectos modernos de recopilación de datos. Ya sea para recopilar datos para proyectos de IA o para realizar análisis de inteligencia empresarial, Crawlee puede proporcionar una solución estable y fiable.