Doe-Het-Zelf: Webdata kopiëren, the lazy way

28 maart 2017

Microsoft oprichter Bill Gates zou ooit eens het volgende gezegd hebben: “I choose a lazy person to do a hard job, because a lazy person will find an easy way to do it.”. Hoewel het niet zeker is of hij dit ooit gezegd heeft, spreekt het velen wel tot de verbeelding. In deze tutorial leggen we uit hoe je -the lazy way- data van een webpagina kan kopiëren of scrapen, zoals ook wel eens genoemd wordt. 

Dit blog is wat anders dan je gewend bent. Het is een zogenoemde DIY (Do it Yourself) of tutorial. Door middel van een stappenplan met afbeeldingen gaan we je proberen wegwijs te maken in het kopiëren van webdata, iets wat een belangrijke rol speelt in het project. In het project The Network is the Message doen we onderzoek naar inhakers. Online zijn allerlei kalenders te vinden met momenten en onderwerpen waarop ingehaakt kan worden. Voor ons zijn die momenten een mooi uitgangspunt om onderzoek te doen. Wij willen die data dus graag hebben. Nu kan je dat doen door een kalender op internet te ‘copy-pasten’, maar het kost veel werk om het vervolgens te structureren (dat wil zeggen dat je een net lijstje met alle dagen van het jaar met daarachter de inhaakonderwerpen). Daarom volgt hier opgesteld door Thijs Waardenburg een tutorial voor de lazy way! In dit geval voor Inhaakkalender.com, maar dit principe is natuurlijk op andere websites toe te passen.

                               

#hoedan?

HTML-webpagina’s zijn van nature al gestructureerd opgebouwd. Deze structuur is vastgelegd in het zogenaamde Document Object Model (DOM​). Wanneer we bepaalde gegevens van een webpagina af willen halen kunnen we het in de meeste gevallen natuurlijk kopiëren en plakken in een ander programma (zoals Excel). Dat is geen probleem als het om één of een paar items gaat. Het wordt vaak wel een probleem als het om, zeg, 50, 500 of 5000 items gaat. Hiervoor zijn een aantal handige software tools beschikbaar. Eén van de vele tools voor het scrapen van data is ​Scraper​. Dit is een zogenaamde ​extension voor de ​Google Chrome browser​. Met Scraper kan je stukje tekst/data in een webpagina selecteren. Vervolgens zal de software op zoek gaan in de pagina naar vergelijkbare data(structuren). Deze data kan vervolgens geëxporteerd of gekopieerd worden naar een ander programma. De data moet meestal daarna nog opgeschoond, aangevuld of van structuur veranderd worden. Dat kan onder meer worden gedaan met het gratis programma ​OpenRefine​. Hieronder volgen de stappen die genomen kunnen worden om zogenaamde ‘inhakers’ te ​scrapen van de website inhaakkalender.com.

Stap 1

Selecteer de bovenste regel met inhaakonderwerpen (1 januari: Nieuwjaarsduik, Nieuwjaarsdag). Rechtermuisknop en selecteer ‘Scrape similar’.

Stap 2

Hiermee selecteer je de data van 1 maand. Kopieer de data naar het clipboard (knop rechtsonder “Copy to clipboard”).

Stap 3

Plak de data in een Excel tabel.

Stap 4

Herhaal stap 2 en 3 voor alle maanden; plak ze onder elkaar in dezelfde tabel. Verwijder de rijen met kolomnamen (in dit voorbeeld rij 33).

Stap 5

Voeg een ‘Datum’ kolom toe en vul deze vanaf 01-01-2016

Stap 6

Verwijder ‘Column 2’ met de dagnummers (nadat je gecontroleerd hebt of de datum kolom juist is).

Stap 7

Sla het op als CSV-bestand (comma seperated values).

Stap 8

Importeer het bestand in OpenRefine.

Stap 9

Op sommige dagen staan meerdere events. Deze moeten gesplitst worden.

Stap 10

Kies het dropdownmenu van Column 1 -> Edit cells -> Split multi-valued cells. In dit geval zijn de events gescheiden (separator) met een komma + spatie. Herhaal deze stap voor Column 3.

Stap 11

Zet vervolgens alle evenementen onder elkaar in één kolom Transpose -> Transpose cells across columns into rows.

Stap 12

Neem voor het dialoogvenster van stap 11 de bovenstaande instellingen over om alles onder elkaar te zetten.

Stap 13

Vul de lege datumvelden in Edit cells -> Fill Down.

Stap 14

Klaar! Exporteer de data naar gewenst formaat.

Hoera! Je hebt zojuist data gekopieerd binnen 14 stappen! Wij zijn benieuwd of het gelukt is. Had je problemen, vragen of verliep alles vlekkeloos? Stuur ons dan een berichtje.

Wil je meer weten over het onderzoek ‘The Network is the Message’ neem dan contact op of download de Management Summary

Contact Onderzoek Download