Architektur von Suchmaschinen: Crawler
In den beiden vorhergehenden Artikeln zur Architektur von Suchmaschinen sind wir bereits auf zwei Module des Webcrawler Systems eingegangen. Das waren zum einen die Datenspeichermodule, bestehend aus Dokumentenindex und Repository und zum anderen die Verarbeitungsmodule Scheduler und Storeserver. In diesem Beitrag kommen wir nun zu den Protokollmodulen, die aus den einzelnen Crawlern bestehen.
Die Crawler sind für die modernen Suchmaschinen von zentraler Bedeutung. Es kommt ja auch nicht von ungefähr, dass sie namensgebend für das Webcrawler-System sind. Sie sind das einzige Element der Suchmaschinen, das außerhalb ihres Systems arbeitet; sie stellen sozusagen die Verbindung nach außen dar. Das macht sie doppelt bedeutend, zum einen für die Suchmaschinen selbst, denn sie sind auf ein gutes Funktionieren ihrer Crawler angewiesen und darauf, dass diese die vorhanden Seiten optimal erfassen. Zum anderen sollten auch Website-Betreiber und SEOs die Funktionsweise der Crawler kennen, um sicherzustellen, dass die eigene Seite den Crawlern ideale Bedingungen bietet, um sie zu erfassen.
Funktionsweise der Crawler
Wie bereits erwähnt sind die Crawler die einzigen Komponenten, die außerhalb des Systems der Suchmaschine arbeiten. Sie sind dazu da, möglichst alle Internetseiten zu besuchen und dort Informationen zu sammeln. Diese Aufgabe erledigen sie vollautomatisch, weshalb sie nicht ohne Grund auch Robots oder einfach Bots genannt werden. Außerdem finden sich noch Namen wie Spider oder Webwanderer/Webcrawler.
Die Crawler selbst sind allerdings eher dumm. Das sieht man leicht daran, dass Websites genau auf die relativ begrenzten Möglichkeiten der Crawler angepasst sein müssen, um ideal erfasst werden zu können. Denn sie sind selbstverständlich nicht in der Lage, auf jedes mögliche Problem angemessen zu reagieren und sich den Weg selbst zu suchen, wie das ein menschlicher Nutzer kann. Auf dieses Problem und seine Lösung sind wir u.a. in unserem Beitrag zu den XML-Sitemaps eingegangen. Dennoch ist das Crawling insgesamt ein hoch komplizierter Prozess, an dem alle in unserer Reihe zur Architektur von Suchmaschinen vorgestellten Komponenten ihren Anteil haben.
Ihre Befehle, oder besser Aufträge, welche URL die Crawler besuchen sollen, erhalten sie vom Scheduler. Dazu signalisiert der Crawler dem Scheduler, dass er frei für neue Aufgaben ist, woraufhin er die aus dem Dokumentenindex entnommene URL erhält. Dann wird zunächst ein HTTP-Request an die betreffende IP-Adresse gesendet. Hierzu wird die URL mittels DNS-Abfrage in eine IP-Adresse umgewandelt. Damit dies nicht unnötig Zeit und Ressourcen kostet, haben die Crawler einen (temporären) DNS-Cache, wodurch sie DNS-Abfragen nur noch stellen müssen, wenn die abgefragte URL dort nicht bereits gespeichert ist. Auch dies wird noch vom Scheduler überwacht und gesteuert. Allein hier wird schon deutlich, dass es sich um einen recht komplexen Vorgang handelt. Mit Hilfe der GET-Methode erhält der Crawler dann Antwort vom jeweiligen Server mit den Dokumentdaten und einigen Header- und Meta-Informationen. Der Crawler meldet diese Daten dann direkt weiter an den Storeserver, selbstverständlich auch, wenn er in der entsprechenden Zeit keine Antwort erhalten hat. So können dann neue Seiten oder Veränderungen an bereits indexierten Websites be- und vermerkt werden.
Neue Websites finden die Crawler allerdings in der Regel durch das selbstständige Durchforsten des Internets.
Sie besuchen verschiedene Websites und durch Verlinkungen auf diese gelangen sie auf weitere Seiten. Stoßen sie dabei auf eine neue URL, wird dies im Storeserver bemerkt, der ja die Informationen von den Crawlern erhält, sodass eine neues Dokument im Dokumentenindex angelegt wird.
Dieses automatisierte Auffinden neuer Websites ist für den Erfolg der Suchmaschinen enorm wichtig, um bei dem ständig wachsenden Angebot an Inhalten im WWW auf dem neuesten Stand zu bleiben. Ebenso wichtig ist dabei aber auch die bereits indexierten Seiten regelmäßig zu crawlen, um Veränderungen zu bemerken. Allein für den Crawling-Prozess an sich wird schon eine riesige Rechen- bzw. Serverleistung benötigt, um die unzähligen Crawler zu betreiben. Mittlerweile gibt es auch spezialisierte Crawler, die zum Beispiel mit Flash-Animationen oder PDF-Dateien umgehen können.
Ich hoffe, wir konnten Ihnen mit unserer kleinen Reihe über das Webcrawler-System, welches die Suchmaschinen in unterschiedlicher Ausführung verwenden, die Technik näher bringen. Das Verständnis von dem relativ technischen Prozess des Crawlings wird Ihnen bei der Optimierung Ihrer Seite auf jeden Fall weiterhelfen. Die nächsten Beiträge zur Architektur von Suchmaschinen werden sich nun mit den weiteren Funktionen der Suchmaschinen beschäftigen, die nach der Datengewinnung zum Einsatz kommen.