Web Scraping
afstudeerrapportagestudent: Dominggus Salampessy begeleiders: Suzanne Hallenga-Brink
Allard Roeterink
datum: juni 2012
1. Voorwoord
Toen ik zo’n 7 jaar was kocht mijn vader een computer, een Vendex HeadStart II. Monochroom
beeldscherm, MS-‐DOS 3.0, geen muis, een A: en zelfs een B: drive. Het geluid dat de PC maakte tijdens het opstarten kan ik nog steeds dromen. Ik begon spelletjes te zoeken, totdat de PC een vreemd geluid produceerde: ik had de harde schijf geformatteerd. Een handige oom heeft daarna opnieuw MS-‐DOS geïnstalleerd, samen met WordPerfect en een aantal spelletjes(Battle Chess!). Ik werd steeds handiger met de computer, leerde een beetje programmeren in GW-‐BASIC. Toen ik in de brugklas zat, kwam een
klasgenootje langs met een Microsoft Encarta CD, maar moest hem teleurstellen met de ‘ouderwetse’ computer van 9 megahertz.
In de tweede klas hebben we in het kader van de internationalisering een hotmailaccount moeten aanmaken omdat we binnenkort op uitwisseling gingen met een groep Italiaanse scholieren. Op die manier konden we makkelijker communiceren. Niet lang daarna kregen we thuis ook een PC met
Windows 98, inclusief 56K modem. Sindsdien zat ik elke avond eventjes op internet: zoeken met Altavista, muziek downloaden via Napster, cracks via Astalavista, chatten op MSN en TMFChat.
Nu terugkijkend op het afgelopen decennium besef je eigenlijk pas hoe snel het internet is veranderd. Niet alleen het internet, maar ook het dagelijks leven: stond vroeger de televisie centraal in de woonkamer, nu speelt het internet een steeds grotere rol.
We leven in een Information Age, waarin steeds meer informatie op de gebruiker af komt. Afgelopen jaar heb ik de minor Visualizing Information gevolgd; een verbredingsminor die gegeven wordt op CMD Breda, waar je leert complexe informatie op een begrijpelijke en visueel aantrekkelijke manier weer te geven. Als eindopdracht heb ik een visualisatie gemaakt van alle aankomende en vertrekkende vluchten van
Schiphol. De data was o.a. afkomstig van de website van Schiphol zelf. De manier waarop data werd binnengehaald gaf de aanzet tot dit afstudeeronderwerp.
Voor ons als toekomstig afgestudeerden CMD’er is voor sommigen van ons dit ons toekomstig online werkterrein. Waar haal ik informatie? Hoe kan ik deze informatie laten opvallen? hoe kan ik de informatie zo duidelijk mogelijk weergeven? Deze vragen zullen de komende jaren een grote rol spelen in deze Information Age; ik hoop dat ik met dit afstudeeronderwerp meer mensen de kracht van informatie kan laten zien.
2. Summary
Web Scraping is a technique to automatically collect information from webpages. Dutch and European legislation on this subject is a bit ambiguous. Obviously, copyrighted material is protected, but only on work where a human author has put his own creativity in. Since 1996, the European Parliament legislated a law that protects the databases against unauthorised data requests. To become eligible for this law, one has to prove to have invested a considerable amount of human, technical and financial resources in making or maintaining their database.
Aside from commercial applications, web scraping is also used to create prototypes to convince
authorities to publish their data. Third-‐parties could create handy apps society needs, which in turn could create feedback loops to the authority so that their service can be improved.
Furthermore, the course of creating an interactive dynamic infographic utilizing web scraping techniques to demonstrate it’s potential is being discussed.
3. Inhoudsopgave
1. VOORWOORD ... 1
2. SUMMARY ... 2
3. INHOUDSOPGAVE ... 3
4. INLEIDING ... 4
5. VOORONDERZOEK WEB SCRAPING ... 5
5.1
W
AT ISW
EBS
CRAPING? ... 5
5.2
H
OE WERKTW
EBS
CRAPING PRECIES? ... 6
5.3
H
OE LEGAAL IS HET? ... 6
5.3.1 Auteursrecht ... 7
5.3.2 Databankenrecht ... 7
5.4
W
AARVOOR WORDTW
EBS
CRAPING GEBRUIKT? ... 8
5.4.1 Mashups ... 8
5.4.2 Open Data ... 8
5.4.3 Open Overheid ... 9
5.5
C
ONCLUSIE... 10
6. RAPPORTAGE INTERACTIVE DYNAMIC INFOGRAPHIC: KIJKGEDRAG EN HET WEER ... 12
6.1
O
NDERZOEK... 12
6.1.1 Data, informatie en kennis ... 12
6.1.2 Infographic ... 12
6.1.3 Orientatie ... 13
6.1.4 Inventarisatie ... 13
6.2
C
ONCEPT... 14
6.3
V
ERANTWOORDING INTERACTIEONTWERP... 15
6.4
V
ERANTWOORDING VORMGEVING... 20
6.5
V
ERANTWOORDING TECHNISCH ONTWERP... 21
6.6
C
ONCLUSIE... 21
7. ALGEMENE CONCLUSIE ... 25
8. AANBEVELINGEN ... 25
9. LITERATUURLIJST ... 26
10. BIJLAGEN ... 27
10.1
B
IJLAGEA:
I
NTERVIEW METS
TEFAN DEK
ONINK... 27
10.2
B
IJLAGEB:
DATABRONNEN INVENTARISATIE/
BRAINSTORM... 29
4. Inleiding
In 2011 waren er zo’n 2.27 miljard internetgebruikers op de hele wereld, een derde van de gehele wereldbevolking1. Dit aantal is verdubbeld ten opzichte van vijf jaar geleden. IP-‐adressen raken op en mensen willen steeds sneller internet. Computers worden steeds sneller en er komen steeds meer bronnen van informatie bij. Informatie wordt steeds complexer en daarbij groeit bij veel mensen de behoefte naar meer begrijpelijke weergaves hiervoor. Omdat computers snel kunnen rekenen bestaat online informatie vaak uit getallen. Op het internet zijn er enorm veel databronnen: Facebook, Google Maps, het Centraal Bureau voor Statistiek, maar ook particulieren bieden hun data aan op sites als Pachube/Cosm.
Maar naast deze toegankelijke databronnen is er ook een andere manier om data van internetpagina’s te halen: Web Scraping. Wat is Web Scraping? Wat zijn de mogelijkheden? Wat zijn de juridische
consequenties ervan? Waarvoor wordt het gebruikt?
In deze rapportage wordt een antwoord gegeven op bovenstaande vragen en wordt de ontwikkeling van een toepassing van Web Scraping gerapporteerd. Verder worden er conclusies getrokken uit de gedane bevindingen en enkele aanbevelingen gedaan.
1 “Internet population 2007 vs 2012”. Royal Pingdom. d.d. 19 mei 2012.
5. Onderzoek Web Scraping
5.1 Wat is Web Scraping?
5.1.1 Algemeen: Data Scraping
Normaliter communiceren programma’s volgens strikte afspraken (protocollen) en wordt data opgeslagen in datastructuren zodat deze snel en simpel te interpreteren is. Deze communicatie is niet bedoeld voor een menselijke eindgebruiker en is vaak ook gecodeerd, gecomprimeerd en niet leesbaar. Nadat de data in een gebruikersinterface (voor de eindgebruiker) wordt weergegeven, is de data pas leesbaar voor mensen.
Hier begint Data Scraping pas: een programma haalt de data uit de gebruikersinterface. Hierbij zitten meestal illustraties, onderschriften en andere visuele elementen in die bedoeld zijn voor de gebruiker, maar voor het scraping-‐programma irrelevant zijn. Kenmerkend voor Data Scraping is dus dat het data uit het systeem haalt uit de output dat bedoeld is voor een menselijke eindgebruiker.
Deze omslachtige manier van data ophalen wordt meestal gebruikt omdat het systeem zo verouderd is dat er geen apparaat meer kan worden aangesloten, of omdat het systeem geen API biedt. Een API is een Application Programming Interface; deze definieert de toegang tot de functionaliteiten van het systeem, waardoor andere programma’s kunnen communiceren met dit systeem.
Tegenwoordig zijn er twee gangbare vormen van Data Scraping: Screen Scraping en Web Scraping. 5.1.2 Screen Scraping
Bij Screen Scraping worden displays gescrapet. Een illustrerend voorbeeld: vroeger bestonden terminals uit een display van slechts 24x80 tekens. Deze antieke systemen zijn nog steeds in gebruik, en omdat modernisering van het systeem veel meer geld kost, wordt gebruik gemaakt van een Screen Scraper. Deze emuleert de toetsaanslagen van een echte gebruiker op de terminal, verwerkt de visuele data op het display van de terminal (met een OCR-‐tekstherkenning-‐engine worden letters op het scherm omgezet naar tekst) en stuurt de gegevens door naar de gebruiker op een moderner systeem (bijvoorbeeld Telnet op Windows).
5.1.3 Web Scraping
Bij Web Scraping wordt de broncode van een webpagina (bedoeld ter vertoning in de browser van de gebruiker) uitgelezen en worden gegevens automatisch eruit gehaald. Bijvoorbeeld: vliegmaatschappij easyJet verkoopt vliegtickets op haar website. Een ander bedrijf, Wegolo, maakt het makkelijker voor klanten door vliegticketprijzen van diverse vliegmaatschappijen, waaronder ook easyJet, naast elkaar te bieden. Wegolo gebruikt hiervoor scraping methodes om altijd de meest up-‐to-‐date prijzen van easyJet van de website te halen.
Probleem is echter dat webpagina’s aan wijzigingen onderhevig zijn. De menselijke gebruiker ziet visuele veranderingen aan een website als iets verfrissends. Het scraping-‐programma kan echter crashen of foutieve resultaten geven. De maker zal (een deel van) het programma moeten herschrijven, om opnieuw de juiste informatie eruit te halen.
In het volgende hoofdstuk wordt dieper ingegaan op de precieze werking van Web Scraping.
5.2 Hoe werkt Web Scraping precies?
Wanneer een gebruiker naar een website surft, maakt de webbrowser (zoals bijvoorbeeld Internet Explorer, Mozilla Firefox, Google Chrome, Safari) van de gebruiker verbinding met de webserver van de website. De browser stuurt een zogenaamde request, in de vorm van een URL (een pad naar een HTML-‐ bestand op de webserver).
Wanneer je bijvoorbeeld naar http://www.tvgids.nl surft, stuurt de browser verschillende requests naar de webserver (zie Afbeelding 1). Voor elk plaatje, style sheet, javascript-‐bestand wordt een request verstuurd naar de webserver. De webserver behandelt deze request en stuurt vervolgens een response terug naar de browser.
Een Web Scraping-‐script simuleert een menselijk bezoek aan de webserver. Het script stuurt een request naar de webserver, die vervolgens reageert door de gewenste pagina te sturen, zoals dat ook zou gebeuren met een gewone browser. Vervolgens haalt het script de benodigde informatie uit de pagina.
Er zijn verschillende manieren om te ‘scrapen’2: • Reguliere expressies
Dit is een manier om grote lappen tekst te doorzoeken en te filteren in verschillende programmeertalen zoals
ActionScript, Python, Perl, PHP, Java etc.
Wanneer een bepaald stuk tekst aan een ‘reguliere expressie’ voldoet, kan deze worden vervangen door een andere tekst, zodat er met de juiste expressies gericht kan worden gezocht naar de gewenste data.
Een algemeen bekend voorbeeld is de expressie *.pdf, wat betekent “geldt voor alle pdf-‐bestanden”. Reguliere expressies werken op soortgelijke manier; hiermee zijn bijvoorbeeld emailadressen ook snel te halen uit een webpagina3.
• HTTP-‐hacking
Een browser stuurt een request naar een webserver via het Hypertekst Transfer Protocol. Door deze HTTP-‐requests zelf te sturen naar de webserver kan ook zo de webpagina worden binnengehaald.
• DOM-‐parsing
Alle webbrowsers zetten een HTML-‐bestand in een zogenaamd Document Object Model. Met bijvoorbeeld Javascript kan men bepaalde DOM-‐elementen eruit halen. • HTML-‐parsing
Met behulp van programmeertalen zoals PHP, HTQL kunnen HTML-‐pagina’s worden opgehaald en de gewenste elementen eruit worden gehaald. Populair is Beautiful Soup voor Python, waarmee Reddit relevante plaatjes uit pagina’s haalt
waarnaar gelinkt wordt4. • Web-‐scraping software
Met software als IRobotSoft kan men een ‘bot’ maken die automatisch websites bezoekt en zo een menselijke gebruiker simuleert en gegevens opslaat in XML, CSV, of in een database.
2 “Web Scraping”, Wikipedia, The Free Encyclopedia. Wikimedia Foundation, Inc. d.d. 28 mei 2012.
http://en.wikipedia.org/wiki/Web_scraping
3 “How to Find or Validate an Email Address”, Regular-‐Expressions.info. d.d. 22 mei 2012.
http://www.regular-‐expressions.info/email.html
4 Beautiful Soup”, Crummy. d.d. 29 mei 2012.
http://www.crummy.com/software/BeautifulSoup/
Afbeelding 1: browser requests bij het bezoeken van www.tv-‐gids.nl
5.3 Hoe legaal is het?
In Nederland zijn er verschillende wetten waarmee Web Scraping veelvuldig te maken heeft: auteursrecht en het databankenrecht. In de volgende paragrafen wordt uitgelegd wat precies de gevolgen zijn voor Web Scraping.
5.3.1 Auteursrecht
In het boek “De wet op internet" [Engelfriet. A, 2010] behandelt de auteur (gespecialiseerd ICT-‐jurist) de juridische mogelijkheden van Web Scraping in Nederland. Complete websites kopiëren en aanbieden op een eigen site is niet toegestaan: er is dan sprake van schending van auteursrecht. De maker van de website heeft tijd en moeite gestopt in de inhoud en vormgeving en bezit dan ook het auteursrecht. De scraper mag niets kopiëren zonder toestemming van de auteur van het werk.
Om dit te omzeilen, bouwen sommige scrapers een systeem dat de zoekresultaten doorgeeft. Op zoekresultaten rust namelijk geen auteursrecht, daar deze gegenereerd is door een machine en er dus geen mens als auteur aan te pas komt.
5.3.2 Databankenrecht
Sinds 1996 hebben we in Nederland het databankenrecht. Deze beschermt databanken tegen het
grotendeels overnemen en ongeautoriseerd opvragen van gegevens uit de databank. Dit laatste is bedoeld tegen scrapers: het opvragen van gegevens mag niet botsen met de normale exploitatie en geen
ongerechtvaardigde schade toebrengen aan de maker van de databank.
Om in aanmerking te komen voor het databankenrecht, moet je als eigenaar kunnen aantonen dat je een substantiële investering in de vorm van tijd of geld hebt gedaan énkel in het maken en onderhouden van de databank. De moeite die heeft gezeten in bijvoorbeeld het vergaren van gegevens is juridisch gezien niet relevant.
5.3.3. Voorbeelden
Websites als Autotrack.nl en Marktplaats hebben een databankenrecht op hun advertenties.
Nieuwswebsite Nu.nl heeft dat echter niet – zij investeert enkel in het verzamelen van nieuwsberichten die toevallig met een CMS in een database worden gestopt.
In een pas recente zaak zat Ryanair in de clinch met het bedrijf Wegolo, omdat deze prijsopvraagbots had lopen die de prijsinformatie scrapete van de Ryanair website. In eerste instantie had de rechtbank beslist dat Wegolo de geschriftenbescherming schond. Het Hof in Amsterdam oordeelde echter dat er geen auteursrecht op het werk rust. Bovendien was hier ook geen sprake van databankenrecht, omdat investeringen van Ryanair niet zijn gedaan in databankrechtelijk relevante kosten5.
In de VS heeft American Airlines in 2003 het bedrijf FareChase aangeklaagd vanwege een programma die FareChase verkocht waarmee gebruikers zonder toestemming gegevens van de servers van American Airlines konden bekijken. Uiteindelijk zijn beide partijen tot een schikking gekomen: 6.
5 “Prijsopvraagbotjes zijn geen inbreuk op databankrechten of geschriftenbescherming”, Iusmentis, A. Engelfriet. d.d. 21 maart 2012.
http://blog.iusmentis.com/2012/03/21/prijsopvraagbotjes-‐zijn-‐geen-‐inbreuk-‐op-‐databankrechten-‐of-‐geschriftenbescherming/
6 “American Airlines, FareChase Settle Suit.”, The Free Library, d.d. 3 juni 2012.
5.4 Waarvoor wordt Web Scraping gebruikt?
Web Scraping wordt veelal ingezet om grote hoeveelheden online informatie automatisch te verwerken. Google gebruikt bijvoorbeeld googlebots die websites afstruinen om hun indexing up-‐to-‐date te houden. De prijsopgavetabellen van Ryanair worden gescrapet door Wegolo om prijzen te kunnen vergelijken. Telecomvergelijk.nl haalt de nieuwste prijzen van de mobiele providers zoals Vodafone en KPN op. Ook worden soms zelfs complete websites gekopieerd en online gezet onder een andere naam en logo – deze praktijken zijn uiteraard illegaal en worden meestal direct offline gehaald.
Naast deze triviale toepassingen van Web Scraping is er ook een aantal andere toepassingen die wellicht CMD-‐gericht kunnen worden bestempeld, omdat deze op een nieuwe, innovatieve manier omgaan met (nieuwe) media.
5.4.1 Mashups
Een voorbeeld van een mogelijke toepassing van Web Scraping is in een mashup: een mashup is een webpagina of –applicatie waar gegevens uit meerdere bronnen gecombineerd, gepresenteerd, en/of gevisualiseerd worden7. Waar er in een portal gegevens uit verschillende bronnen naast elkaar worden weergegeven, worden in een mashup al deze gegevens gecombineerd.
Mashups zijn grofweg in te delen in drie typen (hoewel combinaties hiervan ook mogelijk zijn): 1. combinerende mashup
Bij deze mashups worden verschillende type data gecombineerd, zoals bijvoorbeeld huizengegevens van Funda op een Google Maps-‐kaart.
2. verzamelende mashup
Hier wordt data die ongeveer dezelfde soort informatie bevatten uit verschilllende bronnen gecombineerd tot een lijst van gegevens. Bijvoorbeeld een website waar programma-‐gegevens van verschillende omroepen en zenders wordt verzameld tot één overzicht.
3. zoekmashup
Hierbij worden verschillende websites doorzocht om gegevens te kunnen vergelijken, zoals bijvoorbeeld mobiele telecomvergelijker-‐websites die de goedkoopste deal voor een bepaalde telefoon zoeken.
De op dit moment meest gebruikte API voor mashups is de Google Maps API. Echter lijken de social media API’s (van Twitter, Facebook en Google+) de laatste jaren steeds vaker te worden gebruikt voor mashups8.
Hoewel bij mashups meestal gebruik wordt gemaakt van API’s, is het niet geheel ondenkbaar dat er ook mashups zijn waar er gebruik wordt gemaakt van Web Scraping wanneer de databron geen API biedt. Zo was de allereerste mashup een combinatie van Google Maps en het woningaanbod op Craigslist, in de tijd dat Google nog geen API bood9. Verder zijn er nog maar weinig echte mashups online te vinden waar data ook op een visueel attractieve manier wordt weergegeven; hier ligt een scala aan mogelijkheden voor toekomstige CMD-‐ers.
5.4.2 Open Data
Onder Open Data wordt verstaan: data dat vrij beschikbaar is voor iedereen en zonder enige
licentiebeperkingen. Verschillende overheden hebben al een start gemaakt met het beschikbaar stellen van Open Data – omdat overheden bij wet verplicht transparant horen te zijn, is Open Data onder overheden een logische vervolgstap.
Een aantal jaren geleden hebben de vervoerders in de stad Boston alle gegevens van de bussen in de stad vrijgegeven voor het publiek. Kort daarna gingen enthousiaste developers hiermee aan de slag en verschenen er al snel apps gebaseerd op de dataset die het vervoersbedrijf had vrijgegeven: bijvoorbeeld
7 “Mashup”, Wikipedia, The Free Encyclopedia. Wikimedia Foundation, Inc.. d.d. 8 mei 2012.
http://en.wikipedia.org/wiki/Mashup_(web_application_hybrid)
8 “Top Mashup Tags”, Programmable Web. d.d. 8 mei 2012.
http://www.programmableweb.com/mashups
9 “Learning from specific mashups”, Mashup Guide, Raymond Yee. d.d. 2 juni 2012.
een app die liet zien waar de bus op de kaart nu zou moeten rijden. Via feedback loops vanuit de burgers kon het vervoersbedrijf hun service verbeteren, iets waar uiteindelijk iedereen baat bij heeft.
Dit is een schoolvoorbeeld van hoe de maatschappij baat kan hebben bij Open Data. Naast het feit dat overheden transparant behoren te zijn, is het gunstiger voor de maatschappij wanneer deze data wordt vrijgegeven. De creatieve mogelijkheden van de massa is enorm en zo kunnen er meer interessante toepassingen worden bedacht.
Vooral in de VS en het Verenigd Koninkrijk bestaan veel open data-‐initiatieven (zoals data.gov en data.gov.uk) waar alle open data te vinden is. Ook de Europese Commissie heeft laten weten al het cijfermateriaal en openbare gegevens gratis ter beschikking te stellen. In december 2011 riep EU-‐ commissaris Neelie Kroes zelfs alle regeringen in de EU op dit voorbeeld te volgen: “Open Data is een goudmijn”. De economische waarde ervan in Europa wordt zelfs geschat op zo’n 30 miljard euro10. Toch is enige nuance hier op z’n plaats: Herko Coomans, accountmanager bij ICTU, zegt dat open data eigenlijk waardeloos is11. Volgens Coomans is ruwe data an sich betekenisloos; pas wanneer context wordt toegevoegd kan dit worden geïnterpreteerd als informatie, wat weer tot nieuwe inzichten kan leiden en dan pas waardevol is.
5.4.3 Open Overheid
In opdracht van het ministerie van Binnenlandse Zaken en Koninkrijksrelaties heeft het TNO een uitgebreide studie [Broek et.al, 2011] gedaan naar Open Overheid. Hierbij hebben zij een overzicht gemaakt van de ervaringen van een ‘Open Overheid’-‐beleid in zes andere landen (de Verenigde Staten, het Verenigd Koninkrijk, Australië, Denemarken, Spanje en Estland). Uit de aanbevelingen in de studie blijkt verder dat TNO adviseert om ‘Open Overheid’ op brede schaal toe te passen12.
In februari 2011 heeft het ministerie van Binnenlandse Zaken het webportaal data.overheid.nl geopend. Hier kunnen overheden hun datasets aanmelden. Tot nu toe laat de kwaliteit en diversiteit van de datasets nog te wensen over: Lex Slaghuis van Hack de Overheid: “In anderhalf jaar tijd zijn er slechts zo’n 250 datasets online gezet, terwijl dat er in Frankrijk in een paar maanden 230.000 waren” 13.
Het lijkt erop dat autoriteiten in Nederland toch nog terughoudend zijn in het vrijgeven van data. Om hen toch te overtuigen van de waarde van open data, zijn er diverse initiatieven gestart om dit te stimuleren. Zo heeft de Hack de Overheid in samenwerking met gemeente Amsterdam en Waag Society vorig jaar de wedstrijd Apps For Amsterdam uitgeschreven14. Hierin werden developers en studenten uitgedaagd om de meest originele, bruikbare, levensvatbare apps te bedenken en te maken. In totaal zijn er zo’n 48 applicaties ingestuurd en heeft de Energielabel App gewonnen in de particulierencategorie en de OCO-‐ Scholenzoeker in de bedrijvencategorie.
Na dit succes kwamen er ook wedstrijden als Apps for North-‐Holland en Apps voor Nederland. Naast het organiseren van deze, focust Hack de Overheid zich ook op het oprichten van netwerken zoals Open Cultuurdata, Open Onderwijsdata, Open Health Data, Open Spending en Open Aid Data.
Sinds 1 februari 2012 heeft de Rijksoverheid de BAG vrijgegeven: de Basisregistraties Adressen en Gebouwen, die wordt beheerd door het Kadaster. Deze basisregistratie is op dit moment de enige van de 13 basisregistraties die vrij mag worden gebruikt.
10 “Unlocking the goldmine: new legal proposals to open up Europe’s public sector”, European Commission, Blog of Neelie Kroes. d.d.
12 december 2011.
http://blogs.ec.europa.eu/neelie-‐kroes/opendata/
11 “Open data is waardeloos – Herko Coomans”, ICTU Gastblog. d.d. 10 februari 2012.
https://www.ictu.nl/over-‐ictu/gastblog/blog/artikel/open-‐data-‐is-‐waardeloos-‐herko-‐coomans/
12 zie: T. van den Broek, N. Huijboom, A. van der Plas, B. Kotterink, W. Hofman. 2011. “Open Overheid – Internationale beleidsanalyse
en aanbevelingen voor Nederlands beleid”, TNO.
http://www.tno.nl/content.cfm?context=thema&content=inno_publicatie&laag1=897&laag2=918&laag3=1&item_id=784
13 “Er kan veel meer met open data dan naar de wc”, NOS op 3, d.d. 26 januari 2012.
http://nos.nl/op3/artikel/334474-‐er-‐kan-‐veel-‐meer-‐met-‐open-‐data-‐dan-‐naar-‐de-‐wc.html
14 “Overzicht Databronnen”, Apps For Amsterdam Contest. d.d. 28 april 2012.
Een andere basisregistratie, het handelsregister van de Kamer van Koophandel, was voorheen online slechts matig bereikbaar: gebruikers konden enkel tijdens kantooruren het register doorzoeken. Dit was voor enkele open-‐data-‐aanhangers onacceptabel en door middel van web scrapen en diverse data slim te combineren zijn de makers van www.openkvk.nl erin geslaagd het handelsregister 24/7 beschikbaar te maken.
In een interview (zie bijlage) met Stefan de Konink, een van de makers van de website, vertelt hij dat de website initieel een bijkomend voordeel was: “In 2009 wilden we een database maken met alle postcodes. Het handelsregister is openbare informatie, en de adresgegevens zijn eigenlijk user-‐generated content. Pas bij Apps For Amsterdam kwamen we met het idee om de gehele KvK-‐gegevens online te zetten”15.
Verder vertelt de Konink dat het interessant is om te weten dat overheden verplicht zijn transparant te werken. Zo zijn aanbestedingsdocumenten en databasemodellen inzichtelijk, waarin te zien is dat overheden ook onzorgvuldig te werk kunnen gaan als het gaat om miljoenenuitgaven. Wanneer echter overheidsdata wordt vrijgegeven, worden overheden transparanter en uiteindelijk heeft de burger hier ook belang bij. Dit is ook het model waar de Konink alsook de gehele Open Data-‐beweging voor staat: een transparante, open overheid.
5.4.4 We feel fine
We Feel Fine is een online kunstwerk van Jonathan Harris en Sep Kamvar16. De website probeert
menselijke emoties vast te leggen op globale schaal: een script op de server zoekt een groot aantal blogs af naar de zinnen “I feel” of “I am feeling”. Wanneer deze gevonden is, wordt deze zin opgeslagen samen met de lokale weercondities in een database. Op de website kan vervolgens gebladerd worden op een visueel attractieve manier: de interface is een particle-‐system waar elke particle een gevoel voorstelt. Verder kunnen bovenin diverse gevoelens worden gefilterd op diverse variabelen en kunnen de resultaten op verschillende manieren worden weergegeven.
Het project is een goed voorbeeld van de mogelijkheden met Web Scraping. Er is zelfs al een boek
uitgebracht met daarin de mooiste visualisaties. Daarnaast wordt ook een API aangeboden (alhoewel deze helaas niet goed meer lijkt te werken).
15 Zie bijlage voor interview met Stefan de Konink
16 “An exploration of human emotion in six movements, by Jonathan Harris and Sep Kamvar”, We Feel Fine. d.d. 31 mei 2012.
5.5 Conclusie
Scraping bestaat al sinds de totstandkoming van de moderne PC: het gebruiken van output bedoeld voor menselijke gebruiker als bron van data. Pas met de explosieve groei van het internet in de afgelopen jaren wordt Web Scraping steeds vaker toegepast.
Juridisch gezien mag uiteraard niet alles zomaar worden gescrapet en opnieuw worden gepubliceerd zonder expliciete toestemming. Het scrapen van gegevens uit de database mag tevens niet botsen met normale exploitatie en geen ongerechtvaardigde schade toebrengen aan de eigenaar.
Ondanks alles is het opvallend dat Web Scraping ingezet wordt in diverse contexten: commerciële, informatieve, artistieke en zelfs politieke doeleinden. Toch blijft enige technische kennis omtrent
datamanipulatie vereist om concreet te kunnen inzien wat de exact mogelijkheden met Web Scraping zijn: elk geval vereist een unieke aanpak om de juiste gegevens te kunnen inwinnen.
Verder worden steeds meer initiatieven georganiseerd waarin men overheden laat beseffen dat data vrijgeven ook zijn voordelen heeft: Hack de Overheid, Apps For Amsterdam en data.overheid.nl. Het tempo waarin Nederlandse overheden hun data vrijgeven, ligt echter vergeleken met andere landen een stuk lager. Nu in februari 2012 de BAG vrijgegeven is werpt het misschien toch zijn vruchten af: hopelijk doet goed voorbeeld volgen…
6. Rapportage Infographic: Kijkcijfers
6.1 Onderzoek
6.1.1 Data, informatie en kennis
Dagelijks worden de begrippen, data, informatie en kennis door elkaar gebruikt. Toch zijn er belangrijke verschillen tussen deze begrippen die hieronder worden uitgelegd.
Data is de verzameling pure gegevens; is meestal te vinden in de vorm van tabellen, lijstjes, databases. Data an sich heeft nog geen betekenis – pas wanneer er context bij wordt gegeven is data
interpreteerbaar.
Bijvoorbeeld: een weerstation heeft een aantal sensoren, waaronder een thermometer voor de
temperatuur. Deze sensor geeft continu een signaal af, zoals bijvoorbeeld: 2,37. Dit is de data in zijn meest pure vorm. Nu de context: gegeven is dat het bereik van de sensor loopt van 0 tot 5 Volt. Het signaal is dus 2,37 Volt. Na het lezen van de specificaties van de sensor weten we dat 2,37 Volt gelijk is aan 14° Celsius.
Met een gegeven context is de data nu informatie geworden. Informatie heeft betekenis, maar slechts relevante informatie kan leiden tot een bepaald inzicht, ofwel kennis. Voortbordurend op het vorige voorbeeld; wanneer de sensordata elk uur wordt opgeslagen in een tabel. Stel dat de data van de afgelopen week wordt getoond in een tabel met in de ene kolom het tijdstip en in de andere kolom de temperatuur, dan is een dagelijks patroon zichtbaar: in de ochtend stijgt de temperatuur, in de middag blijft het stabiel waar na ’s avonds en ’s nachts de temperatuur weer daalt. Het herkennen van het patroon (relevante informatie) leidt tot een bepaald inzicht, ofwel kennis: de kennis dat elke dag de temperatuur oploopt in de ochtend, in de middag aanhoudt en ’s avonds daalt.
6.1.2 Infographic
In een infographic wordt complexe informatie zo compact en toch simpel mogelijk gecommuniceerd op een visuele manier. Tijdens de minor Visualizing Information, gegeven aan de opleiding CMD Breda, wordt een onderscheid gemaakt in vier typen infographics: geprint, geanimeerd, fysiek en interactief. Elk type kent z’n eigen voor-‐ en nadelen: de kracht van een print infographic is dat het een fysiek statisch medium is -‐ een echte eye-‐catcher om direct de aandacht te trekken is een must. Bij een geanimeerde infographic (infomercial) ligt nog een minstens zo groot aandachtspunt bij de auditieve kant. Met een ruimtelijke infographic kan goed gebruik worden gemaakt van het voordeel van de derde dimensie. In een interactieve infographic kan enorm veel informatie op een interactieve wijze aan de gebruiker worden gepresenteerd.
6.1.3 Orientatie
Naast het onderzoek naar Web Scraping is ook gekeken naar de mogelijkheden van een toepassing van Web Scraping. Hiervoor zijn verschillende online datasets onder de loep genomen; denk aan de voor de hand liggende bronnen zoals social media, Google Maps, alsook minder voor de hand liggende bronnen zoals diverse fora, communities en nieuwssites.
Omdat op het internet een enorm scala aan databronnen te vinden is, moet er eerst een onderverdeling van het web worden gemaakt: wat voor typen websites worden bezocht, in de hoop te kunnen vinden welke typen informatiebronnen populair zijn. Daarnaast is geïnventariseerd welke API’s op dit moment het meest worden gebruikt: denk bijvoorbeeld aan Facebooks Open Graph API en Google Maps API. Verder hebben Twitter, Spotify, LinkedIn, Hyves allemaal een API uiteraard. Wat betreft het openbaar vervoer biedt de NS gratis een NS-‐API; helaas hebben op dit moment maar enkele
vervoersmaatschappijen hun (actuele) reisgegevens online gezet – het initiatief bestaat echter al op www.openov.nl.
Omdat Web Scraping hier centraal staat, is uiteraard ook gekeken naar databronnen die niet te raadplegen zijn middels een API. Zo zijn de actuele vluchtgegevens op Schiphol na enig speurwerk in de broncode te vinden als tekstbestand. Sinds kort is er nu ook de BAG-‐viewer, ontwikkeld in opdracht van het Ministerie van Infrastructuur en Milieu en het Kadaster. Deze BAG-‐gegevens hoeven echter niet te worden gescrapet – Geodan heeft de BAG ook gratis ter beschikking gesteld17. Tevens is verkeers-‐ en fileinformatie een populaire bron op internet, net als P2000 Alarmeringen (real-‐time ambulance-‐ en brandweermeldingen). Verder worden complete kijkcijfers van programma’s tot twee weken geleden gepubliceerd op de website van Stichting Kijkonderzoek. Ook luistercijfers van regionale radio-‐omroepen zijn beschikbaar, maar worden helaas maar per maand gepubliceerd door Intomart GFK18.
Uit het interview (zie bijlage) met Stefan de Konink blijkt er ook een schat aan informatie te vinden in de ondertiteling van tv-‐programma’s, gecombineerd met een lijst van gastoptredens in
actualiteitenprogramma: “zo krijg je een interessante dwarsdoorsnede van de werking van de Nederlandse media”, aldus de Konink19.
17 “De BAG als Linked Data”, GeoDan. d.d. 6 mei 2012.
http://www.geodan.nl/onderzoek/themas/open-‐data/de-‐bag-‐als-‐linked-‐data/
18 “Continu Luisteronderzoek”, Intomart GFK. d.d. 9 mei 2012.
http://www.intomartgfk.nl/business_units/media/continu_luisteronderzoek/index.nl.html
6.1.4 Inventarisatie
Om het creatieve proces op gang te brengen, is begonnen met een wandeling door het centrum van Breda waarbij een lijst is opgesteld alles wat er te zien was en het web-‐equivalent ervan.
Daarnaast is een lijst van mogelijke online bronnen van data en hun variabelen opgesteld – zo is in één oogopslag te zien welke datasets op internet te vinden is. Er zijn kaartjes gemaakt met daarop elke bron, welke variabele benodigd is en welke bijbehorende variabelen worden teruggegeven, zodat deze gemakkelijk en overzichtelijk konden worden gerangschikt. Vervolgens is er gekeken welke combinaties er te maken zijn, rekening houdend met de variabelen en of men tot een interessante inzichten kan komen.
Een greep uit de lijst van de voor dit project interessant genoeg bevonden databronnen20: • Verkeersinformatie • Alarmeringen • IMDB API o getMovie • Spotify API o getTrack o getAlbum o getArtist • NS API o vertrektijden o prijzen o stationslijst o routeplanner
Technisch gezien is dit eigenlijk een overzicht van beschikbare API-‐calls: functies die kunnen worden aangeroepen. Zo heeft de NS-‐API bijvoorbeeld verschillende API-‐calls voor actuele vertrektijden, prijzenopgaven, of reisadviezen ophalen21.
De uitdaging in het vinden van de juiste combinatie van databronnen hangt nauw samen bij het vinden van de antwoorden op de volgende vragen: welke combinatie van informatie vindt de gebruiker
interessant? Tot welke inzichten kan de gebruiker komen? Wat is de meerwaarde van een combinatie van databronnen?
20 Zie bijlage voor een volledig overzicht van geïnventariseerde databronnen.
21 “De NS API”, Nederlandse Spoorwegen. d.d. 29 mei 2012.
6.2 Concept
6.2.1 Doel
Het concept heeft als hoofddoelstelling de gebruiker een idee te geven van de mogelijkheden met Web Scraping. Naast deze doelstelling dient het project ook een tweede doel: de gebruiker kan tot bepaalde inzichten komen dat door het combineren van verschillende databronnen tot stand komt.
6.2.2 Het concept
Een interactieve, dynamische, online, real-‐time infographic waarin het kijkersgedrag onder de loep genomen wordt. De gebruiker wordt overvallen door de visuele weergave van de data verkregen door middel van Web Scraping.
De gegevens (gescrapet van de website van Stichting Kijkonderzoek) worden gecombineerd met de weergegevens (beschikbaar gesteld door het KNMI) en met de ondertiteling van TT888 (gescrapet van uitzendinggemist.nl).
6.2.3 Inzichten
Met deze unieke combinatie van databronnen kan de gebruiker tot verschillende, interessante inzichten komen:
1. Wat is het invloed van het weer op de kijkcijfers van dagelijkse programma’s? Kijken mensen bijvoorbeeld vaker het NOS 20.00u Journaal wanneer het regent?
2. Welke gasten in actualiteitenprogramma’s zijn het meest bekeken? In hoeveel huishoudens komt Mathijs van Nieuwkerk of Mart Smeets langs?
3. Hoe gedraagt het kijkerspubliek zich op de dynamiek van de uitzendingen? Een overzicht van het globale zap-‐gedrag van mensen.
4. Over wat voor zaken is er de afgelopen dagen gepraat? Is er een trend te ontdekken tussen verschillende actualiteitenprogramma’s?
6.2.4 Motivatie
SKO publiceert elke dag een dag-‐top-‐25 van de dag ervoor, zodat in een oogopslag te zien is welke programma’s het best bekeken waren. Daarnaast worden ook alle kijkcijfers van alle programma’s van alle zenders gepubliceerd. Dit is zo’n enorm groot aantal dat dit enkel in een interactieve infographic goed en duidelijk kan worden weergegeven op een visueel krachtige wijze.
Omdat het centrale thema van deze rapportage Web Scraping is, spreekt het voor zich dat de interactieve infographic ook online beschikbaar komt. Bovendien is zo ook een zo groot mogelijk publiek te bereiken om te laten zien wat de mogelijkheden met Web Scraping zijn.
6.3 Verantwoording interactieontwerp
Met de eerdergenoemde inzichten in het achterhoofd, zijn concrete interactieontwerpen ontwikkeld22. In dit hoofdstuk worden enkele ontwerpen behandeld.
6.3.1 Invloed van het weer op de kijkcijfers (1)
Afbeelding 2: interactieontwerp 1 -‐ invloed weer op kijkcijfers
Dit is een schematische weergave van het scherm waarin de gebruiker kan zien wat de invloed is van het weer op de kijkcijfers van dagelijkse programma’s, gedurende een maand.
Elke balk staat voor een aflevering, de lengte ervan geeft het aantal kijkcijfers weer, de kleur staat voor de temperatuur/neerslag/bewolking/zonfactor. De gebruiker krijgt meerdere programma’s onder elkaar te zien en kan met de knoppen de uitzendingen sorteren om te zien of het weer daadwerkelijk een invloed heeft op kijkcijfers. Wanneer blauwe balken hoger zijn, duidt dit er bijvoorbeeld op dat het programma beter wordt bekeken wanneer het regent.
22 Zie bijlage voor het complete interactiedocument
PAUW & WITTEMAN
DE WERELD DRAAIT DOOR
NOS JOURNAAL20:00
6.3.2 Invloed van het weer op de kijkcijfers (2)
Afbeelding 3: interactieontwerp 2 -‐ invloed weer op kijkcijfers (2)
Op dit scherm ziet de gebruiker een overzicht van de meest bekeken dagelijkse programma’s met het aantal kijkcijfers. Een stip staat voor het aantal kijkcijfers x1000.
Met de drie schuivers links (temperatuur (T), zonneschijn (Z) en neerslag (N)) kan de gebruiker het weer beïnvloeden. Rechts wordt, gebaseerd op cijfers van afgelopen maand, het effect van het weer op de kijkcijfers getoond.
Na feedback door enkele gebruikers is in overweging genomen (en besloten) om slechts één slider tegelijk te tonen; dit om de kracht van de interactie (de gebruiker kan door middel van het weer te beïnvloeden direct zien of hij/zij invloed heeft op de kijkcijfers) nog beter tot uiting te laten komen.
PAUW & WITTEMAN DE WERELD DRAAIT DOOR NOS JOURNAAL20:00 HART V NEDERLAND PAUW & WITTEMAN DE WERELD DRAAIT DOOR NOS JOURNAAL20:00 HART V NEDERLAND
6.3.3 Kijkcijfers gevisualiseerd
Afbeelding 4: interactieontwerp 3 -‐ kijkcijfers gevisualiseerd
Op dit scherm worden alle kijkcijfers van alle programma’s van één dag gevisualiseerd. Per zender is te zien hoeveel kijkers er op dat moment kijken. Eén stip staat voor 1000 kijkers. Onderin het scherm bevindt zich een tijdslijn dat afspeelt naarmate de tijd vordert – deze is te verslepen en te pauzeren. De gebruiker krijgt inzicht in het ‘zap’-‐gedrag van de kijkers. Wat voor invloed heeft de dynamiek van de verschillende tv-‐programma’s op het gedrag van de kijker?
Natuurlijk is niet exact na te gaan of een kijker daadwerkelijk van NED3 naar SBS6 heeft gezapt, maar wel dat op het ene moment NED3 minder kijkers krijgt en SBS6 meer.
Na feedback is gebleken dat gebruikers ook willen zien waar het programma over gaat -‐ een popup met daarin details over de betreffende uitzending is gewenst. Bovendien moet er bij de uiteinden van de tijdlijn knoppen komen om naar de volgende dag te ‘bladeren’.
NOS JOURNAAL - NED1 NED2 - 2 VANDAAG - NED2
DWDD - NED3 RTL NIEUWS - RTL4 RTL Z NIEUWS - RTL5 TELESHOPPING - RTL7 CSI: MIAMI - RTL8 HART VAN NEDERLAND - SBS6 FRINGE - NET5 TOP GEAR- VERO TELETUBBIES - NICK
zondag 6 mei
6.3.4 Trends in actualiteitenprogramma’s
Afbeelding 5: interactieontwerp 4 -‐ gesproken maandoverzicht
In dit maandoverzicht wordt van een actualiteitenprogramma (bijvoorbeeld het journaal) de
onderwerpen getoond in een zogenaamde Wordle: hierbij worden vaak voorkomende woorden groter weergegeven23. Van elke dag wordt een mini-‐wordle gegenereeerd – de grootte van de woorden zijn, naast het feit dat ze groter worden naarmate ze vaker voorkomen in een uitzending, ook afhankelijk van het aantal kijkcijfers: hoe groter, hoe meer mensen de uitzending hebben gezien. Hierdoor is in een oogopslag te zien wat er de afgelopen maand speelt onder journaal-‐volgend-‐Nederland.
Kritiekpunt was hier of dit wel overzichtelijk genoeg kan worden weergegeven. Wellicht is het beter de tijdslijn verticaal weer te geven en de gebruiker d.m.v. scrollen zelf de mogelijkheid geven door de dagen heen te scrollen.
6.3.5 Overige uitwerkingen
Een andere, bedachte variant op de wordle-‐cloud uit de vorige paragraaf is om per dag te visualiseren wat er allemaal is gezegd in actualiteitenprogramma’s. De gebruiker krijgt dan een beeld van de media die dag. Hier werd echter gezegd dat deze niet tot inzichten zou leiden die misschien niet interessant genoeg zijn; dit idee is dan ook van de baan geschoven.
Ook is bedacht om een aantal statistieken weer te geven in de vorm van Wist-‐je-‐dat: bijvoorbeeld het aantal keer dat de rode bal is getrokken bij Lingo, of een overzicht van de bal-‐trekkingen: verloopt dit wel statistisch verantwoord of is hier sprake van manipulatie. Hierbij kan gebruik worden gemaakt van alle beschikbare TT888-‐ondertitels die te scrapen zijn van uitzendinggemist.nl. Dit idee is op zich leuk, maar past niet bij het concept.
23 “Wordle”, Wordle. d.d. 2 juni 2012
http://www.wordle.net/
6.4 Verantwoording vormgeving
6.4.1 Stijl / kleurgebruik
Gekozen is voor de stijl van de testbeelden van de analoge televisie dat werd uitgezonden vanaf 1975 tot 200524. Deze werden gebruikt wanneer de zender nog aan het uitzenden is, maar er geen programmering meer was (meestal ’s nachts). De gekozen kleuren passen totaal niet bij elkaar, maar omdat dit beeld zo herkenbaar voor iedereen is, wordt het direct met televisie geassocieerd: het geeft bijna een nostalgisch gevoel.
Bovendien is het een mooie weergave van technologie gecombineerd met vormgeving. Elk blokje had een functie en zo konden technici alle apparatuur goed kalibreren. Bovendien was het ook een mooi testbeeld, in tegenstelling tot de in de VS gebruikte SMPTE-‐systeem, waarin enkel 8 verticaal gekleurde balken worden getoond. Dat dit later als een soort icoon van de televisie zou uitgroeien had de bedenker van de Philips PM5544 testbeeldgenerator, ingenieur Erik Nielsen, nooit kunnen dromen.
Afbeelding 6: links: Philips PM5544 testbeeld dat in Nederland werd gebruikt,
midden: SMPTE testbeeld, werd gebruikt in de VS,
rechts: Telefunken FuBK testbeeld, voornamelijk gebruikt op de Duitse zenders
6.4.2 Lettertype
Om in de stijl van de testbeelden te blijven is gekozen voor een pixelfont, hieronder de drie fonts die het meest in het oog sprongen:
Standard 07_65:
RTL 5 SBS6 NET5 VERONICA DE WERELD DRAAIT DOOR NOS JOURNAAL 2000
Pa's wijze lynx bezag vroom het fikse aquaduct. 0123456789
PA'S WIJZE LYNX BEZAG VROOM HET FIKSE AQUADUCT. 0123456789 Kroeger Uni 05_53:
RTL 5 SBS6 NET5 VERONICA DE WERELD DRAAIT DOOR NOS JOURNAAL 2000 Pa's wijze lynx bezag vroom het fikse aquaduct. 0123456789
PA'S WIJZE LYNX BEZAG VROOM HET FIKSE AQUADUCT. 0123456789 Hooge 05_55:
SBS6 NET5 VERONICA DE WERELD DRAAIT DOOR NOS JOURNAAL 2000 Pa's wijze lynx bezag vroom het fikse aquaduct. 0123456789 PA'S WIJZE LYNX BEZAG VROOM HET FIKSE AQUADUCT. 0123456789
Na verschillende korte tests is uiteindelijk gekozen voor het eerste font, de Standard 07_65, omdat de letters in zowel hoofd-‐ als kleine letters goed leesbaar is.
24 “Testbeeld”, Wikipedia, The Free Encyclopedia. Wikimedia Foundation, Inc. d.d. 1 juni 2012