Web Scraping

Web Scraping

Der Begriff Screen Scraping (engl., etwa: „Bildschirm auskratzen“) umfasst generell alle Verfahren zum Auslesen von Texten aus Computerbildschirmen. Gegenwärtig wird der Ausdruck jedoch beinahe ausschließlich in Bezug auf Webseiten verwendet (daher auch Web Scraping). In diesem Fall bezeichnet Screen Scraping speziell die Technologien, die der Gewinnung von Informationen durch gezieltes Extrahieren der benötigten Daten dienen.

Inhaltsverzeichnis

Einsatzgebiete

Suchmaschinen und Web-Mining

Suchmaschinen verwenden sogenannte Crawler zum Durchsuchen des World Wide Web, zur Analyse von Webseiten und Sammeln von Daten, wie RSS-Feeds oder E-Mail-Adressen. Screen Scraping Verfahren werden auch beim Web-Mining angewandt.

Ersatz von Web Services

Um den Abruf und die Weiterverarbeitung von Informationen aus Webseiten für den Kunden deutlich zu erleichtern, hat der Anbieter des Seiteninhalts (auch Content-Anbieter) die Möglichkeit, die Daten nicht nur in Form einer (menschenlesbaren) Webseite darzustellen, sondern sie zusätzlich in einem maschinenlesbaren Format (etwa XML) aufzubereiten. Gezielt abgefragte Daten könnten dem Kunden dadurch als Web Service zur automatisierten Weiterverarbeitung zur Verfügung gestellt werden.

Häufig hat der Content-Anbieter jedoch kein Interesse an dem mechanisierten Abruf seiner Daten bzw. der automatisierten Nutzung seines Dienstes (insbesondere bzgl. spezieller Funktionen, die ausschliesslich realen Nutzern vorbehalten sein sollten), oder die Errichtung eines Web Service wäre mit zu hohen Kosten verbunden und daher unwirtschaftlich. In solchen Fällen kommt häufig das Screen Scraping zum Einsatz, um die gewünschten Daten dennoch aus der Webseite zu filtern.

Erweitertes Browsen

Screen Scraping kann zum Einsatz kommen, um den Browser um weitere Funktionen auszustatten oder bisher umständliche Vorgänge zu vereinfachen. So können Anmeldevorgänge bei Foren automatisiert oder Dienste einer Webseite abgerufen werden, ohne dass der Nutzer die Webseite besuchen muss, sondern etwa über eine Browser-Symbolleiste.

Eine einfache Form von derartigen Screen Scrapern stellen Bookmarklets dar.

Remixing

Remixing ist eine Technik, die zu den Web 2.0 Anwendungen gezählt wird. Hierbei werden Webinhalte verschiedener Dienste zu einem neuen Dienst verbunden (Siehe auch Mashup). Wenn keine offenen Programmierschnittstellen zur Verfügung stehen, muss hier ebenfalls auf Screen Scraping Mechanismen zurückgegriffen werden.

Missbrauch

Screen Scraping Techniken können jedoch auch missbraucht werden, indem Inhalte fremder Webseite gegen den Willen des Anbieters kopiert und auf einem eigenen Server angeboten werden.

Funktionsweise

Screen Scraping besteht im Wesentlichen aus zwei Schritten:

  • Abrufen von Webseiten
  • Extraktion der relevanten Daten

Abrufen von Webseiten

Statische Webseiten

Idealerweise befinden sich die interessanten Daten auf einer Webseite, die über eine URL abgerufen werden kann. Alle für den Abruf der Informationen benötigten Parameter werden über URL-Parameter (Query-String) übergeben. In diesem einfachen Fall wird einfach die Webseite heruntergeladen und die Daten mit einem geeigneten Mechanismus extrahiert.

Formulare

In vielen Fällen werden die Parameter durch Ausfüllen eines Formulars abgefragt. Technisch gesehen wird hier ein POST-Request erzeugt. Die Parameter werden nicht in der URL (die in diesem Fall immer gleich bleibt) übergeben, sondern im Nachrichtenkörper.

Personalisierte Webseiten

Viele Webseiten enthalten personalisierte Informationen. Das Hypertext Transfer Protocol (HTTP) bietet jedoch keine native Möglichkeit, Anfragen einer bestimmten Person zuzuordnen. Um eine bestimmte Person wiederzuerkennen, muss die Serveranwendung auf HTTP aufgesetzte Sitzungskonzepte verwenden. Eine häufig genutzte Möglichkeit ist die Übertragung von Session-IDs durch die URL oder durch Cookies. Diese Sitzungskonzepte müssen von einer Screen Scraping Anwendung unterstützt werden.

