www.wikidata.de-de.nina.az
Der Begriff Screen Scraping engl etwa am Bildschirm schurfen umfasst generell alle Verfahren zum Auslesen von Texten aus Computerbildschirmen Gegenwartig wird der Ausdruck jedoch beinahe ausschliesslich in Bezug auf Webseiten verwendet daher auch Web Scraping oder Web Harvesting In diesem Fall bezeichnet Screen Scraping speziell die Techniken die der Gewinnung von Informationen durch gezieltes Extrahieren der benotigten Daten dienen Inhaltsverzeichnis 1 Einsatzgebiete 1 1 Suchmaschinen und Web Mining 1 2 Ersatz von Web Services 1 3 Erweitertes Browsen 1 4 Remixing 1 5 Missbrauch 2 Funktionsweise 2 1 Abrufen von Webseiten 2 1 1 Statische Webseiten 2 1 2 Formulare 2 1 3 Personalisierte Webseiten 2 2 Datenextraktion 3 Architektur 3 1 Zentralisierte Architektur 3 2 Verteilte Architektur 4 Anbieterseitige Abwehrmassnahmen 4 1 Kontrolle des Benutzerverhaltens 4 2 Unterscheiden zwischen Mensch und Bot 4 3 Verschleierung 5 Erstellung von Screen Scrapern 6 Anwendungen 7 Programmierbibliotheken 8 Rechtliche Probleme 9 Siehe auch 10 Literatur 11 Weblinks 12 EinzelnachweiseEinsatzgebiete BearbeitenSuchmaschinen und Web Mining Bearbeiten Suchmaschinen verwenden sogenannte Crawler zum Durchsuchen des World Wide Web zur Analyse von Webseiten und Sammeln von Daten wie Web Feeds oder E Mail Adressen Screen Scraping Verfahren werden auch beim Web Mining angewandt Ersatz von Web Services Bearbeiten Um den Abruf und die Weiterverarbeitung von Informationen aus Webseiten fur den Kunden deutlich zu erleichtern hat der Anbieter des Seiteninhalts auch Content Anbieter die Moglichkeit die Daten nicht nur in Form einer menschenlesbaren Webseite darzustellen sondern sie zusatzlich in einem maschinenlesbaren Format etwa XML aufzubereiten Gezielt abgefragte Daten konnten dem Kunden dadurch als Webservice zur automatisierten Weiterverarbeitung zur Verfugung gestellt werden Haufig hat der Content Anbieter jedoch kein Interesse an dem mechanisierten Abruf seiner Daten bzw der automatisierten Nutzung seines Dienstes insbesondere bezuglich spezieller Funktionen die ausschliesslich realen Nutzern vorbehalten sein sollten oder die Errichtung eines Web Service ware mit zu hohen Kosten verbunden und daher unwirtschaftlich In solchen Fallen kommt haufig das Screen Scraping zum Einsatz um die gewunschten Daten dennoch aus der Webseite zu filtern Erweitertes Browsen Bearbeiten Screen Scraping kann zum Einsatz kommen um den Browser mit weiteren Funktionen auszustatten oder bisher umstandliche Vorgange zu vereinfachen So konnen Anmeldevorgange bei Foren automatisiert oder Dienste einer Webseite abgerufen werden ohne dass der Nutzer die Webseite besuchen muss sondern etwa uber eine Browser Symbolleiste Eine einfache Form von derartigen Screen Scrapern stellen Bookmarklets dar Remixing Bearbeiten Remixing ist eine Technik bei der Webinhalte verschiedener Dienste zu einem neuen Dienst verbunden werden siehe auch Mashup Wenn keine offenen Programmierschnittstellen zur Verfugung stehen muss hier ebenfalls auf Screen Scraping Mechanismen zuruckgegriffen werden Missbrauch Bearbeiten Screen Scraping Techniken konnen jedoch auch missbraucht werden indem Inhalte fremder Webseiten gegen den Willen des Anbieters kopiert und auf einem eigenen Server angeboten werden Funktionsweise BearbeitenScreen Scraping besteht im Wesentlichen aus zwei Schritten Abrufen von Webseiten Extraktion der relevanten DatenAbrufen von Webseiten Bearbeiten Statische Webseiten Bearbeiten Idealerweise befinden sich die interessanten Daten auf einer Webseite die uber eine URL abgerufen werden kann Alle fur den Abruf der Informationen benotigten Parameter werden uber URL Parameter Query String siehe GET Request ubergeben In diesem einfachen Fall wird einfach die Webseite heruntergeladen und die Daten werden mit einem geeigneten Mechanismus extrahiert Formulare Bearbeiten In vielen Fallen werden die Parameter durch Ausfullen eines Webformulars abgefragt Dabei werden die Parameter oft nicht in der URL ubergeben sondern im Nachrichtenkorper POST Request Personalisierte Webseiten Bearbeiten Viele Webseiten enthalten personalisierte Informationen Das Hypertext Transfer Protocol HTTP bietet jedoch keine native Moglichkeit Anfragen einer bestimmten Person zuzuordnen Um eine bestimmte Person wiederzuerkennen muss die Serveranwendung auf HTTP aufgesetzte Sitzungskonzepte verwenden Eine haufig genutzte Moglichkeit ist die Ubertragung von Session IDs durch die URL oder durch Cookies Diese Sitzungskonzepte mussen von einer Screen Scraping Anwendung unterstutzt werden Datenextraktion Bearbeiten Ein Programm zur Extraktion von Daten aus Webseiten wird auch Wrapper genannt Nachdem die Webseite heruntergeladen wurde ist es fur die Extraktion der Daten zunachst wichtig ob der genaue Ort der Daten auf der Webseite bekannt ist etwa zweite Tabelle dritte Spalte Wenn dies der Fall ist stehen fur die Extraktion der Daten verschiedene Moglichkeiten zur Verfugung Man kann zum einen die heruntergeladenen Webseiten als Zeichenketten interpretieren und etwa mit regularen Ausdrucken die gewunschten Daten extrahieren Wenn die Webseite XHTML konform ist bietet sich die Nutzung eines XML Parsers an Fur den Zugriff auf XML gibt es zahlreiche unterstutzende Techniken SAX DOM XPath XQuery Oft werden die Webseiten jedoch lediglich im moglicherweise sogar fehlerhaften HTML Format ausgeliefert welches nicht dem XML Standard entspricht Mit einem geeigneten Parser lasst sich unter Umstanden dennoch ein XML konformes Dokument herstellen Alternativ kann das HTML vor dem Parsen mit HTML Tidy bereinigt werden Manche Screen Scraper verwenden eine eigens fur HTML entwickelte Anfragesprache Ein Kriterium fur die Gute der Extraktionsmechanismen ist die Robustheit gegenuber Anderungen an der Struktur der Webseite Hierfur sind fehlertolerante Extraktionsalgorithmen erforderlich In vielen Fallen ist die Struktur der Webseite jedoch unbekannt etwa beim Einsatz von Crawlern Datenstrukturen wie etwa Kaufpreisangaben oder Zeitangaben mussen dann auch ohne feste Vorgaben erkannt und interpretiert werden Architektur BearbeitenZentralisierte Architektur Bearbeiten Ein Screen Scraper kann auf einem speziellen Webserver installiert sein der in regelmassigen Abstanden oder auf Anfrage die geforderten Daten abruft und seinerseits in aufbereiteter Form anbietet Dieses serverseitige Vorgehen kann jedoch unter Umstanden rechtliche Probleme mit sich ziehen und vom Content Anbieter auch leicht durch Blockieren der Server IP verhindert werden Verteilte Architektur Bearbeiten 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 Abwehrmassnahmen BearbeitenViele Content Anbieter haben kein Interesse an einem isolierten Abrufen bestimmter Informationen Grund dafur kann sein dass sich der Anbieter durch Werbeeinblendungen finanziert die durch Screen Scraping leicht gefiltert werden konnen Zudem konnte der Content Anbieter ein Interesse daran haben den Benutzer zu einer bestimmten Navigationsreihenfolge zu zwingen Um diese Interessen zu gewahrleisten gibt es verschiedene Strategien Kontrolle des Benutzerverhaltens Bearbeiten Der Server zwingt den Benutzer durch Verwenden von Session IDs zu einer bestimmten Navigationsreihenfolge Beim Aufruf der Verkehrslenkungsseite des Webangebotes wird eine temporar gultige Session ID erzeugt Diese wird uber die URL versteckte Formularfelder oder durch Cookies ubertragen Wenn ein Nutzer oder ein Bot durch einen Deep Link auf die Seite stosst kann er keine gultige 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 zunachst eine gultige Session ID holen und dann die gewunschten Daten herunterladen Das folgende Beispiel zeigt einen JavaScript basierten Screen Scraper der die von eBay benutzte Strategie umging Es lud sich zunachst die Hauptseite herunter extrahierte mit einem regularen Ausdruck eine gultige URL in diesem Fall die Liste der Auktionen bei denen Disketten ersteigert werden und offnete 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 Moglichkeiten das Benutzerverhalten zu uberprufen Kontrolle des Referrers zur Abwehr von Deep Links Kontrolle ob in die Seite eingebettete Elemente Grafiken etc zeitnah heruntergeladen werden Kontrolle ob JavaScript Elemente ausgefuhrt werdenAlle diese Methoden beinhalten jedoch gewisse Problematiken etwa weil Referrer Angaben nicht zwingend sind weil eingebettete Elemente moglicherweise von einem Proxy oder aus dem Cache geliefert werden oder weil der Anwender schlichtweg die Anzeige von Grafiken oder das Ausfuhren von JavaScript deaktiviert hat Unterscheiden zwischen Mensch und Bot Bearbeiten Der Server versucht vor dem Ausliefern der Daten zu erkennen ob es sich beim Client um einen von einem Menschen benutzen Browser oder um einen Bot handelt Eine haufig eingesetzte Methode dafur ist die Verwendung von Captchas Dabei wird dem Client eine Aufgabe gestellt welche fur Menschen moglichst einfach fur eine Maschine jedoch sehr schwer losbar ist Dies kann eine Rechenaufgabe oder das Abtippen von Buchstaben sein wobei oft die Schwierigkeit fur die Maschine im Erkennen der Aufgabe liegt Dies kann z B erreicht werden indem die Rechenaufgabe nicht als Text sondern als Bild ubermittelt wird Captchas werden fur bestimmte Online Dienste wie Foren Wikis Downloadseiten oder Online Netzwerke eingesetzt etwa gegen automatisches Registrieren automatisches Ausspahen von Profilen anderer Nutzer sowie automatische Downloads durch Bots Mitunter muss ein Client erst nach einer bestimmten Anzahl von Aktionen ein Captcha losen Theoretisch lassen sich fur alle Captchas auch Bots entwickeln die diese Aufgaben auf Basis von Optical Character Recognition Extraktion der Aufgabe aus einem Bild losen konnen so dass dieser Schutz umgangen werden kann Des Weiteren besteht die Moglichkeit die Teilaufgabe an einen Menschen weiterzugeben so dass dieser das Captcha fur die Maschine lost Beides bedeutet jedoch einen erheblichen Mehraufwand fur den Botbetreiber Verschleierung Bearbeiten Die Informationen werden in fur Maschinen nicht oder nur schwer lesbarer Form angeboten Etwa als Grafik in Flash Animationen oder Java Applets Allerdings leidet hierunter haufig 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 ubertragen sondern werden erst durch JavaScript in die Webseite geschrieben Die Daten konnen zusatzlich verschlusselt ubertragen und erst beim Anzeigen der Seite entschlusselt 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 Verschlusselung function mail var name info var domain example com var mailto mailto name domain document write mailto Erstellung von Screen Scrapern BearbeitenJe nach Komplexitat der Aufgabe muss ein Screen Scraper neu programmiert werden Mithilfe von Toolkits lassen sich Screen Scraper jedoch auch ohne Programmierkenntnisse erstellen Fur die Implementierungsform gibt es verschiedene Moglichkeiten etwa als Bibliothek als Proxy Server oder als eigenstandiges Programm Anwendungen BearbeitenPiggy Bank war eine vom Simile Projekt am MIT entwickelte Erweiterung fur Firefox Mit ihr liessen sich Verknupfungen von Diensten verschiedener Anbieter realisieren Es erkannte automatisch auf einer Webseite angebotene RDF Ressourcen Diese konnten gespeichert verwaltet und mit anderen Diensten etwa geographische Informationen mit Google Maps kombiniert werden Piggy Bank wird nicht mehr angeboten Als Ersatz bietet sich Selenium 1 an womit man einen Web Browser wie Firefox programmatisch steuern kann Eine weitere bekannte Firefox Erweiterung ist Greasemonkey Sie erlaubt es dem Nutzer eigene JavaScript Dateien im Browser auszufuhren die das Erscheinungsbild und Verhalten der angezeigten Webseite individualisieren konnen ohne einen Zugriff auf die eigentliche Webseite zu benotigen Dadurch ist es beispielsweise moglich 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 fur eine zentralisierte Remix Architektur A9 kann Suchergebnisse aus verschiedenen Webdiensten wie Windows Live Wikipedia answers com und vielen anderen in einem Fenster anzeigen Programmierbibliotheken BearbeitenProgrammierkundige nutzen oft Skriptsprachen fur massgeschneiderte Screenscraping Projekte Fur Python etwa gibt es die Programmbibliothek Beautiful Soup 2 die den Umgang mit real existierendem HTML erleichtert Ebenfalls auf Python basiert die domanenspezifische Sprache redex Regular Document Expressions 3 von Marcin Wojnarski die speziell fur das Webscraping geschaffen wurde und die Lucke zwischen den praktischen aber kleinteiligen regularen Ausdrucken und der machtigen aber sehr rigiden XPath Syntax schliessen soll 4 Rechtliche Probleme BearbeitenBeim Scraping von Webseiten fremder Anbieter muss auf die Einhaltung der Urheberrechte geachtet werden vor allem wenn die Inhalte uber ein eigenes Angebot eingebunden werden Eine rechtliche Grauzone ist dagegen das Anbieten von Programmen die ein clientseitiges Screen Scraping ermoglichen Einige Anbieter verbieten das automatische Auslesen von Daten auch explizit in den Nutzungsbedingungen 5 Ein weiteres Problem stellt unter Umstanden das Ausblenden von Informationen dar etwa von Werbung oder rechtlich relevanten Informationen wie Disclaimer Warnungen oder gar die automatische Bestatigung der AGB durch den Screen Scraper ohne dass der Nutzer diese zu Gesicht bekommt Siehe auch BearbeitenWebintegrationLiteratur BearbeitenMax Volkel Extraktion von XML aus HTML Seiten PDF 2 6 MB 2003 Markus Weissmann Vergleich von Wrappersystemen PDF 276 kB 2002 Gerald Huck Peter Fankhauser Karl Aberer Erich Neuhold Jedi Extracting and Synthesizing Information from the Web PDF 140 kB 1998 englisch Ling Liu Carlton Pu and Wei Han XWRAP An XMLenabled Wrapper Construction System for Web Information Sources 2000 englisch Weblinks BearbeitenData extraction for Web 2 0 Screen scraping in Ruby Rails Memento vom 15 August 2010 im Internet Archive englisch Screen scraping with WWW Mechanize englisch Einzelnachweise Bearbeiten Selenium Website Homepage der Python Bibliothek Beautiful Soup Referenzimplementierung von redex in der Python Bibliothek nifty Erwahnung von redex auf der Global Open Access List am 9 Oktober 2014 StudiVZ AGB Ziffer 5 4 3 Abgerufen von https de wikipedia org w index php title Screen Scraping amp oldid 223219074