Headless Crawling


Headless Crawling bezeichnet das automatisierte Durchsuchen des Internets sowie einzelner Domains mithilfe eines Headless Browsers – dies ist ein Web Browser ohne grafische Benutzeroberfläche. Headless Crawling umfasst zahlreiche Ansätze und Methoden, um Daten zu extrahieren, zu speichern, zu analysieren und weiter zu verarbeiten. Websites, Webanwendungen und einzelne Funktionen von Websites können zudem automatisiert getestet und überprüft werden. Headless Crawling beinhaltet thematische Überschneidungen mit Themen wie Information Retrieval, Data Mining, Web Scraping sowie Test Automation.

Allgemeine Informationen zum Thema

Bis vor einiger Zeit empfahl Google den Einsatz eines Headless Browsers, um dynamische Websites crawlen zu können. Die Betreiber mussten einen HTML-Screenshot ihrer Website zur Verfügung stellen, damit Google den dortigen Content auslesen und zuordnen konnte. Das sogenannte AJAX Crawling Scheme ist ein mittlerweile veraltetes Muster, das nicht mehr verwendet wird. Stattdessen werden die Webinhalte unabhängig von der verwendeten Technologie samt Endgerät, Browser und Internetverbindung bereitgestellt, was als Progressive Enhancement bezeichnet wird.[1] Headless Crawling ist im Grunde ein Teil einer jeden Suchmaschine: Inhalte aus dem WWW werden durchsucht, aber nicht vollständig gerendert beziehungsweise einem Nutzer grafisch dargestellt.

Was mit den entdeckten Daten geschieht, ist eine Frage des Ansatzes. Jedenfalls wird vermutet, dass Googles Suchmaschine bereits seit 2004 die Kapazitäten des Headless Crawlings ausnutzt und dass JavaScript seit Oktober 2015 kein Problem mehr darstellt. Suchmaschinen können Headless Crawling zur Bewertung von Websites verwenden: Insofern als der Crawler den Aufruf einer Website mit einem nicht grafischen Interface simuliert, können Suchmaschinen Schlüsse aus diesen Daten ziehen und Websites anhand ihres Verhaltens in dem Headless Browser bewerten.[2]

Funktionsweise

Im Zentrum des Headless Crawling steht der Headless Browser – ein Programm, das Webinhalte ausliest, an andere Programme weitergibt oder textbasiert in Form von Dateien, Listen und Matrizen darstellt. Diese Art von Browsern verschafft sich Zugang zu Websites, indem sie in eine Server-Infrastruktur implementiert wird. Optional kann auch ein Virtueller Server oder ein Proxy-Server benutzt werden. Von dort versucht der Headless Browser eine URL aufzurufen; dies ist der Startpunkt des Crawling-Prozesses, der über die Kommandozeile oder einen Skriptbefehl initiiert wird.[3] Je nach Konfiguration können nun weitere URLs vom Browser gefunden werden. Auch die dort hinterlegten Inhalte können verarbeitet werden – selbst die Ausgabe von Linkpositionen auf der Website ist möglich. Dafür ist jedoch häufig eine API-Schnittstelle notwendig, die die Daten an das verarbeitende Programm überträgt.

Das Besondere am Headless Crawling ist die Machine-to-Machine-Communication (M2M): Sowohl aufgerufene URLs, als auch gefundene Webinhalte werden nicht einem Endnutzer dargestellt, wie es bei herkömmlichen Browsern der Fall ist. Vielmehr leitet der kopflose Browser die gefundenen Daten in Formaten weiter, die zwar vorab definiert werden müssen, aber später automatisch verarbeitet werden können. Der Headless Browser kann bei umfangreicher Implementation meist mit unterschiedlichen Programmiersprachen umgehen, Scripte verarbeiten und dank API mit anderen Programmen oder Infrastrukturen per HTTP-Anfrage oder TCP kommunizieren. Dieses Prinzip wird häufig dazu verwendet, große Mengen von Daten zu extrahieren – was letztlich die Frage aufwirft, inwiefern das Sammeln und Verarbeiten der Daten legal ist. Es können prinzipiell Urheberrechte, Datenschutzvereinbarungen und die Privatsphäre der Nutzer verletzt werden.[4] Das gilt auch für Preisvergleichsportale, Suchmaschinen und Anbieter von Meta-Suchen.

Praxisbezug

