Eine leistungsstarke Node.js-Bibliothek für Web Scraping und Browserautomatisierung, die JavaScript und TypeScript unterstützt und Daten für KI, LLM, RAG usw. extrahieren kann.
Crawlee - Modernes Web-Crawling- und Browser-Automatisierungs-Framework
Projektübersicht
Crawlee ist eine leistungsstarke Node.js-Bibliothek für Web-Crawling und Browser-Automatisierung, die von Apify entwickelt wurde und speziell für die Erstellung zuverlässiger Web-Crawler entwickelt wurde. Das Projekt unterstützt JavaScript und TypeScript und bietet hochwertige Datenextraktionsdienste für Anwendungen wie KI, Large Language Models (LLM) und Retrieval-Augmented Generation (RAG).
GitHub-Adresse: https://github.com/apify/crawlee
Kernfunktionsmerkmale
🚀 Einheitliche Crawling-Schnittstelle
- Multi-Engine-Unterstützung: Einheitliche Schnittstelle unterstützt HTTP-Anfragen und Headless-Browser-Crawling
- Flexible Auswahl: Auswahl der geeigneten Crawling-Methode je nach Bedarf
🔄 Intelligentes Warteschlangenmanagement
- Persistente Warteschlangen: Unterstützung von URL-Crawling-Warteschlangen mit Breiten- und Tiefensuche
- Automatische Skalierung: Automatische Anpassung der Crawling-Größe basierend auf Systemressourcen
💾 Flexibles Speichersystem
- Multi-Format-Unterstützung: Plug-in-fähige Speicherung von Tabellendaten und Dateien
- Lokal/Cloud: Standardmäßige Speicherung im lokalen
./storage
-Verzeichnis, Unterstützung für Cloud-Speicherung
🔒 Anti-Detection auf Enterprise-Niveau
- Proxy-Rotation: Integrierte Proxy-Rotation und Sitzungsverwaltung
- Humanisierte Simulation: Standardkonfiguration simuliert menschliches Verhalten und umgeht moderne Bot-Erkennung
- Fingerabdruck-Fälschung: Automatische Generierung von TLS-Fingerabdrücken und Anfrage-Headern, die echten Browsern ähneln
🛠 Entwicklerfreundlich
- Native TypeScript-Unterstützung: Vollständige Typdefinitionen und generische Unterstützung
- CLI-Tool: Bietet ein Gerüst für die schnelle Erstellung von Projekten
- Lebenszyklus-Hooks: Anpassbare Ereignisbehandlung für den Lebenszyklus
- Docker-Ready: Integriertes Dockerfile für einfache Bereitstellung
Unterstützte Crawling-Methoden
HTTP-Crawling
- Hohe Leistung: Zero-Konfigurations-HTTP2-Unterstützung, einschließlich Proxys
- Intelligente Analyse: Integrierte Cheerio- und JSDOM-Schnell-HTML-Parser
- API-freundlich: Unterstützt auch das Crawlen von JSON-APIs
Browser-Automatisierung
- Mehrere Browser: Unterstützt Chrome, Firefox, Webkit und andere Browser
- JavaScript-Rendering: Verarbeitung dynamischer Inhalte und Single-Page-Anwendungen
- Screenshot-Funktion: Unterstützung für Seitenscreenshots
- Headless/Headful-Modus: Flexible Auswahl des Ausführungsmodus
- Einheitliche Schnittstelle: Playwright und Puppeteer verwenden die gleiche API-Schnittstelle
Schnellstart
Projekt mit der CLI erstellen
npx crawlee create my-crawler
cd my-crawler
npm start
Basis-Beispielcode
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']);
Abhängigkeiten installieren
npm install crawlee playwright
Technische Architektur
Kernmodule
- @crawlee/core: Kernfunktionsmodul
- @crawlee/types: TypeScript-Typdefinitionen
- @crawlee/utils: Nützliche Hilfsfunktionen
Unterstützte Bibliotheken und Tools
- Playwright: Moderne Browser-Automatisierung
- Puppeteer: Chrome/Chromium-Automatisierung
- Cheerio: Schnelle HTML-Analyse
- JSDOM: DOM-Manipulation und -Analyse
Bereitstellung und Integration
Lokale Entwicklung
- Standardmäßige Datenspeicherung im
./storage
-Verzeichnis - Unterstützung für die Anpassung des Speicherorts über Konfigurationsdateien
- Vollständige Konfigurationsanleitung und Dokumentationsunterstützung
Cloud-Bereitstellung
- Apify-Plattform: Da Crawlee von Apify entwickelt wurde, kann es einfach auf der Apify-Cloud-Plattform bereitgestellt werden
- Docker-Unterstützung: Integrierte Docker-Konfiguration, Unterstützung für containerisierte Bereitstellung
- Plattformübergreifend: Kann in jeder Umgebung ausgeführt werden, die Node.js unterstützt
Versionsverwaltung
- Stabile Version: Installation der stabilen Release-Version über npm
- Beta-Version: Unterstützung für die Installation von Beta-Versionen zum Testen neuer Funktionen
npm install crawlee@3.12.3-beta.13
Anwendungsfälle
Data Science und KI
- Machine-Learning-Datensätze: Sammeln von Trainingsdaten für KI-Modelle
- RAG-Systeme: Bereitstellung einer Wissensbasis für Retrieval-Augmented Generation-Systeme
- LLM-Training: Sammlung von Vortrainingsdaten für Large Language Models
Geschäftsanwendungen
- Wettbewerbsanalyse: Überwachung der Produkte und Preisinformationen von Wettbewerbern
- Marktforschung: Sammlung von Branchentrends und Marktdaten
- Content-Aggregation: Automatisierte Sammlung von Nachrichten, Artikeln usw.
Technische Überwachung
- Website-Überwachung: Regelmäßige Überprüfung von Website-Änderungen
- Preisverfolgung: Überwachung von E-Commerce-Produktpreisen
- Datensicherung: Regelmäßige Sicherung wichtiger Webseiteninhalte
Zusammenfassung
Crawlee ist ein umfassendes, modern gestaltetes Web-Crawling-Framework, das sich besonders für Enterprise-Anwendungen eignet, die hohe Zuverlässigkeit und Anti-Detection-Funktionen erfordern. Sein einheitliches API-Design, seine leistungsstarken Anti-Detection-Funktionen und sein umfassendes Ökosystem machen es zur idealen Wahl für moderne Datenerfassungsprojekte. Ob es darum geht, Daten für KI-Projekte zu sammeln oder Business-Intelligence-Analysen durchzuführen, Crawlee bietet eine stabile und zuverlässige Lösung.