Wie baut man zeitsparend einen Web-Crawler?
Viele Unternehmen setzen auf die Funktionalitäten von Web-Crawler. Doch worum handelt es sich dabei und muss die Integration eines solchen immer mit hohem Zeitaufwand und Kosten verbunden sein?
Genau vor dieser Frage sind wir gestanden, als uns einer unserer Kunden nach einer Lösung zum automatisierten Auslesen von Webseiten Daten gefragt hat. Zunächst glaubten wir nicht daran, dass wir diese Herausforderung kosten- und zeitsparend bewältigen können. Auf der Suche nach einer einfachen und unkomplizierten Lösung sind wir auf die passende Technologie gestoßen: dexi.io
Dexi ist ein SaaS-Dienst, der es ermöglicht Daten-Crawling für Webseiten über eine intuitive, grafische Oberfläche zu konfigurieren und diese Crawler zu gewünschten Uhrzeiten ausführen zu lassen. Durch Dexi ist es möglich, das Beschaffen der Daten von unterschiedlichen Webseiten einfach und visuell zu konfigurieren. Diese Daten können über API einfach abgefragt und verwendet werden.
Was ist eigentlich Crawling und wie komme ich an die Daten?
Grundsätzlich muss man hier zwischen zwei Begriffe unterscheiden: Crawling und Scraping.
Crawling ist im eigentlichen Sinne nur das durchlaufen oder "durchkriechen" - wie sich aus der Übersetzung entnehmen lässt - von Webseiten. In den meisten Fällen werden solche Crawler für die Indexierung von Webseiten verwendet — wie das zum Beispiel Google macht.
Beim Scraping handelt es sich um eine Art der Datenbeschaffung, bei der automatisiert Webseiten durchlaufen und die gewünschten Daten aus der Webseite ausgelesen werden. Diese Daten können daraufhin abgeändert und weiterverarbeitet werden. Somit ist Scraping für das Auslesen der Daten zuständig und Crawling nur für das durchlaufen der Webseiten. Der Einfachheit halber wird in diesem Artikel jedoch nur von Crawling gesprochen.
Crawler selbst programmieren
Wie man sich eventuell vorstellen kann Bedarf es einem enormen zeitlichen Aufwand für unterschiedliche Webseiten derartige Crawler zu programmieren, da die auszulesenden Seiten nicht immer gleich aufgebaut sind. Zwar hat man bei der eigenen Programmierung mehr Kontrolle über den Prozess, dennoch ist der Aufwand in den meisten Fällen zu groß um mit wenig Zeit groß zu skalieren.
Um den Prozess des Durchstöberns so einfach wie möglich zu gestalten, können in Dexi einzelne Crawler über eine übersichtliche, visuelle Oberfläche konfiguriert werden. Dabei ist weder tiefes Programmier-Know-How erforderlich, noch ist das Einarbeiten in Dexi kompliziert und man findet sich sehr schnell zurecht.
Features, Features und Features
Dexi ist mit einer enormen Anzahl an Features und Funktionen ausgestattet. Diese Funktionalitäten unterstützen den Benutzer bei der Erstellung eines Crawlers und verringern zusätzlich den damit verbunden Zeitaufwand. Hier sind die wichtigsten Features von Dexi zusammengefasst:
- Konfiguration über intuitive UI
- Anbindung von Drittanbietern und Plugins (ab dem "Professional" Abonnement verfügbar)
- Nutzerverwaltung
- Request-Blocking
- Crawler-Debugging
- Execution-Scheduling
- parallele Crawler Ausführungen (ab dem "Professional" Abonnement verfügbar)
- schneller Kundensupport mit Unterstützung beim Erstellen von Crawlern
- Möglichkeit Daten mittels Code auszulesen
- ...
Wie haben wir Dexi in unser System integriert?
Ohne ein gut durchdachtes Konzept seines Anwendungsfalles kommt man mit Dexi alleine auch nicht weit. Es ist somit sehr wichtig zu verstehen, wie man diese Technologie in seine eigene Software integrieren kann. Folgendermaßen haben wir Dexi in unsere Software integriert:
Die erstellten Crawler können automatisch zu unterschiedlichen Zeiten oder manuell gestartet werden. Im Falle unseres Kunden werden die Daten der Webseiten von Dexi in der Nacht ausgelesen. Jede Ausführung eines Crawlers wird durch eine eindeutige Identifikationsnummer gekennzeichnet, mit der sich die ausgelesenen Daten über eine von Dexi bereitgestellte Schnittstelle auslesen lassen. Über diese eindeutige Nummer kann man die Ausführung und dessen ausgelesene Daten einem Kunden in unserer Applikation zuweisen. Die gecrawlten Daten werden von unserer Anwendung täglich zur selben Uhrzeit automatisiert ausgelesen und in unsere Anwendung direkt eingespielt. Hurra, wir haben Daten aus dem Internet in unser System integriert 🎉
Zeit und Kosten
Mithilfe von Dexi haben wir es geschafft die Dauer für die Integrierung einer Webseite auf wenige Stunden zu reduzieren. Müssten wir die Crawler selbst programmieren, würde das pro neue Webseite in der Zeit nicht möglich sein.
Die einzige Komponente, die selbst programmiert werden muss ist das Verwerten der gecrawlten Daten. Dieser Aufwand muss in beiden Fällen mit einberechnet werden.
Momentan verwenden wir Dexi mit dem "Standard" Abonnement, welches monatliche Kosten von ca. 120€ mit sich zieht. Diese Kosten hören sich im ersten Moment viel an, rechnet man sie jedoch gegen den zeitlichen Aufwand, den man bei der eigenen Implementierung benötigt, so zahlt sich ein Dexi Abonnement in den meisten Fällen aus. Zumal sich der Support und die Unterstützung von Dexi als schnell und hilfsbereit erweist. Außerdem ist es viel einfacher möglich, mit Dexi wirklich schnell neue Webseiten anzubinden, da dies einfach über die schon oben gezeigte visuelle Benutzeroberfläche möglich ist.
Fazit
Web-Crawling muss nicht zwingend mit viel zeitlichem Aufwand verbunden sein, sondern kann durch einen Drittanbieter wie Dexi um ein vielfaches vereinfacht werden. Mit dem richtigen Konzept dahinter können die Daten dann in das bestehende System schnell und unkompliziert integriert werden. In Zukunft sollte man sich also überlegen, ob es sich auszahlt Web-Crawling selbst zu implementieren oder das den Profis zu überlassen. Die zeitlichen Ersparnisse sprechen für sich.