
Node.js-Web-Scraping- und Browser-Automatisierungsbibliothek zum Erstellen zuverlässiger Crawler mit HTTP- und Headless-Browser-Unterstützung, Proxy-Rotation und menschenähnlichem Fingerprinting.
Crawlee deckt dein Crawling und Scraping von Anfang bis Ende ab und hilft dir, zuverlässige Scraper zu erstellen. Schnell.
Deine Crawler wirken menschlich und fliegen unter dem Radar moderner Bot-Schutzmaßnahmen, selbst mit der Standardkonfiguration. Crawlee gibt dir die Werkzeuge, um das Web nach Links zu durchsuchen, Daten zu scrapen und sie auf der Festplatte oder in der Cloud zu speichern – und bleibt dabei konfigurierbar, um den Anforderungen deines Projekts gerecht zu werden.
Crawlee ist als NPM-Paket crawlee verfügbar.
👉 Vollständige Dokumentation, Anleitungen und Beispiele auf der Crawlee-Projektwebsite ansehen 👈
Bevorzugst du 🐍 Python statt JavaScript? 👉 Sieh dir Crawlee for Python an 👈.
Wir empfehlen, das Einführungs-Tutorial in der Crawlee-Dokumentation zu besuchen, um weitere Informationen zu erhalten.
Crawlee erfordert Node.js 22.13 oder höher.
Der schnellste Weg, Crawlee auszuprobieren, ist die Crawlee CLI zu verwenden und das Getting-started-Beispiel auszuwählen. Die CLI installiert alle notwendigen Abhängigkeiten und fügt Boilerplate-Code hinzu, mit dem du experimentieren kannst.
npx crawlee create my-crawler
cd my-crawler
npm start
Wenn du Crawlee lieber in dein eigenes Projekt einfügen möchtest, probiere das folgende Beispiel aus. Da es PlaywrightCrawler verwendet, müssen wir auch Playwright installieren. Es ist nicht in Crawlee enthalten, um die Installationsgröße zu reduzieren.
npm install crawlee playwright
import { PlaywrightCrawler, Dataset } from 'crawlee';
// PlaywrightCrawler crawlt das Web mit einem headless
// Browser, der von der Playwright-Bibliothek gesteuert wird.
const crawler = new PlaywrightCrawler({
// Verwende den requestHandler, um jede der gecrawlten Seiten zu verarbeiten.
async requestHandler({ request, page, enqueueLinks, log }) {
const title = await page.title();
log.info(`Title of ${request.loadedUrl} is '${title}'`);
// Ergebnisse als JSON in ./storage/datasets/default speichern
await Dataset.pushData({ title, url: request.loadedUrl });
// Links von der aktuellen Seite extrahieren
// und sie der Crawling-Warteschlange hinzufügen.
await enqueueLinks();
},
// Kommentiere diese Option aus, um das Browserfenster zu sehen.
// headless: false,
});
// Erste URL zur Warteschlange hinzufügen und den Crawl starten.
await crawler.run(['https://crawlee.dev']);
Standardmäßig speichert Crawlee Daten in ./storage im aktuellen Arbeitsverzeichnis. Du kannst dieses Verzeichnis über die Crawlee-Konfiguration überschreiben. Details findest du im Konfigurationsleitfaden, in der Request-Speicherung und in der Ergebnis-Speicherung.
Wir stellen automatisierte Beta-Builds für jede zusammengeführte Codeänderung in Crawlee bereit. Du findest sie in der npm-Liste der Releases. Wenn du neue Funktionen oder Fehlerbehebungen testen möchtest, bevor wir sie veröffentlichen, kannst du gerne einen Beta-Build wie folgt installieren:
npm install crawlee@next
Wenn du auch das Apify SDK verwendest, musst du Dependency-Overrides in deiner package.json-Datei angeben, damit du nicht mehrere Versionen von Crawlee installiert hast:
{
"overrides": {
"apify": {
"@crawlee/core": "$crawlee",
"@crawlee/types": "$crawlee",
"@crawlee/utils": "$crawlee"
}
}
}
Crawlee ist Open Source und läuft überall, aber da es von Apify entwickelt wird, ist es einfach, es auf der Apify-Plattform einzurichten und in der Cloud auszuführen. Besuche die Apify SDK-Website, um mehr über die Bereitstellung von Crawlee auf der Apify-Plattform zu erfahren.
Wenn du einen Fehler oder ein Problem mit Crawlee findest, reiche bitte ein Issue auf GitHub ein. Bei Fragen kannst du auf Stack Overflow, in den GitHub Discussions fragen oder unserem Discord-Server beitreten.