Crawlee deckt Ihr Krabbeln und Schaben von Anfang bis Ende ab und hilft Ihnen beim Bau zuverlässiger Schaber. Schnell.
Crawlee für Python steht Early Adopters offen!
Ihre Crawler sehen fast menschenähnlich aus und fliegen selbst mit der Standardkonfiguration unter dem Radar moderner Bot-Schutzmaßnahmen. Crawlee bietet Ihnen die Tools, mit denen Sie das Web nach Links durchsuchen, Daten durchsuchen und dauerhaft in maschinenlesbaren Formaten speichern können, ohne sich um die technischen Details kümmern zu müssen. Und dank umfangreicher Konfigurationsoptionen können Sie fast jeden Aspekt von Crawlee an die Anforderungen Ihres Projekts anpassen, wenn die Standardeinstellungen nicht ausreichen.
Sehen Sie sich die vollständige Dokumentation, Anleitungen und Beispiele auf der Website des Crawlee-Projekts an ?
Wir haben auch eine TypeScript-Implementierung von Crawlee, die Sie erkunden und für Ihre Projekte nutzen können. Besuchen Sie unser GitHub-Repository für weitere Informationen zu Crawlee für JS/TS auf GitHub.
Für weitere Informationen empfehlen wir den Besuch des Einführungs-Tutorials in der Crawlee-Dokumentation.
Crawlee ist als crawlee
PyPI-Paket verfügbar. Die Kernfunktionalität ist im Basispaket enthalten, zusätzliche Funktionen sind als optionale Extras verfügbar, um Paketgröße und Abhängigkeiten zu minimieren. Um Crawlee mit allen Funktionen zu installieren, führen Sie den folgenden Befehl aus:
pip install ' crawlee[all] '
Installieren Sie dann die Playwright-Abhängigkeiten:
playwright install
Überprüfen Sie, ob Crawlee erfolgreich installiert wurde:
python -c ' import crawlee; print(crawlee.__version__) '
Ausführliche Installationsanweisungen finden Sie auf der Dokumentationsseite zum Einrichten.
Der schnellste Weg, mit Crawlee zu beginnen, besteht darin, die Crawlee-CLI zu verwenden und eine der vorbereiteten Vorlagen auszuwählen. Stellen Sie zunächst sicher, dass Sie Pipx installiert haben:
pipx --help
Führen Sie dann die CLI aus und wählen Sie aus den verfügbaren Vorlagen aus:
pipx run crawlee create my-crawler
Wenn Sie crawlee
bereits installiert haben, können Sie es starten, indem Sie Folgendes ausführen:
crawlee create my-crawler
Hier sind einige praktische Beispiele, die Ihnen den Einstieg in die verschiedenen Arten von Crawlern in Crawlee erleichtern sollen. Jedes Beispiel zeigt, wie Sie einen Crawler für bestimmte Anwendungsfälle einrichten und ausführen, unabhängig davon, ob Sie einfache HTML-Seiten verarbeiten oder mit JavaScript-lastigen Websites interagieren müssen. Ein Crawler-Lauf erstellt ein storage/
-Verzeichnis in Ihrem aktuellen Arbeitsverzeichnis.
Der BeautifulSoupCrawler
lädt Webseiten mithilfe einer HTTP-Bibliothek herunter und stellt dem Benutzer HTML-geparste Inhalte bereit. Standardmäßig verwendet es HttpxHttpClient
für die HTTP-Kommunikation und BeautifulSoup zum Parsen von HTML. Es ist ideal für Projekte, die eine effiziente Extraktion von Daten aus HTML-Inhalten erfordern. Dieser Crawler weist eine sehr gute Leistung auf, da er keinen Browser verwendet. Wenn Sie jedoch clientseitiges JavaScript ausführen müssen, um Ihre Inhalte abzurufen, reicht dies nicht aus und Sie müssen PlaywrightCrawler
verwenden. Wenn Sie diesen Crawler verwenden möchten, stellen Sie außerdem sicher, dass Sie crawlee
mit beautifulsoup
Extra installieren.
import asyncio
from crawlee . beautifulsoup_crawler import BeautifulSoupCrawler , BeautifulSoupCrawlingContext
async def main () -> None :
crawler = BeautifulSoupCrawler (
# Limit the crawl to max requests. Remove or increase it for crawling all links.
max_requests_per_crawl = 10 ,
)
# Define the default request handler, which will be called for every request.
@ crawler . router . default_handler
async def request_handler ( context : BeautifulSoupCrawlingContext ) -> None :
context . log . info ( f'Processing { context . request . url } ...' )
# Extract data from the page.
data = {
'url' : context . request . url ,
'title' : context . soup . title . string if context . soup . title else None ,
}
# Push the extracted data to the default dataset.
await context . push_data ( data )
# Enqueue all links found on the page.
await context . enqueue_links ()
# Run the crawler with the initial list of URLs.
await crawler . run ([ 'https://crawlee.dev' ])
if __name__ == '__main__' :
asyncio . run ( main ())
Der PlaywrightCrawler
nutzt einen Headless-Browser zum Herunterladen von Webseiten und stellt eine API zur Datenextraktion bereit. Es basiert auf Playwright, einer Automatisierungsbibliothek zur Verwaltung kopfloser Browser. Es eignet sich hervorragend zum Abrufen von Webseiten, die für die Generierung von Inhalten auf clientseitigem JavaScript basieren, oder für Aufgaben, die eine Interaktion mit JavaScript-gesteuerten Inhalten erfordern. Für Szenarien, in denen die Ausführung von JavaScript nicht erforderlich ist oder eine höhere Leistung erforderlich ist, sollten Sie die Verwendung von BeautifulSoupCrawler
in Betracht ziehen. Wenn Sie diesen Crawler verwenden möchten, stellen Sie außerdem sicher, dass Sie crawlee
mit playwright
Extra installieren.
import asyncio
from crawlee . playwright_crawler import PlaywrightCrawler , PlaywrightCrawlingContext
async def main () -> None :
crawler = PlaywrightCrawler (
# Limit the crawl to max requests. Remove or increase it for crawling all links.
max_requests_per_crawl = 10 ,
)
# Define the default request handler, which will be called for every request.
@ crawler . router . default_handler
async def request_handler ( context : PlaywrightCrawlingContext ) -> None :
context . log . info ( f'Processing { context . request . url } ...' )
# Extract data from the page.
data = {
'url' : context . request . url ,
'title' : await context . page . title (),
}
# Push the extracted data to the default dataset.
await context . push_data ( data )
# Enqueue all links found on the page.
await context . enqueue_links ()
# Run the crawler with the initial list of requests.
await crawler . run ([ 'https://crawlee.dev' ])
if __name__ == '__main__' :
asyncio . run ( main ())
Entdecken Sie unsere Beispielseite in der Crawlee-Dokumentation für eine Vielzahl zusätzlicher Anwendungsfälle und Demonstrationen.
Warum ist Crawlee die bevorzugte Wahl für Web Scraping und Crawling?
Crawlee ist Open Source und läuft überall, aber da es von Apify entwickelt wurde, ist es einfach, es auf der Apify-Plattform einzurichten und in der Cloud auszuführen. Besuchen Sie die Apify SDK-Website, um mehr über die Bereitstellung von Crawlee auf der Apify-Plattform zu erfahren.
Wenn Sie einen Fehler oder ein Problem mit Crawlee finden, reichen Sie bitte ein Problem auf GitHub ein. Bei Fragen können Sie diese auf Stack Overflow oder in den GitHub-Diskussionen stellen oder unserem Discord-Server beitreten.
Ihre Code-Beiträge sind willkommen und Sie werden für die Ewigkeit gelobt! Wenn Sie Verbesserungsvorschläge haben, reichen Sie entweder ein Problem ein oder erstellen Sie eine Pull-Anfrage. Die Beitragsrichtlinien und den Verhaltenskodex finden Sie unter CONTRIBUTING.md.
Dieses Projekt ist unter der Apache-Lizenz 2.0 lizenziert – Einzelheiten finden Sie in der LIZENZ-Datei.