Datenextraktion

Ein Programm zur Extraktion von Daten aus Webseiten wird auch Wrapper genannt.

Nachdem die Webseite heruntergeladen wurde, ist es für die Extraktion der Daten zunächst wichtig, ob der genaue Ort der Daten auf der Webseite bekannt ist (etwa zweite Tabelle, dritte Spalte).

Wenn dies der Fall ist, stehen für die Extraktion der Daten verschiedene Möglichkeiten zur Verfügung. Man kann zum einen die heruntergeladenen Webseiten als Zeichenketten interpretieren und etwa mit regulären Ausdrücken die gewünschten Daten extrahieren.

Wenn die Webseite XHTML-konform ist, bietet sich die Nutzung eines XML-Parsers an. Für den Zugriff auf XML gibt es zahlreiche unterstützende Technologien (SAX, DOM, XPath, XQuery). Oft werden die Webseiten jedoch lediglich im (möglicherweise sogar fehlerhaften) HTML-Format ausgeliefert, welches nicht dem XML-Standard entspricht. Mit einem geeigneten Parser lässt sich unter Umständen dennoch ein XML-konformes Dokument herstellen. Alternativ kann das HTML vor dem Parsen mit HTML Tidy bereinigt werden. Manche Screen Scraper verwenden eine eigens für HTML entwickelte Anfragesprache.

Ein Kriterium für die Güte der Extraktionsmechanismen ist die Robustheit gegenüber Änderungen an der Struktur der Webseite. Hierfür sind fehlertolerante Extraktionsalgorithmen erforderlich.

In vielen Fällen ist die Struktur der Webseite jedoch unbekannt (etwa beim Einsatz von Crawlern). Datenstrukturen wie etwa Kaufpreisangaben oder Zeitangaben müssen dann auch ohne feste Vorgaben erkannt und interpretiert werden.

Architektur

Zentralisierte Architektur

Ein Screen Scraper kann auf einem speziellem Web-Server installiert sein, der in regelmäßigen Abständen oder auf Anfrage die geforderten Daten abruft und seinerseits in aufbereiteter Form anbietet. Dieses serverseitige Vorgehen kann jedoch unter Umständen rechtliche Probleme mit sich ziehen und vom Content-Anbieter auch leicht durch Blockieren der Server-IP verhindert werden.

Verteilte Architektur

Beim verteilten Vorgehen werden die Informationen direkt vom Client abgerufen. Je nach Anwendung werden die Informationen in einer Datenbank gespeichert, an andere Anwendungen weitergegeben oder aufbereitet im Browser angezeigt. Die verteilte Architektur kann nicht nur schwieriger blockiert werden, sondern skaliert auch besser.

Anbieterseitige Abwehrmaßnahmen

Viele Content-Anbieter haben kein Interesse an einem isolierten Abrufen bestimmter Informationen. Grund dafür kann sein, dass sich der Anbieter durch Werbeeinblendungen finanziert, die durch Screen Scraping leicht gefiltert werden können. Zudem könnte der Content-Anbieter ein Interesse daran haben, den Benutzer zu einer bestimmten Navigationsreihenfolge zu zwingen. Um diese Interessen zu gewährleisten, gibt es verschiedene Strategien.

Kontrolle des Benutzerverhaltens

Der Server zwingt den Benutzer durch Verwenden von Session-IDs zu einer bestimmten Navigationsreihenfolge. Beim Aufruf der Verkehrslenkungsseite des Webangebotes wird eine temporär gültige Session-ID erzeugt. Diese wird über die URL, versteckte Formularfelder oder durch Cookies übertragen. Wenn ein Nutzer oder ein Bot durch einen Deep Link auf die Seite stößt, kann er keine gültige Session-ID vorweisen. Der Server leitet ihn dann auf die Verkehrslenkungsseite um. Diese Strategie verwendet beispielsweise eBay, um Deep Links auf Auktionslisten zu verhindern. Ein speziell programmierter Screen Scraper kann sich jedoch zunächst eine gültige Session-ID holen und dann die gewünschten Daten herunterladen.

Das folgende Beispiel zeigt einen JavaScript basierten Screen Scraper, der die von eBay benutzte Strategie umgeht. Es lädt sich zunächst die Hauptseite herunter, extrahiert mit einem Regulären Ausdruck eine gültige URL (in diesem Fall die Liste der Auktionen, bei denen Disketten ersteigert werden) und öffnet diese im Browser.