Das Headless Crawling kommt nicht nur bei Suchmaschinen zum Einsatz, sondern auch bei anderen Nutzungsszenarien. Zwei Beispiele:

  • Test Automation: Das Testen von Websites, Website-Elementen und Funktionen ist ein üblicher Anwendungsfall des Headless Crawlings. Auf diese Weise können Broken Links, Redirects, interaktive Elemente sowie einzelne Komponenten (Units) und Module auf ihre Funktion hin überprüft werden. Auch Performance-Eigenschaften und die Generierung von Website-Inhalten aus Datenbanken lassen sich testen. Mit einer umfangreichen Implementation können Websites relativ umfassend und vor allem automatisiert getestet werden. Somit gehen Testszenarien, die mit Headless Crawling arbeiten, weit über das bloße Testen eines Systems hinaus – wo es um Abstürze, Systemfehler und unerwünschtes Verhalten geht. Das Testing mit Headless Crawling ist inhaltlich eher dem Acceptance Testing nahe, da der Headless Browser das Verhalten von Websites aus Nutzersicht simulieren kann und zum Beispiel auch Links anklickt.[5] Jedoch sind für diese Szenarien auch fundierte Programmier- und Skriptkenntnisse erforderlich. Weil das Testen entweder im Kundenauftrag oder mit einem ausgewählten Testobjekt erfolgt, dessen Rechte beim Website-Betreiber liegen, ist die Test Automation beim Headless Crawling in den meisten Fällen rechtlich unbedenklich. Bekannte Headless Browser mit Framework (API, Programmiersprachen-Unterstützung oder DOM-Handling) sind Selenium, PhatnomJS oder HTMLUnit. In der Regel verwenden Headless Browser eine Layout-Engine, die auch in herkömmlichen Browsern und Suchmaschinen-Crawlern integriert ist. Beispiele für Layout-Engines sind Webkit, Gecko oder Trident.
  • Web Scraping: Scraping ist eine Crawling-Technik, bei der Daten für eine weitere Verwendung extrahiert und aggregiert werden. Mitunter werden große Datenmengen aus einer oder mehreren Quellen gesammelt, ausgelesen und verarbeitet. Scraping kann schadhaft sein und wird bei vielen Nutzungsszenarien als Black-Hat- oder Cracker-Technik eingestuft. Denial of Service (DoS) und Distributed Denial of Service (DDoS) Attacken verwenden das Prinzip des Headless Crawlings als Zugang zu einem Webservice oder einer Webanwendung.[6] Häufig kommen weitere, teils illegale Methoden zum Einsatz, um zum Beispiel die IP-Adresse zu verschleiern (IP Spoofing), von der eigentlichen Attacke auf das Netzwerk abzulenken oder sich in die Kommunikation zwischen Server und mehreren Clients mittels TCP einzuschleichen (Hijacking).

Bedeutung für die Suchmaschinenoptimierung

Das Headless Crawling ist ein wichtiger Aspekt in der Suchmaschinenoptimierung. Wie bereits erwähnt, wird das Prinzip (höchstwahrscheinlich) von verschiedenen Suchmaschinen verwendet, um Websites und Webanwendungen zu crawlen – auch wenn das AJAX Crawling Scheme veraltet ist. Google empfiehlt an unterschiedlichen Stellen der Qualitätsrichtlinien die Nutzung eines textbasierten Browsers wie Lynx, um Websites so darzustellen, wie Google sie sieht. Es kann vermutet werden, dass die Kapazitäten von Google und anderen Suchmaschinen weit über das hinausgehen, was textbasierte Browser leisten und was offiziell kommuniziert wird. Dementsprechend wäre es durchaus sinnvoll, sich eingehend mit dem Headless Crawling zu beschäftigen. Denn mit diesem Prinzip können Websites umfassend getestet werden – und mit dieser Perspektive können SEOs einen Blick hinter die Kulissen der Suchmaschinenbetreiber wagen, ohne den Nutzer aus den Augen zu verlieren.

Einzelnachweise

  1. Deprecating our AJAX crawling scheme googlewebmastercentral.blogspot.de. Abgerufen am 26.01.2016
  2. Just How Smart Are Search Robots? moz.com. Abgerufen am 26.01.2016
  3. Design of a Crawler for Online Social Networks Analysis wseas.org. Abgerufen am 26.01.2016
  4. Is Web Scraping Illegal? Depends on What the Meaning of the Word Is Is. resources.distilnetworks.com. Abgerufen am 26.01.2016
  5. Headless Functional Testing with Selenium and PhantomJS code.tutsplus.com. Abgerufen am 26.01.2016
  6. Headless browsers: legitimate software that enables attack itproportal.com. Abgerufen am 26.01.2016

Weblinks