
Biblioteca de web scraping y automatización de navegador para Node.js, diseñada para crear crawlers fiables con soporte HTTP y de navegador headless, rotación de proxies y fingerprinting similar al humano.
Crawlee cubre tu rastreo y scraping de principio a fin y te ayuda a construir scrapers confiables. Rápido.
Tus crawlers parecerán humanos y pasarán desapercibidos ante las protecciones modernas contra bots, incluso con la configuración predeterminada. Crawlee te brinda las herramientas para rastrear la web en busca de enlaces, extraer datos y almacenarlos en disco o en la nube, manteniéndose configurable para adaptarse a las necesidades de tu proyecto.
Crawlee está disponible como el paquete NPM crawlee.
👉 Consulta la documentación completa, guías y ejemplos en el sitio web del proyecto Crawlee 👈
¿Prefieres 🐍 Python en lugar de JavaScript? 👉 Echa un vistazo a Crawlee para Python 👈.
Recomendamos visitar el tutorial de introducción en la documentación de Crawlee para obtener más información.
Crawlee requiere Node.js 22.13 o superior.
La forma más rápida de probar Crawlee es usar la CLI de Crawlee y elegir el ejemplo de inicio. La CLI instalará todas las dependencias necesarias y añadirá código repetitivo para que puedas experimentar.
npx crawlee create my-crawler
cd my-crawler
npm start
Si prefieres añadir Crawlee a tu propio proyecto, prueba el ejemplo a continuación. Como utiliza PlaywrightCrawler, también necesitamos instalar Playwright. No viene incluido con Crawlee para reducir el tamaño de la instalación.
npm install crawlee playwright
import { PlaywrightCrawler, Dataset } from 'crawlee';
// PlaywrightCrawler crawls the web using a headless
// browser controlled by the Playwright library.
const crawler = new PlaywrightCrawler({
// Use the requestHandler to process each of the crawled pages.
async requestHandler({ request, page, enqueueLinks, log }) {
const title = await page.title();
log.info(`Title of ${request.loadedUrl} is '${title}'`);
// Save results as JSON to ./storage/datasets/default
await Dataset.pushData({ title, url: request.loadedUrl });
// Extract links from the current page
// and add them to the crawling queue.
await enqueueLinks();
},
// Uncomment this option to see the browser window.
// headless: false,
});
// Add first URL to the queue and start the crawl.
await crawler.run(['https://crawlee.dev']);
De forma predeterminada, Crawlee almacena los datos en ./storage en el directorio de trabajo actual. Puedes sobrescribir este directorio mediante la configuración de Crawlee. Para más detalles, consulta la guía de configuración, el almacenamiento de solicitudes y el almacenamiento de resultados.
Proporcionamos compilaciones beta automatizadas para cada cambio de código fusionado en Crawlee. Puedes encontrarlas en la npm lista de versiones. Si deseas probar nuevas funciones o correcciones de errores antes de que las publiquemos, no dudes en instalar una compilación beta así:
npm install crawlee@next
Si también usas el Apify SDK, necesitas especificar anulaciones de dependencias en tu archivo package.json para no terminar con múltiples versiones de Crawlee instaladas:
{
"overrides": {
"apify": {
"@crawlee/core": "$crawlee",
"@crawlee/types": "$crawlee",
"@crawlee/utils": "$crawlee"
}
}
}
Crawlee es de código abierto y se ejecuta en cualquier lugar, pero como está desarrollado por Apify, es fácil configurarlo en la plataforma Apify y ejecutarlo en la nube. Visita el sitio web del Apify SDK para obtener más información sobre cómo desplegar Crawlee en la plataforma Apify.
Si encuentras algún error o problema con Crawlee, por favor envía un issue en GitHub. Para preguntas, puedes consultar en Stack Overflow, en las Discusiones de GitHub o unirte a nuestro servidor de Discord.
¡Tus contribuciones de código son bienvenidas y serás alabado por la eternidad! Si tienes alguna idea de mejora, envía un issue o crea un pull request. Para las pautas de contribución y el código de conducta, consulta CONTRIBUTING.md.