function EbayScraper() {
   req = new XMLHttpRequest();
   req.open(’GET’, ’http://computer.ebay.de’, false);
   req.send(null);
   var regex = new RegExp(’http:\/\/computer\.listings\.ebay\.de\/Floppy-Zip-Streamer_Disketten_[a-zA-Z0-9]*’);
   window.location = req.responseText.match(regex);
}

Neben der Zweckentfremdung von Session-IDs gibt es weitere Möglichkeiten, das Benutzerverhalten zu überprüfen:

  • Kontrolle des Referrers zur Abwehr von Deep Links
  • Kontrolle, ob in die Seite eingebettete Elemente (Grafiken etc.) zeitnah heruntergeladen werden
  • Kontrolle, ob JavaScript-Elemente ausgeführt werden

Alle diese Methoden beinhalten jedoch gewisse Problematiken, etwa weil Referrer-Angaben nicht zwingend sind, weil eingebettete Elemente möglicherweise von einem Proxy oder aus dem Cache geliefert werden oder weil der Anwender schlichtweg die Anzeige von Grafiken oder das Ausführen von JavaScript deaktiviert hat.

Unterscheiden zwischen Mensch und Bot

Der Server versucht vor dem Ausliefern der Daten zu erkennen, ob es sich beim Client um einen Menschen oder um einen Bot handelt. Eine häufig eingesetzte Methode dafür ist die Verwendung von Captchas. Dabei wird dem Client eine Aufgabe gestellt, die für Menschen möglichst einfach, für eine Maschine jedoch sehr schwer lösbar ist. Dies kann etwa eine Rechenaufgabe sein, oder das Abtippen von Buchstaben, die in Form einer Grafik angeboten wird. Captchas werden vorwiegend gegen das automatische Registrieren von Bots für bestimmte Dienste wie Foren angewendet. StudiVZ etwa verwendet Captchas jedoch auch, um das automatische Abrufen von Profilen anderer Mitglieder zu verhindern. Hierzu muss der Nutzer nach einer bestimmten Anzahl von Aktionen ein Captcha lösen.

Theoretisch lassen sich jedoch für alle Captchas auch Bots entwickeln, die diese lösen können, so dass dieser Schutz umgangen werden kann. Des Weiteren besteht die Möglichkeit die Aufgabe an Menschen weiterzugeben, so dass dieser das Captcha für die Maschine löst.

Verschleierung

Die Informationen werden in für Maschinen nicht oder nur schwer lesbarer Form angeboten. Etwa als Grafik, in Flash-Animationen oder Java-Applets. Allerdings leidet hierunter häufig die Gebrauchstauglichkeit.

Zur Verschleierung der Daten kann auch JavaScript zum Einsatz kommen. Diese Methode wird vor allem auch gegen E-Mail-Harvester eingesetzt, die E-Mail-Adressen zur Versendung von Spam sammeln. Die eigentlichen Daten werden nicht im HTML-Code übertragen, sondern werden erst durch JavaScript in die Webseite geschrieben. Die Daten können zusätzlich verschlüsselt übertragen und erst beim Anzeigen der Seite entschlüsselt werden. Mit Hilfe eines Obfuscators kann der Programmcode verschleiert werden, um die Entwicklung eines Screen Scrapers zu erschweren.

Einfaches Beispiel zur Verschleierung einer E-Mail-Adresse mit JavaScript (ohne Verschlüsselung):

 function mail() {
    var name = "mail";
    var domain = "example.com";
    var mailto = 'mailto:' + name + '@' + domain;
    document.write(mailto);
 }

Erstellung von Screen Scrapern

Im umständlichsten Fall muss jemand, der einen Screen Scraper für eine bestimmte Aufgabe benötigt, selber Hand anlegen und ihn programmieren. Mithilfe von Toolkits lassen sie sich jedoch auch ohne Programmierkenntnisse erstellen. Für die Implementierungsform des Screen Scrapers gibt es verschiedene Möglichkeiten, etwa als Bibliothek, als Proxy-Server oder als eigenständiges Programm.

Anwendungen

Piggy Bank ist eine vom Simile-Projekt am MIT entwickelte Erweiterung für Firefox. Mit ihr lassen sich Verknüpfungen von Diensten verschiedener Anbieter realisieren. Es erkennt automatisch auf einer Webseite angebotene RDF-Ressourcen. Diese können gespeichert, verwaltet und mit anderen Diensten (etwa geographische Informationen mit Google Maps) kombiniert werden. Bietet die Webseite keine RDF-Ressourcen an, gibt es auch die Möglichkeit JavaScript- oder XSLT-basierte Screen Scraper zu verwenden.

Eine bekanntere Firefox-Erweiterung ist Greasemonkey. Sie erlaubt es dem Nutzer eigene JavaScript-Dateien im Browser auszuführen, die das Erscheinungsbild und Verhalten der angezeigten Webseite individualisieren können, ohne einen Zugriff auf die eigentliche Webseite zu benötigen. Dadurch ist es beispielsweise möglich, Webseiten um Funktionen zu erweitern, Fehler in der Darstellung zu beheben, Inhalte von anderen Webseiten einzubinden und wiederkehrende Aufgaben automatisch zu erledigen.

A9 von Amazon ist ein Beispiel für eine zentralisierte Remix-Architektur. A9 kann Suchergebnisse aus verschiedenen Webdiensten wie Windows Live, Wikipedia, answers.com und vielen anderen in einem Fenster anzeigen.

Rechtliche Probleme

Beim Scraping von Webseiten fremder Anbieter muss auf die Einhaltung der Urheberrechte geachtet werden, vor allem wenn die Inhalte über ein eigenes Angebot eingebunden werden. Eine rechtliche Grauzone ist dagegen das Anbieten von Programmen, die ein clientseitiges Screen Scraping ermöglichen. Einige Anbieter verbieten das automatische Auslesen von Daten auch explizit in den Nutzungsbedingungen[1].

Ein weiteres Problem stellt unter Umständen das Ausblenden von Informationen dar, etwa von Werbung oder rechtlich relevanten Informationen wie Disclaimer, Warnungen oder gar die automatische Bestätigung der AGB durch den Screen Scraper, ohne dass der Nutzer diese zu Gesicht bekommt.

Siehe auch

Literatur

Quellen

  1. StudiVZ AGB http://www.studivz.net/l/terms Ziffer 5.4.3

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужна курсовая?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Web scraping — (sometimes called harvesting) generically describes any of various means to extract content from a website over HTTP for the purpose of transforming that content into another format suitable for use in another context. Those who scrape websites… …   Wikipedia

  • Web scraping — Le Web scraping (parfois appelé Harvesting) décrit généralement en informatique un moyen d extraire du contenu d un site Web, via un script ou un programme, dans le but de le transformer ou de changer son format pour permettre son utilisation… …   Wikipédia en Français

  • Web-scraping software comparison — This article provides a basic feature comparison for several types of web scraping software. Additional feature details are available from the individual products websites and/or articles. This article is not all inclusive or necessarily up to… …   Wikipedia

  • Web integration — is leveraging the enormous success of the Web Browser to access services and information on the Web. The services can for example include lookup in news archives, searching cheap flights and ordering cinema tickets, even editing Wikipedia.… …   Wikipedia

  • Web crawler — For the search engine of the same name, see WebCrawler. For the fictional robots called Skutters, see Red Dwarf characters#The Skutters. Not to be confused with offline reader. A Web crawler is a computer program that browses the World Wide Web… …   Wikipedia

  • Scraping — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. Web scraping, l extraction du contenu d un site Web, Scrappage, une méthode de renaturation de sols par enlèvement d une couche de terre. Catégorie :… …   Wikipédia en Français

  • web scraper — /ˈwɛb skreɪpə/ (say web skraypuh) noun Computers an application which automatically collects data from a website and stores it in a local database or spreadsheet. Compare screen scraper. Also, web harvester. –web scraping, noun …  

  • Web 2.0 — beta. El término Web 2.0 está asociado a aplicaciones web que facilitan el compartir información, la interoperabilidad, el diseño centrado en el usuario y la colaboración en la World Wide Web. Ejemplos de la Web 2.0 son las comunidades web, los… …   Wikipedia Español

  • Web feed — Common web feed icon A web feed (or news feed) is a data format used for providing users with frequently updated content. Content distributors syndicate a web feed, thereby allowing users to subscribe to it. Making a collection of web feeds… …   Wikipedia

  • Web 1.0 — multipleissues notability = May 2008 cleanup = September 2008Web 1.0 is a retronym which refers to the state of the World Wide Web, and any website design style used before the advent of the Web 2.0 phenomonon. It is the general term that has… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”