Suche
  • Journalist und Medientrainer
  • claus@hesseling.org // +49.170.2039123
Suche Menü

Scraping-Beispiel: Deutsche Handball Bundesliga

Diese Anleitung ist im Rahmen des Datenjournalismus-Einsteigerseminars an der Universität Münster entstanden.

Passend zur Fußball EM Euro 2016 (TM) hat das Daten-Team des BR eine Karte ins Netz gestellt, die alle Geburtsorte der EM-Spieler zeigt. In dem Uni-Seminar haben sich Studenten für die deutschen Handballer interessiert – und wollten eine ähnliche Karte nachbauen. Um es vorweg zu sagen: In der Detailtiefe wie beim BR-Projekt ist dies nicht möglich, denn der Deutsche Handball Bund (DHB) veröffentlicht zwar Kurz-Bios der Spieler – dort ist jedoch nur die Nationalität aufgeführt, nicht der genaue Geburtstort.

In der Saisonstatistik der Handball-Bundesliga findet sich eine Liste mit allen Spielern, die in der Saison zum Einsatz gekommen sind:

DKB Handball Bundesliga Feldspieler

Klickt man in der zweiten Spalte nun auf einen Namen, dann wird die Kurz-Bio des Spielers auf einer Extraseite angezeigt.

Die Aufgabe: Wir wollen alle Kurz-Bios der Handball-Spieler scrapen.

1. Schritt: Die URLs extrahieren

Wie gesagt, die Spieler-Übersichtsseite enthält Links zu allen Spieler-Bios. Diese URLs müssen in einem ersten Schritt gescrapt werden. Dafür gibt es viele Möglichkeiten und Wege. Einer der einfacheren ist es, die URL der Übersichtsseite bei import.io einzugeben. Die Seite wird dann verarbeitet und man kann den gescrapten Inhalt als CSV-Datei herunterladen. All das geht mit einem kostenlosen Account.

Import.io Lightning

2. Schritt: Die Detaildaten scrapen

Die heruntergeladene CSV-Datei kann man nun in Excel (Daten > Externe Daten abrufen > Aus Text; Auswahlbox „Getrennt“; Trennzeichen Komma) öffnen.

excel1

Man kopiert nun die Daten aus Spalte B in eine neue Arbeitsmappe und speichert diese als CSV-Datei ab. Später kann man die CSV-Datei umbenennen in z.B. „handballspieler.txt“. Man sollte kontrollieren, ob die Liste leere Zeilen enthält. Wenn ja, müssen diese gelöscht werden.

Jetzt haben wir quasi eine Liste mit allen URLs, die wir für den nächsten Schritt brauchen. Für das Scrapen der einzelnen Unterseiten gibt es ebenfalls viele Möglichkeiten. Eine Möglichkeit ist es, ein Ruby-Script zu schreiben, das die jeweiligen URLS aufruft und den Inhalt der Kurz-Bio-Box in eine einzige Datei abspeichert.

Dafür muss man erst einmal herausfinden, welchen Teil der Kurz-Bio-Seite gescrapt werden soll. Dafür braucht man das Firefox Add-On Firepath. Damit lässt sich der sogenannte XPath herausfinden – also quasi der Weg durch die verschiedenen Tags und Divs einer HTML-Seite. In unserem Fall wäre dies der XPath:

Diese Information kann nun in die Ruby-Datei eingebaut werden. Die sieht dann so aus:

In Zeile 24 wird der Inhalt des Kurz-Bio-Box gespeichert, Zeile 25 speichert nochmal die Basis-URL der Spielerseite ab.

Lässt man das Skript laufen, werden alle Kurz-Bios nun in eine große Text-Datei gespeichert. In der sind noch Teile der HTML-Datei enthalten. Deshalb muss man nun mit einem Text-Editor (z.B. Notepad++ vor allem mit dem Add-On TextFx) alle Tags so durch ein Semikolon ersetzen, dass am Ende nur noch Folgendes übrig bleibt:

3. Schritt: Daten zusammenführen

Nun lässt sich die gescrapte CSV-Tabelle mit den Kurz-Bio-Daten in Excel öffnen. Dann kann man alle Spalten, die uninteressant sind, rauswerfen. Im nächsten Schritt kann man dann mit einem SVerweis in Excel die Kurz-Bio-Daten mit denen aus der ersten gescrapten CSV-Tabelle zusammenführen. So hat man für jeden Spieler eine lange Spalte mit Detailinformationen – von der Anzahl der Tore über das Alter bis hin zur Nationalität. In einem Zusatzschritt kann diese Tabelle noch per SVerweis mit einer weiteren Tabelle zusammenfügen, die die Lat/Long-Informationen der Vereinsstädte enthält.

4. Daten auswerten

Um nun interessante Auswertungen machen zu können, muss man einfach die Pivor-Funktion in Excel aktivieren. Damit lässt sich z.B. herausfinden, welche Spieler aus welchen Ländern gut treffen, 2-Minuten-Strafen erhalten oder oft auf der Bank sitzen.

5. Daten visualisieren

Ob mit Datawrapper, Tableau Public oder CartoDB – die gewonnenen Erkenntnisse können nun in Grafiken visuell dargestellt werden.

 

Anmerkung: Ich bin kein Programmierer, sondern Journalist. Das heißt: Es geht bestimmt alles einfacher und vor allem eleganter. 😉

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.


*