Because this code is specifically written on scraping motions in the Dutch Parliament, I will continue my story in Dutch, but if you're interested in my work, just contact me.
Met de code van dit project wordt de gebruiker in staat gesteld om (alle) moties uit de Tweede Kamer te indexeren in 4 tabellen:
- eentje met de informatie over de motie zelf
motie_table.csv
, - eentje over de informatie van de indieners van de motie
indieners_table.csv
, - eentje met de informatie over de stemuitslag
vote_table.csv
en - eentje met de verwijzingen naar het debat e.d. waar de motie is ingediend
actviteiten_table.csv
.
Hierdoor wordt de informatie uit de Tweede Kamer met betrekking tot de moties toegankelijk gemaakt voor onderzoek. De code die je hier vindt is in staat om alle informatie van de individuele motie webpagina's te indexeren inclusief de motie tekst zelf die in een PDF gevonden wordt op de webpagina van elke motie. Hierdoor kan er onderzoek gedaan worden naar stemgedrag van individuele leden van de Tweede Kamer of gehele partijen. Dit kan op basis van de titels van de moties, maar dus ook op basis van de inhoud van de moties. Een waardevolle toevoeging voor dit project zou zijn om automatisch thema's aan de moties te kunnen voegen op basis van de motie tekst.
Dit project is geschreven in Python, omdat het veel mogelijkheden biedt aan de programmeur. Python is van extra waarde in mijn optiek, omdat veel bestuurskundige, politicologen en andere studenten of leraren van sociale studies weinig ervaring hebben met programmeertalen. Python is beginners vriendelijk en de output van dit script makkelijk te gebruiken in welbekende statistiekprogramma's. Daarnaast leent de output van dit script zich ook om geïmporteerd te worden in een database omgeving zoals met MySQL. Hierdoor kunnen de verschillende tabellen die als output volgen uit dit script gekoppeld worden en kunnen er meer geavanceerde zoekopdrachten uitgevoerd worden over de datasets.
Voor dit python script zijn de module nodig die gevonden worden in requirements.txt
. Deze kunnen geïnstalleerd worden met het volgende commando uit te voeren in de project map met een terminal.
$ pip install -r requirements.txt
Dit vereist wel dat Python zelf is geïnstalleerd op het systeem. Vergeet bij de installatie niet het vakje aan te vinken om Python toe te voegen aan PATH.
om het script uit te voeren, moet een terminal geopend worden in de projectmap en de volgende commando's uitgevoerd worden:
$ python
>>> from main import run
# als je meerdere overzicht pagina's wilt indexeren, vervang dan 'a' met het pagina nummer van de eerste overzicht pagina en 'b' met de laatste overzicht pagina die je wilt indexeren. het is dus 'a' tot en met 'b'.
>>> run(a, b)
# als je een enkele overzicht pagina wilt indexeren, geef dan alleen de paginanummer van die enkele overzicht pagina.
>>> run(a)
De output als de drie .csv bestanden worden opgeslagen in de projectmap.
De volgende variabelen worden geïndexeerd met dit script.
In motie_table.csv
:
- motie_id (uniek voor elke motie en gegenereerd door de website van de Tweede Kamer zelf)
- Subject (onderwerp/titel van de motie)
- Date (datum van de motie)
- Text (tekst van de motie)
- Title (een nietszeggende titel van de motie webpagina)
- State_Document (document status)
In indieners_table.csv
:
- motie_id (uniek voor elke motie en gegenereerd door de website van de Tweede Kamer zelf)
- name_submitter (naam motie indiener)
- submitter_type (indiener, ondertekenaar, mede-indiener, etc.)
- party_submitter (politieke partij van indiener)
- personal_page (url naar de persoonlijke pagina van de indiener)
In vote_table.csv
:
- motie_id (uniek voor elke motie en gegenereerd door de website van de Tweede Kamer zelf)
- party_name (Naam van politieke partij)
- vote_count (hoeveelheid van stemmen)
- vote (voor, tegen of afwezig)
In actviteiten_table.csv
:
- motie_id (uniek voor elke motie en gegenereerd door de website van de Tweede Kamer zelf)
- activities (verwijzing d.m.v. url naar het debat of stemming waar de motie deel van is)