Online-Workshop mit Julius Tröger, Teil 2
von drehscheibe-Redaktion
Der Online-Workshop der drehscheibe geht in die nächste Runde. Im zweiten Teil dreht sich alles es um die Aufbereitung von Zahlen und Statistiken. Wie kommt man an Daten, die beispielsweise von Verwaltungen oder Unternehmen angeboten werden, am besten ran und welche Möglichkeiten gibt es, Daten aus Webseiten herauszulesen? Die Übersicht stammt von dem Journalisten Julius Tröger. Er hat sie zunächst auf seinem Blog Digitalerwandel.de veröffentlicht und stellt sie nun der drehscheibe zur Verfügung.
Teil 2: Text und Daten
Web APIs
Ein Weg, dynamisch und in Echtzeit an Daten zu gelangen, ist der über eine Schnittstelle, ein Application Programming Interface (API). Über sie können Daten von Maschine zu Maschine ausgelesen und dann weiterverarbeitet werden. Es existieren mehrere Tausend solcher Web APIs im Netz. Es gibt APIs von sozialen Netzwerken wie Twitter oder Facebook, APIs von Städten wie Leipzig mit Verwaltungsdaten oder Verkehrsdaten von Verkehrsbetrieben wie dem VBB bis hin zu Nachrichten APIs, die so ihre Artikel nach außen hin öffnen wie die New York Times oder der Guardian.
Prinzipiell funktionieren Web-APIs so, dass man durch die bestimmte Eingabe einer URL ein entsprechendes Ergebnis geliefert bekommt. Ein Beispiel: Die Eingabe der URL http://search.twitter.com/search.json?q=Stromausfall gibt sämtliche Tweets aus, die den Suchbegriff „Stromausfall“ enthalten. Die Ausgabe erfolgt in diesem (und in den meisten Fällen) als eine lange Zeichenkette im Format JSON. Diese müssen dann im Programmcode auseinandergenommen werden.
Diese Tweets können auch automatisiert in eine Datenbank geschrieben werden. So können sich Journalisten eigene Recherchedatenbanken zu verschiedenen Themen aufbauen. Für Mashups können verschiedene APIs miteinander kombiniert werden, was zu völlig neuen Erkenntnissen führen kann. Auch ist es für Journalisten sinnvoll, APIs zu eigenen Projekten anzubieten – etwa unter einer nichtkommerziellen Creative-Commons-Lizenz. So können Nutzer selbst eigene oder neue Erkenntnisse aus den Datensätzen ziehen.
Einstieg und Tutorials:
• http://www.restapitutorial.com
• http://www.w3schools.com/json/default.asp
• http://archive.p2pu.org/general/open-journalism-open-web
• http://handbook.schoolofdata.org/en/latest/index.html
• http://blog.zeit.de/open-data/2012/03/13/api-werkzeug-journalismus
• http://www.poynter.org/how-tos/digital-strategies/165347/8-apis-your-news-organization-should-start-using-today
Web Scraping
Werden im Netz verfügbare Daten nicht in einem der oben genannten Formate oder eine API bereitgestellt, bleibt neben der händischen Auswertung nur, die Informationen auf Webseiten mit einem Programm auszulesen und – unter Beachtung der rechtlichen Hintergründe – weiterzuverarbeiten beziehungsweise in einer eigenen Datenbank abzuspeichern. Außerdem sind große Teile des Web überhaupt nicht indexiert, weil die Inhalte etwa hinter dynamischen Formularen oder Anmeldeschranken versteckt sind. Auch diese Daten können automatisiert ausgelesen und gespeichert werden. Dieser Vorgang wird als Web Scraping bezeichnet.
Es gibt viele Möglichkeiten, mithilfe freier Web-Technologien so an Daten von Webseiten zu gelangen. Grundsätzlich wird eine serverseitige Skriptsprache wie PHP, Python, Perl oder Ruby benötigt, um einen eigenen Parser zu schreiben, der diese Arbeit entweder manuell oder per Cronjob in bestimmten Zeitfenstern verrichtet. Allerdings kann man auch mit der Unterstützung von Node.js scrapen.
Die einfachste Vorgehensweise ist, die Inhalte der entsprechenden HTML- beziehungsweise XML- oder auch CSS beziehungsweise X-Path-Markup auszulesen. Dafür gibt es zahlreiche Bibliotheken für die oben genannten Skriptsprachen wie Nokogiri für Ruby. Sollen Daten hinter Formularen oder Suchfeldern gescrapt werden, so muss etwa die Ruby-Bibliothek Mechanize zusätzlich eingesetzt werden.
Die Aufbereitung der Daten – das so genannte Data Wrangling – erfolgt dann meist über Tools wie Data Wrangler, Google Refine oder Mr. Data Converter.
Einstieg und Tutorials:
• http://blog.dtrejo.com/scraping-made-easy-with-jquery-and-selectorga
• http://www.slideshare.net/opendata/handson-coding-for-datajournalism
• http://www.propublica.org/nerds/item/doc-dollars-guides-collecting-the-data
• http://www.propublica.org/nerds/item/scraping-websites
• https://scraperwiki.com
• http://shaw.al.s3.amazonaws.com/node-nicar/index.html
• http://leanpub.com/scrapingforjournalists
• http://net.tutsplus.com/tutorials/javascript-ajax/this-time-youll-learn-node-js
Datenbanken
Da mit lokal abgespeicherten Daten wie im oberen Beispiel nicht viel angefangen werden kann, müssen sie online in Datenbanken gespeichert werden.
Dafür kommen zurzeit häufig proprietäre Tools wie etwa Spreadsheets oder Fusion Tables von Google zum Einsatz. Zugriff auf die Tabellen in Form einer relationalen Datenbank erhält man bei ersterem entweder über die eigene API oder zusätzliche Javascript-Bilbiotheken wie Tabletop.js.
Allerdings gibt es auch eine große Anzahl an Open-Source-Datenbanken. Die seit längerer Zeit am meisten genutzten sind die relationalen Datenbanken MySQL und Postgres. Der Grundaufbau bei der SQL-Datenbankabfragesprache SQL-Syntax. ist: SELECT spalte FROM tabelle WHERE bedingung. Ähnlich funktioniert das auch bei Google Fusion Tables.
Derzeit setzen sich auch vermehrt nicht-relationale Datenbanken durch. Der Grund: Im Gegensatz zu relationalen Datenbanken verfügen „NoSQL“ (Not only SQL)-Datenbanken über eine schemafreie Struktur, sind horizontal skalierbar und damit besser für große Datenmengen wie etwa in sozialen Netzwerken einsetzbar. Es existieren mehr als hundert solcher Datenbanken. Zu den bekanntesten Vertretern zählen MongoDB und CouchDB.
Einstieg und Tutorials:
• http://www.w3schools.com/sql/sql_syntax.asp
• http://nosql-database.org
• http://borasky-research.net/2012/05/09/seven-plus-or-minus-two-databases-for-computational-journalists
Der Text stammt ursprünglich von der Seite www.digitalerwandel.de. Der Blog wird betrieben von Julius Tröger (Jahrgang 1983). Er befasst sich schwerpunktmäßig mit Multimedia- und Datenjournalismus. Im Jahr 1998 gründete ein regionales Online-Jugendmagazin. Seit 2008 arbeitet er als Redakteur bei der Berliner Morgenpost, wo er sich vor allem um den Ausbau multimedialer, mobiler bzw. datengetriebener Formate kümmert. Im Jahr 2012 wurde er mit dem ersten Platz beim Axel-Springer-Preis in der Kategorie Internet ausgezeichnet. Er wurde für den internationalen Datenjournalismus-Award nominiert und gewann den zweiten Preis beim bundesweiten Open-Data-Wettbewerb Apps für Deutschland. 2011 bekam er den Publikumspreis beim Deutschen Webvideopreis. Er bloggt er auf digitalerwandel.de. Dort schreibt er zum einen über Tools und Web-Techniken, die im (Online)-Redaktionsalltag hilfreich sein können. Zum anderen veröffentlicht er dort auch Tutorials zu seinen eigenen Projekten.Wir danken ihm recht herzlich für die Zusammenarbeit.
Veröffentlicht am
Kommentare
Einen Kommentar schreiben