
Bibliothèque Node.js de scraping web et d'automatisation de navigateur pour créer des crawlers fiables avec prise en charge HTTP et navigateur headless, rotation de proxy et empreinte numérique imitant un comportement humain.
Crawlee couvre votre crawling et votre scraping de bout en bout et vous aide à construire des scrapers fiables. Rapidement.
Vos crawlers apparaîtront comme des humains et passeront sous le radar des protections anti-bots modernes, même avec la configuration par défaut. Crawlee vous donne les outils pour parcourir le web à la recherche de liens, extraire des données et les stocker sur disque ou dans le cloud, tout en restant configurable pour répondre aux besoins de votre projet.
Crawlee est disponible sous forme de package NPM crawlee.
👉 Consultez la documentation complète, les guides et les exemples sur le site web du projet Crawlee 👈
Vous préférez 🐍 Python à JavaScript ? 👉 Découvrez Crawlee pour Python 👈.
Nous vous recommandons de consulter le tutoriel d'introduction dans la documentation de Crawlee pour plus d'informations.
Crawlee nécessite Node.js 22.13 ou supérieur.
Le moyen le plus rapide d'essayer Crawlee est d'utiliser la CLI Crawlee et de choisir l'exemple de démarrage. La CLI installera toutes les dépendances nécessaires et ajoutera du code passe-partout avec lequel vous pourrez jouer.
npx crawlee create my-crawler
cd my-crawler
npm start
Si vous préférez ajouter Crawlee à votre propre projet, essayez l'exemple ci-dessous. Comme il utilise PlaywrightCrawler, nous devons également installer Playwright. Il n'est pas fourni avec Crawlee afin de réduire la taille de l'installation.
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']);
Par défaut, Crawlee stocke les données dans ./storage dans le répertoire de travail courant. Vous pouvez remplacer ce répertoire via la configuration de Crawlee. Pour plus de détails, consultez le guide de configuration, le stockage des requêtes et le stockage des résultats.
Nous fournissons des builds bêta automatisés pour chaque modification de code fusionnée dans Crawlee. Vous pouvez les trouver dans la liste des versions npm. Si vous souhaitez tester de nouvelles fonctionnalités ou des corrections de bugs avant leur publication, n'hésitez pas à installer un build bêta comme ceci :
npm install crawlee@next
Si vous utilisez également le Apify SDK, vous devez spécifier des substitutions de dépendances dans votre fichier package.json afin de ne pas vous retrouver avec plusieurs versions de Crawlee installées :
{
"overrides": {
"apify": {
"@crawlee/core": "$crawlee",
"@crawlee/types": "$crawlee",
"@crawlee/utils": "$crawlee"
}
}
}
Crawlee est open-source et fonctionne partout, mais comme il est développé par Apify, il est facile à configurer sur la plateforme Apify et à exécuter dans le cloud. Consultez le site web du SDK Apify pour en savoir plus sur le déploiement de Crawlee sur la plateforme Apify.
Si vous trouvez un bug ou un problème avec Crawlee, veuillez soumettre un ticket sur GitHub. Pour toute question, vous pouvez demander sur Stack Overflow, dans les GitHub Discussions ou rejoindre notre serveur Discord.