Gut, dann freue ich mich,
Sie heute hier begrüßen zu dürfen zum Workshop,
Crawling und Scraping mit R und Python.
Ich werde gleich was zum zeitlichen Ablauf sagen.
Die Veranstaltung wird aufgezeichnet, also Teile der Veranstaltung werden aufgezeichnet,
werde ich im Zeitplan dann auch sozusagen mit erwähnen.
Und dann werde ich noch was zu den Zielen des Workshops sagen, genau.
Vorab vielleicht noch, ich habe in einem Git-Repository der Uni Hamburg
Die Folien und Code-Snippets zur Lösung der Aufgaben bereitgestellt.
Die Aufgaben finden sich dann im zweiten Folienteil,
also 0-2-Präsentationen-Anwendung. Genau. Das nur vorab.
Und dann würde ich sagen, wie wir jetzt vorgehen.
Ich hatte da viel rumüberlegt, aber mich da jetzt dafür entschieden.
Zunächst möchte ich in einem methodischen Teil die
theoretischen Hintergründe beschreiben und sozusagen einen theoretischen Einblick geben
Und in einem zweiten Teil, also wir würden dann sozusagen,
ich würde dann jetzt ungefähr eine Stunde vortragen.
Danach ist Zeit für Rückfragen. Gerne, also so 15 Minuten,
30 Minuten. Und dann würden wir eine Pause machen.
Und danach würde ich dann die Aufgabenstellung präsentieren,
drei Stück, die wir dann bearbeiten.
Das wird nicht aufgezeichnet. Und dann würde ich nochmal
die Lösung vorstellen, was wir wieder aufzeichnen würden.
Und danach wäre Zeit auch mitgebracht,
die Ideen zu diskutieren oder noch die vierte Aufgabenstellung zu bearbeiten,
die ich auch noch vorbereitet habe
Genau, also so viel zum Ablauf.
Sie können natürlich auch gern während des Vortrags Rückfragen stellen.
Dann zu dem Ziel des Vortrags. Also mir geht es
jetzt nicht darum, hier sozusagen einen Experten-Workshop zum Thema zu machen.
Es soll vielmehr darum gehen,
Ihnen die Mittel an die Hand zu geben,
grundlegende Einschätzungen in dem Bereich durchzuführen und sozusagen eigene Projekte
zu planen oder da dran zu arbeiten
Also es soll sozusagen jetzt nicht ausschließlich an Experten gerichtet sein,
sondern auch vielleicht für Einsteiger, die sich mit dem Thema
beschäftigen wollen und da sozusagen dann einen ersten Einstieg geben.
Leider kann ich nicht sozusagen jetzt einen Programmiergrundkurs machen.
Das ist natürlich schon sehr sinnvoll, wenn man
sozusagen da so ein paar Kenntnisse im Vorhinein gesammelt hat.
Genau. Und vielleicht nochmal so ein bisschen um das Thema
ein bisschen abzugrenzen. Es soll insbesondere um Scraping und Calling
in Bezug auf Webquellen gehen
Man könnte sich sicher auch noch andere Quellen vorstellen,
aber ich denke, das ist so der relevanteste Bereich der Forschung.
Ja, zur Gliederung würde ich, habe ich mir Folgendes überlegt.
Zunächst möchte ich eine kleine Motivation geben, warum es sinnvoll
sein kann, sich damit zu beschäftigen mit dem Thema.
Ich möchte dann im nächsten Schritt auf technische Grundlagen eingehen,
hier insbesondere die relevanten Protokolle und Beschreibungsformate
zumindest ansprechen
Und ja, erklären. Und da sozusagen auch die relevanten Protokolle oder ja,
Abfragesprachen erklären. Und dann kurz auch was zu Webbrowsern sagen,
weil die sozusagen auch sehr wichtig sind,
wenn man scrapt und crawlt, also Webquellen sich anschaut,
weil im aktuellen,
ja,
im aktuellen Umfeld eigentlich alles mit Webbrowsern erstmal angesteuert wird und
sich darauf natürlich dann auch die Seiten spezialisiert haben oder
die Server speziell
Haben. Dann möchte ich auf das Quelling und Crawling und Scrapping
als Methoden eingehen. Hier insbesondere erklären, was ist das und
welche typischen Aufgabenstellungen gilt es zu bewältigen. Ich lege da
jetzt nicht so sehr den Fokus auf die Softwareentwicklung.
Allerdings ist es sinnvoll, sich diese theoretischen Aspekte,
bevor man irgendwie anfängt, Software zu schreiben, klarzumachen,
um sozusagen auch wirklich sehr definiert sagen zu können,
was eine Software leisten muss
Sinnvoll, sich das klarzumachen, bevor man Software schreibt.
Also genau. Und dann möchte ich auf die aktuellen Rahmenbedingungen
eingehen. Hier sind insbesondere die rechtlichen Anforderungen sehr wichtig.
Da kamen jetzt kürzlich erst ein Rechtsgutachten raus zu dem Thema,
das ich vorstellen möchte. Und dann möchte ich aber auch noch
aufs Projektmanagement oder aktuelle Entwicklung in Bezug auf große Plattformen eingehen.
Und zum Schluss nochmal ein Fazit ziehen.
Und ich habe noch ein paar Projekte mitgebracht für Leute,
die interessiert sind
Dann kommen wir zunächst zur Motivation. Ja,
Crawling und Scraping werden zunehmend relevanter für die Forschung.
Dadurch, dass viele Inhalte und Links öffentlich zugänglich sind.
Hier reden wir über verschiedenste Formen,
die sozusagen verschiedene Web-Quellen, die möglich sind.
Es geht um Web-Auftritte, auch frei verfügbare statistische Daten.
Nicht alle sozusagen über Programmierschnittstellen zu erreichen,
auch zum Teil nur über Crawling und Scrapping
zu erreichen
News-Seiten, Blogs, Kommentare, auch Video- und Tonaufnahmen werden zunehmend relevante.
Oder auch wissenschaftliche Veröffentlichungen, Veröffentlichungen generell. Genau. Und
da hat man es dann oft mit PDFs zu tun oder anderen Formaten.
Zunächst möchte ich ein paar Forschungsbeispiele geben, wo Scraping in
der Forschung benutzt wurde. Sehr prominent ist, glaube ich,
die größere Studie von Gary King und anderen, die bestimmte Ja,
Social-Media-Services gescraped haben, 1400 schreiben sie in ihrer Publikation.
Und da das jeweils sozusagen zu verschiedenen Zeitpunkten und geguckt haben,
inwieweit bestimmte Kommentare oder Posts zensiert wurden.
Und in dem Paper wird leider nicht so genau darauf eingegangen,
wie sie genau dabei vorgegangen sind,
insbesondere da sie das Problem hatten, dass wenn man sozusagen erklärt,
wie man an die Daten kam, natürlich Gegenmaßnahmen getroffen würden.
Und 1400, ja, Verschiedene Services natürlich auch ein Problem,
dadurch, dass sie ja heterogen sein können.
Also kann man vermuten, dass es sich da um sehr ähnliche Services gehandelt hat.
Aber genaueres weiß ich da jetzt leider auch nicht. Wie gesagt,
ich werde jetzt auch bei den Forschungsbeispielen nur auf den Titlescraping
und Calling eingehen, nicht so sehr auf die Forschungsinhalte.
Da bin ich auch nicht der Expert.
Dann das zweite Beispiel war in Schweden, das Flashback-Forum.
Da ging es darum, die Kommentare und Posts herunterzuladen
Das war möglich, dadurch, dass das sehr standardisiert war und
eine große Menge an Nutzern sozusagen dieses Forum benutzt hat.
Und ist sozusagen ein sehr großes Forum war, bei dem
man sozusagen dann, ja, es recht einfach hatte.
Aber auch da wird jetzt nicht im Detail die Methode erklärt.
Das, glaube ich, generell so ein Punkt,
ganz speziell werden sozusagen da auch nicht die Zugangswege immer dargestellt.
Die nächsten drei Beispiele sind Squapy-Projekte. Squapy ist ein
großes Framework zum Callen und Scrapen in Python.
Und die sind alle drei mit dieser Software vorgegangen.
Die ersten beiden sind auch Open-Source verfügbar. Im ersten Beispiel
Jan Kinne und Jana Achsenbach-Beck ging es da um 5-Webseiten in Deutschland
zu scrapen. Hier haben sie die 2,4 Millionen 5 Seiten
Den Aufbau dieser Seiten analysiert. Insbesondere die Linkstrukturen, die
auf diesen Seiten bestehen, genau. Und ähnliches ist im nächsten Projekt,
das an der Science-Pool in Paris am Media Lab,
da ist ein Tool gebaut worden, Hype,
um ja auch Verlinkungen in Webseiten sichtbar zu machen und analysieren zu können.
Und das fünfte Beispiel ist hier an der Uni Hamburg,
Michael Prüggemann, der insbesondere über RSS-Feeds,
aber auch über Scrapping und Crawling bestimmte News-Seiten erfasst und
da insbesondere interessiert ist an Inhalten zum Klimawandel
Ähm, genau. Und auch Systematsche erfasst weltweit.
Dann das sechste Beispiel, da ging es darum,
das Archiv der jungen Freiheit zu squapen.
Da wurde meiner Kenntnis nach ein Erstquapper für eingesetzt.
Im letzten Projekt, das ist spannend, weil das ist recht neu.
Algorithmens Expose nennt sich das. Da wird insbesondere mit Browser-Plugins
vorgegangen, also sozusagen nochmal eine andere Art zu scrapen.
Da werden Browser-Plugins eingesetzt, Inhalte zu gelangen.
Genau das waren jetzt Beispiele, die ich gefunden habe.
Es könnte bestimmt noch, es wird bestimmt noch weitere geben.
Wie gesagt, eine subjektive Auswahl. Aber es ist insbesondere sinnvoll,
glaube ich, auch in die Publikation zu gucken,
diese Techniken wirklich einsetzen.
Und generell sind natürlich die Herausforderungen dabei,
dass Inhalte häufig nicht standardisiert abrufbar sind,
mehrere verschiedenen strukturierte Quellen
auch jeweils existieren
Die Bereitstellungsstellungsstrukturen dynamisch sind. Das heißt,
Webseiten ändern sich, was natürlich dann mehr Aufwand bedeutet,
da die vorherigen Möglichkeiten daran zu kommen, nicht mehr vorhanden sind.
Es gibt vertragsrechtlich Datenschutzrechtlich und urheberrechtliche Vorgaben, die zu beachten sind.
Und zum Teil wird auch verhindert, dass gescraped und gecrawlt
wird, was natürlich auch ein Problem darstellt.
Und zunehmend am Kommen und da sehe ich auch eigentlich nur die Möglichkeit,
sozusagen zu den Nutzern zu gehen beim Scrapen,
geht es darum,
personalisierten Inhalt
Ja, damit umzugehen, weil letztlich dann bestimmte Nutzer,
nur bestimmte Inhalte auch präsentiert bekommen. Genau. Also es
ist insbesondere in den großen Plattformen ein Problem und ja.
Dann würde ich jetzt zu den technischen Grundlagen kommen,
hier gibt es verschiedene Protokolle, die wir uns anschauen müssen,
auf die ich jetzt zuerst eingehen will.
Die in der Informationstechnologie wird häufig Das OSI-Modell genutzt,
um prinzipiell theoretisch Kommunikation zwischen Systemen zu beschreiben.
Wobei auch dieses Modell so gewisse Grenzen hat.
Und wir werden uns insbesondere anschauen das HTTP-Protokoll,
das auf der obersten Stufe im OSI-Modell steht, also auf der Anwendungsschicht.
Und man kann sich so vorstellen,
dass unten das Übertragungsmedium häufig Kabel,
aber mittlerweile auch andere Möglichkeiten Steht und verschiedene Protokolle auf verschiedenen Ebenen zum Einsatz kommen und ineinander greifen.
Und das HTTP-Protokoll ist sozusagen schon sehr abstrakt. Arbeit auf einer
sehr abstrakten Ebene und in dem Modell wird davon ausgegangen,
dass wenn man runtergeht, sozusagen die Abstraktion verliert.
Wobei das, ja, auch das Modell ist umstritten
und stellt sicherlich nicht sämtliche Aspekte dar,
die da zu betrachten sind
Auch relevant jetzt für unseren Fall ist natürlich,
dass häufig das TCP-Protokoll, das insbesondere zum Einsatz kommt,
um überhaupt Pakete verlustfrei übertragen zu können oder auch das IP-Protokoll,
also Internetprotokoll, das sozusagen einfach nur dafür da ist,
um die Information an die richtige Stelle zu liefern.
Darunter liegen natürlich noch weitere Schichten, die man sich anschauen kann.
Aber für unsere Zwecke reicht es eigentlich,
sich mit dem HTTP, HTTPS ist eine Erweiterung,
da würde sozusagen Verschlüsselung noch reinkommen,
Genau. Und generell kann man sagen,
das Protokoll ist in der Schicht Anwendung, das hatte ich schon gesagt,
ist ein sehr etabliertes Protokoll und wird auch recht selten geändert für,
ja, wenn man sich sozusagen bestimmte Protokolle anschaut,
ist sozusagen, das wird so viel genutzt,
dass Änderungen auch sehr schwierig sind und lange brauchen.
Es baut auf dem TCP-Protokoll auf, habe ich erklärt.
Und die Funktionsweise ist eigentlich so,
dass man sich es immer so vorstellen kann,
dass es einen Client gibt,
einen Server gibt Und eine Anfrage immer so abläuft,
dass eine Anfrage gestellt wird und mit einer Antwort darauf geantwortet wird vom Server.
Also der Klein stellt eine Anfrage, der Server kriegt diese Anfrage,
verarbeitet diese Anfrage und gibt sozusagen dann eine Antwort.
Auf diese Anfrage. Und da gibt es dann verschiedene Parameter,
die in der Anfrage angegeben werden können.
Es gibt verschiedene Arten von Anfragen, also Get-Anfrage,
eine Post-Anfrage, dass sozusagen wie die Anfrage strukturiert ist und
wie die Antwort dann auch aussieht
Es gibt verschiedene Statuscodes, also wenn eine Anfrage gestellt wird,
kann die sozusagen mit einem Statuscode beantwortet werden.
Das heißt, sagt darüber aus, ob die Inhalte,
die angefragt werden, vorhanden sind oder nicht vorhanden sind.
Und wichtig wäre auch zu sagen, dass HTTTP,
Hyperterminal Transfer Protocol, ein zustandsloses Protokoll ist.
Also der Einsatz von Cookies notwendig ist, damit der Server Anfragen,
die Also Anfragen, die gestellt wurden auf andere Anfragen beziehen kann.
Also sozusagen Zwischenanfragen weiß, wer die Anfrage gestellt hat.
Das erkläre ich gleich noch mal genauer. Genau, so
würde eine Anfrage aussehen. Also man hat sozusagen einen Request-URL,
eine Request-Mathod und bekommt dann einen Status-Kurs zurück und natürlich eine Remote-Adresse,
wo das hingewandert, also wo der Server steht,
die DNS-DNS-Geschichten lasse ich hier mal außen vor.
Da könnte man sicherlich auch noch viel mehr
zu sagen
Einen Request-Header, das hatte ich auch gesagt, das sind sozusagen Parameter,
die an den Server gesendet werden bei einer Anfrage.
Und der Server würde dann eine Response erstellen,
also eine eigentliche Webseite zurückliefern.
Habe ich jetzt unten dargestellt und natürlich auch nochmal einen Response-Header,
sozusagen Eigenschaften,
die beim Verarbeiten der Antwort
zu berücksichtigen sind vom Browser
Bei Cookies hatte ich schon angesprochen. Also hier sehen wir
jetzt beispielhaft so eine Anfrage, die der Client stellt,
die dann beim Server landet und der Server beantwortet dann diese Frage.
Hier würde beispielsweise die Universitätswebseite aufgerufen und dann beantwortet mit
den Responsey, dann Set Cookie.
Das heißt, das ist sozusagen die Aufforderung,
dass der Client dann
den Cookie setzen soll
Und dann würde der Client,
wenn er wieder eine Unterseite auf der Universitätsseite anfragt,
diesen Cookie wieder mitsenden bei der nächsten Anfrage.
Und der Server wüsste dann, um wen es sich gehandelt hat.
Das heißt, man kann sozusagen eine Beziehung herstellen zwischen der
ersten Anfrage und der zweiten Anfrage.
Und damit dann feststellen, wer sozusagen wer ist.
Der Server bekommt natürlich unterschiedliche Anfragen von vielen Nutzern und kann
nur mit sozusagen Cookies eigentlich auseinanderhalten, wer jetzt wer ist.
Ja, das wäre sozusagen die grundlegende Funktionsweise von Cookies.
Dann können wir jetzt noch mal in die Antworten gucken,
genauer, die der Server zurückgibt.
Da gibt es verschiedene Beschreibungsformate für unterschiedliche Inhalte,
die der Server zurückgibt. Zum Beispiel die Webseitenstruktur,
hatte ich schon erwähnt, HTML, dann das Webseiten Layout.
Da ist Cascading Style Sheets, also CSS.
Es gibt ein JavaScript, dass für Webseiten Interaktionen zuständig ist.
Generell gibt es zum Datenaustausch verschiedene Formate. Ich habe hier
mal eins beispielhaft Jason. Ist wahrscheinlich auch bekannt und wird auch häufig beim Webscraping,
ist auch häufig beim Webscraping sehr geeignet, um Inhalte zu repräsentieren.
Und dann gibt es zur internen Repräsentation und Verarbeitung im Browser das Document Object Model,
also es ist ein geordneter Baum, der da verwendet wird,
um HTML-Seiten, die erstmal nur sozusagen in der ATML-Struktur vorliegen,
in der Struktur zu überführen,
die effizienter ist,
um bestimmte Aufgaben zu erledigen
Genau, hier wäre HTML, hier ein Beispiel für CSS.
Für JavaScript, genau. Und es geht jeweils um die Erfüllung bestimmter Unteraufgaben,
also bei HTML, die Struktur, dann das Design,
die Interaktion mit der Webseite und wie gesagt,
das Document Object Model, insbesondere ist insbesondere hilfreich zur Visualisierung,
die dann im Browser stattfindet.
Aber ist für uns beim Scrapen auch interessant,
weil wir dadurch natürlich auch bestimmte Teile der Webseite
sehr effizient auswählen können
Und dafür gibt es XPEV,
also die XML Path Language, die insbesondere dafür,
da ist bestimmte Untermengen in XML-Strukturen zu adressieren,
wobei immer sozusagen die Betrachtung des geordneten Baums dahinter steht.
Und die Grundidee hierbei ist, dass es verschiedene Lokalisierungsschritte gibt,
die man aneinanderhängen kann, um bestimmte Knoten des Baums zu adressieren.
Und diese Lokalisierungsschritte bestehen aus drei Teilen,
zum einen die Achse,
also auf welcher Ebene
Da sich der nächste, der nächste Knoten befindet,
also der Ort relativ zu dem vorherigen Lokalisierungsschritt.
Dann gibt es einen Knotentest, also man will nur bestimmte Knoten auswählen.
Es gibt Prädikate, wo man beliebig viele haben kann,
insbesondere nur bestimmte Knoten auszuwählen.
Wir werden nachher nochmal genauer auf XPEV eingehen,
weil das auch in der praktischen Arbeit dann häufig
sehr wichtig ist,
um bestimmte Teile der Webseite auszuwählen
Der Webbrowser funktioniert, also ich habe das hier sehr stark vereinfacht im realen Umfeld,
komme hier noch wesentlich mehr Schritte hinzu,
weil insbesondere das Ausführen von JavaScript auch noch einige Sicherheitsmechanismen braucht,
die dahinter stehen.
Aber prinzipiell kann man sich so vorstellen,
dass der Browser die gestellten Web-Anfragen verwaltet und abarbeitet und
die Antworten präsentiert und dass die Präsentation machte,
indem er ein Passing durchführt,
also der HTML-Text in ein Document Object Model überführt
Und dann durch kontinuierliches Ausführen von den JavaScript-Funktionen, die auch bereitgestellt wurden vom Server,
die Webseite kontinuierlich weiter visualisiert und Veränderungen an dieser Webseite auch visualisiert.
Und ja, in Bezug aufs Craping ist sehr hilfreich hier,
sich die Entwickler-Tools anzuschauen, also dass wir jetzt das Beispiel für Chrome,
da sieht man auch nochmal die Header und Man kann sich sozusagen aber auch anschauen,
was für Abfragen eigentlich vom Browser gesendet werden,
wenn man eine Webseite besucht.
Also wenn man jetzt hier alle Quellen anschaltet und das vielleicht
nochmal leer macht und die Universitätsseite aufruft,
dann würde man sehen, hier passiert sehr viel im Hintergrund,
hier werden sehr viele Inhalte nachgeladen.
Vieles Bilder, aber auch die Webseite selber.
Und hier sieht man sozusagen auch, welche Cookies die Webseite
beispielsweise will,
dass man sie setzt
Das wäre immer Response, da wäre hier die Aufforderung,
Set Cookie. Gut, und als letzten Punkt,
der interessant ist in Bezug auf Calling und Scraping, ist die Webbrowser-Automatisierung.
Hier ist insbesondere moderne Browserstellen mittlerweile APIs zur Verfügung,
also Programmierschnittstellen, um ein Browser programmatisch steuern zu können
Und da gibt es verschiedene APIs, die existieren,
sehr prominent dürfte sein, die Webtriver, API,
die insbesondere von Silennium benutzt wird.
Sozusagen eine Automatisierungs-Framework, ein Test-Automatisierungsfilm wird. Kommt insbesondere aus
dem Software-Bereich. Ist aber auch für Scrapping und Crawling zunehmend interessant. Genau,
weil bestimmte Webseiten, die Java-Script ausführen, also bestimmte Inhalte,
an die man will, eigentlich nur zugänglich sind,
wenn bestimmtes Java-Script ausgeführt wurde.
Und dazu muss man wirklich dann einen Browser laufen lassen
Deshalb ist es auch notwendig, den Browser dann programmatisch steuern zu können.
Genau, hier gibt es verschiedene APIs. Ich werde jetzt
nicht auf die einzelnen eingehen. Wenn da noch Fragen sind,
können wir da gerne noch mal später drüber reden.
Dann möchte ich kurz noch mal sagen, was eigentlich Crawling und Scraping sind.
Also beim Webcrawling geht es insbesondere darum, bestimmte,
also häufig dann alle Unterseiten einer bestimmten Domain zu downloaden und dabei Links,
die in diesen Seiten vorhanden sind,
wiederum auch zur Verfolgung und
zu downloaden
Das wäre sozusagen Web-Crawling. Beim Scraping geht es eher darum,
eine automatisierte Extraktion bestimmter Inhalte aus den Seiten herauszuziehen.
Und das Scraping erfordert häufig den Download der Webseite. Wir werden sehen,
auch da gibt es Ausnahmen, das muss nicht so sein.
Also muss eigentlich schon sein, aber kann sozusagen auch sehr vermittelt passieren.
Werde ich später noch was zu sagen. Und im Unterschied
zu einer API-Kommunikation, also zu einer Kommunikation mit einer Programmierschnittstelle,
ist die Struktur hier nur häufig nur sehr rudimentär festgelegt.
Also es kann sich um HTML-Seiten handeln. Mehr weiß man
vorher nicht bezüglich der Struktur. Die sehen sehr unterschiedlich aus.
Oder es kann sich um PDFs handeln oder auch um grafische Benutzeroberpflichten.
Also Scraping würde ich jetzt erstmal sehr allgemein sagen.
Es geht darum, spezifische Inhalte zu extrahieren.
Genau. Und wie geht man dabei vor? Na,
es geht darum, bestimmte Teilaufgaben zu erfüllen,
wobei die auch sozusagen nicht nacheinander abgearbeitet werden können
Also nicht alle nacheinander abgearbeitet werden können. Das kommt so
ein bisschen auf das Projekt drauf an. Also häufig geht es erstmal darum,
die relevanten Informationen zu identifizieren und zu selektieren,
also zu bestimmen, was will man genau haben.
Dann geht es darum, eine bestimmte Strategie zu entwickeln,
wie man dann da rankommt.
Meistens kann man ja schon irgendwie an die Informationen,
aber es geht dann eigentlich darum, festzuhalten,
wie genau man das machen will.
Dann geht es darum,
die eigentliche Abfrage zu stellen,
also den HTTP-Request
Oder wie wir ja gesehen haben, könnte man auch
einen Browser automatisieren, der auf eine bestimmte Seite geht.
Und dann geht es im nächsten Schritt,
dass eigentlich der wichtigste Schritt, um die Information zu extraktionen.
Das kann entweder explizit durch X-Pavs, wie wir gesehen haben,
geschehen, oder auch implizit durch Lernen beispielsweise aus vorherigen Daten.
Also wenn man sozusagen, da ist eigentlich gut,
also werde ich gleich noch erklären, wie das implizit funktionieren kann.
Und daraufhin geht es dann um die Aufbereitung häufig der Daten,
weil die meistens sozusagen noch nicht bereinigter Form vorliegen.
Es geht darum, die einzelnen Schritte zu validieren.
Hat man wirklich auch die richtigen Daten erfasst oder vielleicht da auch Fehler,
die dann da auftreten und sozusagen darauf muss man reagieren.
Es geht dann im Hintergrund häufig darum,
bestimmte Abläufe zu generalisieren oder auch bestimmte Fehler dann rauszubekommen,
was auch zum Teil nicht ganz einfach ist,
wenn man sozusagen da auch auf Probleme in der Software stößt
Und die Aufgabenstellung, Dean's Craper erfüllen müsst,
sind so typischerweise viel Skeduling, Jobmanagement. Also insbesondere,
wenn man jetzt parallel Annfragen stellen will oder zu gewissen Zeitpunkten.
Dazu werde ich heute gar nicht so viel sagen.
Aber auch da gibt es sozusagen Aufgaben, die man
sich stellen kann. Dann hatte ich bereits gesagt,
das Passing, also das Umwandeln in ein geeigneteres Format,
ist beim Scraping
sehr wichtig
Es kann sein, um dass man eine bestimmte Textzeitangabe hat
und die jetzt in einen Timestamp überführen will.
Also in ein Format, dass der Computer besser verarbeiten kann.
Oder es geht darum, wie schon gesagt,
die HTML-Seite in einen Baum zu überführen, in den Document Object Model.
Und dann aus diesem Warm bestimmte Knoten auszuwählen,
die man dann mit einem Identifier verknüpft, sozusagen,
dass genau die Informationen, die ich dann haben will.
Das ist so der typische Ablauf bei einem Scraper.
Es kann aber auch, Andere Problembereiche bestehen beispielsweise,
wenn man wissenschaftliche Papers in PDFs vorliegen hat,
dann ist es häufig wichtig, die eine bestimmte semantische Beschreibungssprache zu überführen.
Insbesondere in Strukturen wie Inhalt, Abstract und dann einzelne Teile mit Überschriften.
Und ja, auch da ist es schwierig,
weil die wissenschaftlichen Publikationen sehr unterschiedlich aussehen können,
insbesondere die PDFs und nicht sehr einheitlich sind
Deswegen ist es da sehr hilfreich,
bestimmte Trainingsdaten zu erstellen und dann automatisiert auf diesen Trainingsdaten
diese Überführung der PDF in eine semantische Beschreibungssprache durchzuführen.
Als Beispiel wäre hier Crop-ID, das ist ein Projekt,
das sozusagen so vorgeht und schon sehr ausgereift ist,
also da gerne mal reingucken.
Und dann weitere Aufgaben bestehen in der Anfragen Zwischenspeicherung,
also dem Cashing, der Duplikaterkennung,
also bestimmte Inhalte können häufiger in den Webseiten sein,
das muss man rausfiltern
Es kann um die strukturierte Speicherung gehen, also in Tabellen,
in kleinen Datenbanken oder ja in anderen Strukturen,
auch in Baumstrukturen oder das kommt dann so ein bisschen darauf an,
was man mit diesen Daten machen will.
Dann das Cookie und Session Management,
also sich darum zu kümmern, die Robots TXT sagt,
welche Inhalte gecallt werden dürfen,
also gedownloadet werden dürfen bei einer Webseite.
Und da geht es auch häufig darum,
sich die anzugucken und zu ermitteln,
was man jetzt runterladen darf von der Seite
Bei der Browser-Automatisierung kommen dann noch weitere Problemfelder hinzu.
Hier geht es dann darum, Benutzerinteraktionen zu simulieren.
Eine visuelle Darstellung zu liefern, also Screenshots zu machen.
Oder bestimmtes JavaScript an bestimmten Stellen selbst auszuführen oder zu manipulieren,
das ausgeführte JavaScript zu verändern. Bestimmte Anfragen,
die bei dem Besuch einer Webseite gestellt werden in dem JavaScript,
sich da reinzuhängen und die zu manipulieren.
Es kann aber auch darum gehen, bestimmte Browser-Finger-Prints anzupassen.
Da kann ich jetzt auch nicht auf die Details eingehen
Und dann gibt es noch einen Sonnenfall für Scrapen, würde ich sagen.
Man könnte sich vorstellen, dass man einen Browser-Plugin bei Versuchspersonen installiert.
Und mit diesem JavaScript-Programm dann auf die vom Nutzer geprosten Inhalte zugreift.
Und die sozusagen scraped. Das hätte den Vorteil,
dass die Anfragen von jemand anderem gestellt werden und man sozusagen
dann diese Anfragen aufzeichnen kann.
Technisch sieht das dann aus
wie eine JavaScript-Injection
Aber man muss sozusagen ein Browser-Plugin schreiben und ein Browser-Plugin,
spricht dann vom Browser bereitgeschnellten Brittprogrammierschnittstellen.
Hat also ein gewisses Format im Prinzip.
Dann wäre es das jetzt sozusagen zum Theoretischen,
wie man vorgeht und welche Aufgaben zu erfüllen sind.
Und ich würde zu den Rahmenbedingungen kommen und insbesondere die
rechtlichen Rahmenbedingungen sind eigentlich sehr spannend.
Hier sind natürlich forschungsethische Fragen zu berücksichtigen.
Da gibt es ja jeweils
fachspezifische Empfehlungen
Insbesondere, ja, bestimmte, ja, wissenschaftliche Vorgehensweisen zu
nutzen und auch Versuchspersonen möglichst nicht zu schädigen bei der Forschung.
Da kann ich jetzt nicht auf die Details eingehen.
Daneben gibt es dann die rechtlichen Auflagen. Hier ist insbesondere das Urheberrecht,
Urheberrechtsgesetz, paragraf 60 derelevant zum Text- und Data-Mining.
Dann gibt es natürlich je nach Anwendungsfall auch datenschutzrechtliche Fragen. Und wenn man Nutzungsstimmung,
Bedingungen zugestimmt hat, sind auch die vielleicht Also gegebenenfalls anzuwenden,
das kommt so ein bisschen drauf an,
inwiefern hier einen Konflikt mit dem Urheberrecht passiert.
Und generell halte ich es für sehr sinnvoll,
zunächst in Kontakt mit den Webseitenbetreibern zu gehen,
insbesondere um sich da auch rechtlich so ein bisschen abzusichern.
Das ist aber auch sozusagen unabhängig der rechtlichen Auflagen eigentlich
ein guter Einstieg zu fragen, was erlaubt ist.
Insbesondere, wenn Schutzmaßnahmen ergriffen wurden,
Und zu dem Thema ist ein Rechtsgutachten kürzlich herausgekommen im November.
Wie gesagt, ich kann hier zu rechtlichen Fragen keine Einschätzung,
auf die Sie sich jetzt berufen können, geben.
Aber ich will sozusagen die relevanten Punkte eigentlich darstellen.
Und in dem Rechtsgutachten gibt es sozusagen bestimmte Best Practices,
die man beachten sollte, um da nicht in Schwierigkeiten zu kommen.
Und prinzipiell gilt erstmal, dass die Informationen,
die man scrapen will, allgemein zugänglich sein sollten,
Das kann auch heißen, dass man erst einen Geldbetrag dafür zahlt,
um an die Daten zu kommen.
Aber sie müssen prinzipiell erreichbar sein. Was nicht erlaubt ist,
ist die Überwindung von technischen Schutzmaßnahmen. Dazu zählen Captures oder
aber auch die Robots TXT laut einer juristischen Einschätzung.
Und diese Überwindung von technischen Schutzmaßnahmen ist nicht gestartet.
Und um dir die Urheberrechtsgesetzlichen Auflagen zu erfüllen,
darf die Forschung nicht kommerziellen Zwecken dienen.
Die Daten müssen nach Abschluss der Forschungsarbeiten gelöscht werden und nur
eine Übermittlung an privilegierte Institutionen, Archive und Bibliotheken ist gestattet.
Und der prinzipiell hat der rechte Anhaber einen Anspruch auf Zahlung einer angemessenen Vergütung,
die er dann durch eine Verwertungsgesellschaft geltend machen kann.
Hier ist allerdings zu sagen,
dass sich hier noch keine Verfahren sozusagen entwickelt haben,
noch nicht sozusagen bestimmte Verfahren etabliert sind
Hier ist die Frage, wer auf wen zukommen muss bezüglich dieser Bezahlung.
Da kann ich leider auch nichts Genaueres zu sagen,
aber in dem Bereich könnten sich dann,
werden sich da wahrscheinlich noch bestimmte Prozesse dann entwickeln.
Und auch die Frage, was eine angemessene Vergütung ist,
natürlich höchst interessant. Und was auch noch sehr wichtig ist,
dass man durch diese Scraping-Aktivitäten keine technischen Schädigungen beim Betreiber der
Webseite auftreten dürfen.
Also man darf
diese Webseite
nicht lahmlegen
Und das auch wichtig beim Schreiben von Squapern, dass man
immer die Zahl der Anfragen, die man stellt, limitiert.
Also nicht zu viele Anfragen auf einmal stellt. Genau.
Dann gibt es datenschutzrechtliche Aspekte, die relevant sein können,
wenn man personenbezogene Daten verarbeitet. Und das ist,
glaube ich, eher relevant, wenn man jetzt Browser-Plugins entwickeln wollte,
ist beim Squapen öffentlicher Informationen häufig nicht so kritisch,
weil keine personenbezogenen Daten verarbeitet werden
Aber auch in Social-Media-Plattformen kann das ja durchaus der Fall sein.
Und hier ist dann häufig die Frage, auf welcher Rechtsgrundlage passiert das?
Insbesondere, wenn die Einwilligung nicht praktikabel ist.
Und da müsste man sich dann auf die Privilegien auf öffentliches
Interesse stützen, dass man sozusagen als Verarbeitungsgrund anführt.
Und das ist eigentlich dann ein Interessensanwägung zwischen diesem öffentlichen Interesse
und dem Interesse der Personen,
dessen Daten man dann verarbeitet
Und hier kann man generell nur sagen,
dass man bestimmte Best Practices anwenden kann und damit dann ja auch,
ich würde sagen, im sicheren Bereich ist.
Also es geht darum, die Forschungsfrage klar darzulegen,
möglicherweise einen Datenmanagementplan zu entwerfen, den Datenschutzbeauftragten einzubeziehen,
dann die rechtlichen Vorgaben, also das Verzeichnis von Verarbeitungstätigkeiten,
dann einen Eintrag zu haben und auch die Dokumentation technisch organisatorischer Maßnahmen,
die man bei der Verarbeitung ergreift, vorzuhalten,
die Betroffenrechte zu gewährleisten.
Und hier auch technische Vorkehrung für Datenminimierung und Anonymisierung
gegebenenfalls trifft und bestimmte Speicherfristen einhält.
Ich habe das deswegen so ausführlich gemacht, weil das sozusagen,
also ja, das wäre sozusagen wirklich sehr ausführlich.
Es kommt natürlich immer darauf an, um welche Daten es sich handelt.
Hier wäre jetzt sozusagen, wäre man auch im sicheren Bereich,
wenn es um besonders sensible Daten geht, besondere Kategorien beispielsweise politische Einstellungen.
Genau. Zum Projektmanagement will ich noch was sagen.
Also generell Fragen, die man sich vielleicht stellen sollte,
bevor man ein Projekt anfängt. Es geht darum,
bestimmte, also erstmal ist die Frage zu stellen,
welche konkreten Daten sollen denn erhoben werden?
Wie stehen diese Daten in Beziehung zueinander?
Gibt es vielleicht eine Programmierschnittstelle? Welche Beschränkungen gibt es
an diese Daten
zu kommen
Welche, also welche Arten gibt es,
um an die Daten zu kommen, welche Zugangswege,
verschiedene, dass insbesondere relevant um den Aufwand solcher Projekte einzuschätzen.
Also umso mehr Zugangswege es gibt,
umso mehr muss man sozusagen auf diese Zugangswege reagieren.
Und das ist nicht ganz einfach, wenn man sozusagen für
jeden Zugangsweg wieder einen eigenen Scrapper schreiben müsste.
Den zweiten Punkt der Erklärung der rechtlichen Anforderungen hatte ich eben schon gesagt,
brauche ich jetzt, glaube ich,
nicht so detailliert darauf einzugehen
Dann im dritten Schritt, würde ich sagen,
ist es hilfreich, diese technische Realisierbarkeit sich anzuschauen.
Häufig sind hier die Fragen hilfreich,
gibt es ähnliche Projekte und wie wurde dort vorgegangen?
Also insbesondere, das meinte ich auch vorhin mit den Veröffentlichungen.
Es ist zum Teil sehr wichtig,
sehr genau zu beschreiben, wie man da vorgegangen ist,
damit andere Forschende das auch replizieren können und auch
sozusagen da so ein gewisses Know-how nicht verloren geht
Und wichtig ist natürlich, um die technische Frage zu schauen,
wird über einen längeren Zeitraum gescraped?
Also besteht die Möglichkeit, dass sich die Webseite ändert?
Muss ich irgendwie einen Server aufsetzen, der regelmäßig bestimmte Seiten besucht?
Muss ein Browser basiertes Scraping durchgeführt werden?
Also führt die Webseite selber JavaScript aus oder nicht?
Ist eine sehr interessante Frage, die sozusagen,
also muss JavaScript ausgeführt werden, um an bestimmte Inhalte zu kommen?
Das macht es
erheblich schwieriger
Kommt natürlich drauf an. Und dann im nächsten Schritt
ist es sinnvoll, wirklich mal das Ganze manuell durchzuführen.
Also bestimmte Anzahl an Testdaten zu sammeln und einen Proof-of-Concept zu entwickeln.
Und dann bei der Planung der eigentlichen Software kann man sozusagen
noch so ein paar Best Practices aus der Software-Entwicklung mit hinzuziehen.
Also hier insbesondere Versionsverwaltungssysteme zu nutzen,
bestimmte Prototypen zerstören und die dann iterativ verbessern
Und idealerweise auch ein Produktivsystem von einem Testsystem zu trennen oder vielleicht
sogar Tests zu schreiben, ist natürlich ein erheblicher Mehraufwand,
der da drin steckt. Und lohnt sich auch nur,
wenn man sozusagen da ein längerfristiges Projekt hat.
Was auf jeden Fall lohnt, ist eine Dokumentation zu schreiben,
was ja auch im Hinblick auf die eigene Forschung sehr wichtig ist.
Hier habe ich insbesondere mal den Datenmanagement-Plan,
also ein Tool um Datenmanagement-Plane zu erstellen,
insbesondere für die Forschung aufgeführt.
Kann man
sich gerne
mal angucken
Genau, dann zu den großen Plattformen. Ich möchte eigentlich
gar nicht, gar nicht so viel zu sagen.
Prinzipiell kann man sagen, dass bestimmte Plattformen die Datenzugänge sehr limitiert haben.
Bei Facebook beispielsweise gibt es nur noch die Möglichkeit,
über Crowdtangle oder ein Projekt eines Forschenden Jakob Jünger.
Facepaager nennt sich das, an Daten zu kommen.
Aber auch dieses Projekt ist sozusagen limitiert. Also die haben
sozusagen das Projekt wurde, die Software wurde von,
ist von dem Review-Prozess von Facebook erlaubt.
Aber natürlich ist die Frage, ob das nur temporär ist.
Es war auch schon abgeschaltet. Genau. Das würde ich sagen,
ist es sehr schwierig, irgendwie an bestimmte Daten zu kommen.
Und auch in Quartengel selber oder Facepage,
gibt es auch nur öffentliche Posts von öffentlichen Gruppen,
so weiß ich, soweit ich weiß.
Und die Verhandlungen über Zugänge sind sehr schwierig.
Da gibt es ja die Social Science-One-Initiative,
die da insbesondere mit Facebook,
aber auch mit anderen Plattformen
in Verhandlungen steht
Aber auch da wurde sehr viel an Ressourcen auch investiert, um Datenschutz zu gewährleisten.
Aber Facebook tut sich da schwer, diese Daten jetzt wirklich rauszugeben.
Obwohl auch schon viel Zeit seitens Forschenden reingeflossen ist.
Und häufig sind natürlich die Nutzungsbedingungen sehr problematisch. Das heißt,
insbesondere wenn man sich anmeldet, dürfte man schon gar nicht mehr scrapen,
weil man sozusagen da einen Rechtsbruch begehen würde.
Weniger problematisch ist beispielsweise Twitter oder Reddit.
Da kann man sozusagen einen Antrag zu den Programmierschnittstellen.
Aber natürlich muss man auch hier sehr kritisch immer fragen,
was sind das genau für Daten,
die ich da erhalte, beispielsweise bei Samples,
handelt es sich wirklich um repräsentative Samples oder nicht.
Von daher sollte man sich da auch immer sehr genau damit beschäftigen,
um welche Felder geht es genau,
um welche Daten geht es genau und wie komme ich da,
also helfen die mir wirklich bei meiner Forschung weiter
Ja, zum Schluss noch mal zusammenfassend.
Es gibt eine Vielzahl umfangreicher Techniker, Protokoll und Beschreibungsformate,
die eine Rolle spielen und verschiedene Repräsentationen sind,
notwendig beim Squapen, also diese Überführung von HTML-Seiten in einen Baum,
aus dem man bestimmte Teile auswählt.
Es gibt einen Unterschied zwischen Scrappern,
die einfach nur Abfragen erstellen und zu browserbasierten Ansätzen,
die dann wirklich JavaScript ausführen und das JavaScript,
das erhalten wurde,
dann ausführen und dann möglicherweise
weitere Anfragen gestellt werden
Und da ist sozusagen ein kategorialer Unterschied. Und einen weiteren
Unterschied gibt es dann mit dieser Möglichkeit Scraping vor Ort.
Also wenn man wirklich Browser-Plugins schreibt,
die sind allerdings dann häufig in Java-Skript zu schreiben,
wo man dann wirklich Daten bei bestimmten Browsersitzungen mitschneiden kann.
Aber auch da ist sozusagen ein Scraping notwendig.
Da muss man sich dann natürlich auch nochmal Gedanken machen,
wie man dann die Daten wirklich an einen Server bekommt oder
wieder sozusagen,
sodass der Forschende
sie dann bekommt
Und nicht zu unterschätzen, sind meiner Ansicht nach auch wirklich
die rechtlichen und organisatorischen Fragen bei solchen Projekten,
insbesondere wenn es sich um größere Projekte handelt.
Genau. Und natürlich bei großen Plattformen ist natürlich auch noch
viel politische, politische Fragen, die da geklärt werden müssen.
Ich weiß auch beispielsweise bei der Anhörung zur Digitalstrategie gestern,
ging es ja auch viel um die Frage,
wie kommen Forschende effizienter an öffentliche Daten auch.
Und ich denke, da sind noch sehr viele Entwicklungen,
die da auch noch reinspielen werden
Ich habe hier ein paar Projekte zusammengestellt,
die interessant sind im zweiten Foliensatz gibt es auch noch mal einige Projekte,
das einfach als Angebot sich bestehende Lösungen auch anzuschauen und daran
sozusagen zu experimentieren oder genau zu gucken,
wie andere vorgegangen sind.
Ja, das wäre es mit dem ersten Teil und jetzt
wäre die Möglichkeit noch Rückfragen zu stellen
Ich hoffe, ich habe jetzt nicht alle erschlagen.
Ja, gerne. Tendenziell ist es nicht legal,
wenn ich mich bei der Websites,
wenn ich den ersten Account erstellen muss und eingelockt sein muss,
damit ich auf die ganze Suche falle.
Es kommt darauf an, es kommt darauf an,
welche Nutzungsbedingungen bei Also ich würde die Fragen nochmal wiederholen.
Also die Frage war, ob es legal wäre,
wenn man sich erst, also ob es tendenziell überhaupt nicht legal ist,
wenn man sich erst anmelden muss, bevor man etwas scrapt.
Und ich würde sagen, es kommt drauf an. Es kommt darauf an,
ob technische Schutzmaßnahmen dieser Webseite getroffen wurden, um Scrapping zu verhindern.
Das wirkt, glaube ich, der erste Punkt.
Und der zweite Punkt wäre, welche Nutzungsbedingungen wurden bei der Account-Erstellung unterschrieben oder vereinbart.
Und wenn da in den vertraglichen Bestimmungen sozusagen steht,
man darf es nicht, dann wäre es zumindest fraglich,
Man könnte hier dann argumentieren mit dem Urheberrechtsgesetz,
das sozusagen Webscraping und Data-Mining, Text- und Data-Mining,
prinzipiell für Forschende erlaubt.
Ob das sozusagen diese Vertragsrechtlichen, Anforderungen überstimmt,
das sozusagen, glaube ich, eine sehr schwierige Frage.
Ich würde empfehlen, da sehr genau in das Rechtsgutachten
das Rad für sozialen Wirtschaftsdaten zu schauen.
Die echten angriffende Frage, was wäre Männers quasi,
alles okaye
erlaubt werden
Aber ich mache den Service aus Deutschland eigentlich gar nicht nutzen,
um das in der VPN verwenden,
um die über die Seite zu wählen, aus Deutschland heraus.
Also trotzdem quasi immer an sich der Service war in Deutschland verboten,
die Daten nicht. Aber dass uns jetzt so spezielle Fälle
schon bewusst ist. Aber geändert mit VPN oder was?
Also die Frage war, ich wiederhole wegen der Aufzeichnung.
Die Frage war, ob es einen Unterschied macht,
ob man per VPN auf Daten zugreift. Also die rechtlichen Einschätzungen,
die ich hier jetzt gegeben habe und die auch in dem Rechtsgutachten sind,
sind erstmal tendenziell, gelten die erstmal eher für europäische Webseitenbetreiber.
Inwieweit das weltweit sozusagen da nochmal verschiedene rechtliche Bestimmung auch nochmal
interagieren können, hängt da nochmal sehr davon ab,
von wo aus genau man das macht.
Ich würde sagen, prinzipiell ändert sich durch VPN erstmal nichts am Ort.
Aber wie gesagt, ich bin kein Jurist und kann hier
eigentlich keine juristischen Einschätzungen geben.
Ich würde sagen, da gibt es sozusagen ein paar Rechtsbereiche,
die auch noch sich klären werden
Genau. Aber wie gesagt, tendenziell, also auf jeden Fall
mal in das Rechtsgutachten schauen und da sozusagen dann auch,
ja. Gut, gibt es noch weitere Rückfragen?
Macht das Graden generell keinen Sinn mehr,
du weißt in der Archemie geht oder gibt es irgendwie
auch andere Gründe,
warum es auch trotz vorhanden seiner Arbeit
Das Gründe. Also die Frage ist, ob,
wenn es eine Programmierschnittstelle gibt, es noch sinnvoll ist zu
scrapen oder ob das dann sozusagen nicht mehr sinnvoll ist.
Ich würde sagen, es kommt darauf an. Es kommt darauf an,
an welche Daten man mit der Programmierschnittstelle kommt und an welche Daten man durch Webscraping bekommt. Und insbesondere,
wenn man sicher gehen will, dass die Daten wirklich dementsprechend,
was dann auch die eigentlichen Nutzer der Services präsentiert bekommen,
reicht es eigentlich nicht an die Programmierschnittstellen, sich zu wenden,
weil man ja nicht wirklich sicher sein kann,
ob das auch die Inhalte sind,
die der Nutzer zur Verfügung gestellt werden.
Das meinte ich auch eben mit,
man muss bei den Programmierschnittstellen immer sehr kritisch sein,
ob das wirklich die Daten sind,
die auch in den anderen Zusammenhängen verwendet werden.
Also es kommt darauf an, würde ich sagen.
Auf jeden Fall ist es sehr sinnvoll, die Daten zu vergleichen.
Um einen Überblick oder ein größeres Bild zu bekommen.
Ja, gute Frage, danke
Gut, wenn jetzt erstmal keine weiteren Fragen sind,
würde ich sagen, machen wir eine kurze Pause.
Ich würde sagen, so ein zehn Minuten bis Viertelstunde.
Und dann würde ich die Aufgabenstellung erklären und die würden wir
dann gemeinsam bearbeiten.