21 Punkte von GN⁺ 2024-07-11 | 2 Kommentare | Auf WhatsApp teilen
  • Crawlee ist eine Python-Bibliothek für Web-Scraping und Browser-Automatisierung
  • Hilft dabei, schnell zuverlässige Crawler zu erstellen
  • Kann für die Datenextraktion für AI, LLM, RAG und GPT verwendet werden
  • Kann Dateien wie HTML, PDF, JPG und PNG von Websites herunterladen
  • Funktioniert mit BeautifulSoup, Playwright und reinem HTTP
  • Unterstützt sowohl den Headful- als auch den Headless-Modus
  • Bietet Proxy-Rotation

Funktionen

  • Einheitliche Schnittstelle für HTTP- und Headless-Browser-Crawling
  • Führt automatisches paralleles Crawling auf Basis der verfügbaren Systemressourcen aus
  • In Python mit Type Hints geschrieben, was die IDE-Autovervollständigung verbessert und Bugs reduziert
  • Automatische Wiederholungsversuche bei Fehlern oder wenn eine Blockierung auftritt
  • Integrierte Proxy-Rotation und Session-Management
  • Konfigurierbares Request-Routing – leitet URLs direkt an den passenden Handler weiter
  • Persistente Queue für zu crawlende URLs
  • Plugin-fähiger Storage sowohl für tabellarische Daten als auch für Dateien
  • Leistungsfähige Fehlerbehandlung

Unterschiede zu Scrapy

  • Crawlee unterstützt standardmäßig Headless-Browser-Crawling mit Playwright
  • Einfache und elegante Schnittstelle – ein Scraper lässt sich mit weniger als 10 Zeilen Code einrichten
  • Vollständige Unterstützung von Type Hints
  • Basiert auf Standard-Asyncio

Meinung von GN⁺

  • Crawlee wirkt wie ein leistungsfähiges Tool für Web-Scraping und Crawling. Besonders die standardmäßige Unterstützung für Headless-Browser-basiertes Crawling erscheint als großer Vorteil.
  • Durch die einfache Schnittstelle und den geringen Codeumfang scheint sich die Produktivität zu erhöhen. Außerdem verbessert der konsequente Einsatz von Type Hints die Developer Experience und senkt die Wahrscheinlichkeit von Fehlern.
  • Für Projekte, die Crawling zur Datenextraktion benötigen, ist Crawlee eine ernsthafte Überlegung wert. Insbesondere wenn Web-Seiten gecrawlt werden müssen, die JavaScript-Rendering erfordern, dürfte PlaywrightCrawler nützlich sein.
  • Wenn jedoch sehr groß angelegtes Crawling erforderlich ist oder Echtzeitfähigkeit wichtig ist, kann es besser sein, Scrapy oder andere Tools mit Unterstützung für verteiltes Crawling zu verwenden.
  • Es ist außerdem ratsam, vor dem Einsatz Crawling-Richtlinien und rechtliche Fragen sorgfältig zu prüfen.

2 Kommentare

 
yangeok 2024-07-15

Ich wusste, dass es Node unterstützt, aber offenbar jetzt auch Python. Wenn es ein Scraper ist, der kontinuierlich gewartet werden muss, sollte man ernsthaft darüber nachdenken, ein Framework zu verwenden, haha.

 
GN⁺ 2024-07-11
Hacker-News-Kommentare
  • Es ist wichtig, bestehende Funktionen zu dokumentieren. Egal wie großartig eine Web-Scraping-Plattform ist, wenn nur ihre Entwickler sie verstehen, ist sie nutzlos

    • Zum Beispiel ist die Bedeutung von tiered_proxy_urls: list[list[str]] | None = None schwer zu verstehen
    • Beispiele sollten zeigen, wie man alle Daten findet und herunterlädt, etwa Tabellen im Format .csv oder .xlsx
    • Einfach nur Text abzurufen und URLs zu durchsuchen kann jeder
    • Es braucht ein Beispiel, das 1000 verschiedene Einträge parst und über unterschiedliche Endpunkte 3–5 Arten von Einträgen abruft
    • Es ist unklar, ob dieses Tool ein Framework oder ein Automatisierungswerkzeug ist
    • Ich frage mich, ob es Web-Scraping-Opt-out-Protokolle unterstützt, z. B. robots.txt, HTTP- und Content-Tags. Das ist besonders seit der DSM-Richtlinie der EU wichtig
  • Danke an Apify/Crawlee. Als langjähriger Node.js-Nutzer hat diese Bibliothek für mich am besten funktioniert

  • Ich bin bei der Suche nach einem Stack für ein Projekt auf Crawlee gestoßen. Ich wollte eigentlich eine Python-Bibliothek, habe aber Crawlee mit Typescript verwendet und das Projekt in einer Woche abgeschlossen

    • Die API ist viel besser als jede Python-Scraping-API, die ich bisher verwendet habe
    • Durch die Integration mit Playwright ist das Programmiererlebnis sehr angenehm
    • Das Arbeiten mit frontend-gerenderten Websites und das Abfangen modifizierter XHR-Antworten funktioniert gut
    • Ich plane, mit der Apify-Plattform zu skalieren
  • Ich frage mich, worin der Unterschied zu Scrapy besteht

  • Ich frage mich, warum man von anderen Bibliotheken wechseln sollte. Ich habe meinen eigenen Crawler gebaut, konnte aber nichts besonders Einzigartiges finden

  • Der moderne Python-Code sieht gut aus

    • Im Beispielcode sieht const data = await crawler.get_data() wie Javascript aus. Es scheint, als fehle der Unterstrich
  • Ich schlage vor, mehr Code-Snippets aus den Testfällen als Dokumentationsbeispiele zu übernehmen. Gute Arbeit

  • Scraping-Tools sind immer willkommen. Ich werde es in einem privaten Projekt ausprobieren. Dank KI fühlt sich Scraping derzeit an, als würde man in einem Goldrausch Schaufeln verkaufen