Uofficielt API skræller politiker-data og kaster demokratiet i grams
Hver eneste nat får Folketingets officielle hjemmeside, folketinget.dk, besøg af et såkaldt web scraping-program, der 'skræller' informationer om folketingspolitikernes gøren og laden af hjemmesiden.
De opsamlede data tjekkes for, om der skulle være lagt nye lovforslag, spørgsmål og høringsreferater ud på hjemmesiden siden scraping-programmets seneste besøg.
Programmet er skrevet og sendt i marken af Michael Friis, der til daglig er udvikler på Ekstra Bladet, men som i sin fritid står bag projektet Folkets Ting.
Det er egentlig ikke noget, han har fået lov til, sådan at pille data ud af folketinget.dk på daglig basis. På den anden side har Folketingets it-folk endnu ikke brokket sig, fortæller han.
Så han gemmer eventuelle ændringer på folketinget.dk i sin egen database, og som en del af Folkets Ting gør han nu de data tilgængelige for danske webudviklere i alle afskygninger med et spritnyt og netop færdiggjort API.
»Folketingets it-folk er meget omhyggelige med at generere en masse spændende data om de ting, der sker i Folketinget. Men de data kan sagtens bruges til meget andet, og selvom jeg selv har en masse idéer, er det bedre, hvis andre også kan få mulighed for at udnytte Folketingets data,« fortæller Michael Friis til Version2 om baggrunden for projektet.
Smertefuldt arbejde
Idéen er altså at kaste oplysninger om det danske demokrati i grams til alle udviklere, der måtte have interesse i at skrive programmer og web- eller mobilapplikationer, der udnytter de data.
Han beskriver selve arbejdet med at få pillet de relevante data ud af folketinget.dk som »meget smertefuldt« og noget, han »ikke vil anbefale andre at gøre«.
Det skyldes ikke mindst relanceringen af Folketingets hjemmeside i oktober 2009, som tvang Michael Friis til at omskrive scraping-programmet fuldstændigt.
**LÆS OGSÅ **Folketinget.dk bliver genopført fra ruinerne
For at demonstrere formålet med det nye API har Michael Friis selv skrevet et Google-mashup, der ved hjælp af to API-kald først henter informationer om alle folketingspolitikere og deres udlandsrejser, og dernæst henter oplysninger om udvalgsrejser med tilhørende udgifter og rejsedestinationer.
Resultatet er en liste over de ti politikere, der oftest sætter sig ind i flyet og rejser udenlands. Den enkelte politikers rejseudgifter fremgår, og rejserne vises direkte på et kort i Google Maps.
Michael Friis' webservice kan levere data i både XML- og JSON-formatet og benytter OData-protokollen.
Ifølge Michael Friis er den største udfordring at afgøre, hvornår data fra folketinget.dk er gode nok, og hvornår de er lige til at smide ud.
»Foreløbige referater lægges for eksempel meget hurtigt ud på folketinget.dk, så jeg skal kigge dybt i hjemmesidens tags for at afgøre, hvornår det endelige referat ligger klar. Et andet problem ved den relancerede hjemmeside er, at paragraf 20-spørgsmål lægges ud i PDF-format, hvor det tidligere var i klar tekst,« forklarer Michael Friis.
Samtidig er det heller ikke altid, at HTML-koden bag folketinget.dk overholder W3C's standarder, siger han.
Folketinget.dk bør være bekymret
Michael Friis mener dog, at det er positivt, at folketinget.dk rent faktisk lægger så mange data ud, som det er tilfældet.
Du siger selv, at du reelt ikke har fået lov til at skrælle data af folketinget.dk. Hvad tror du, holdningen er til det i Folketingets it-afdeling?
»Hvis jeg var dem, ville jeg da være bekymret, fordi de mister noget kontrol over deres data. Men jeg håber også, at det kan få dem til at indse, at deres data er så interessante, at de selv kan gøre mere for at publicere dem,« siger Michael Friis.
Michael Friis vandt tidligere på året 100.000 kroner i Videnskabsministeriets konkurrence Offentlige Data i Spil.
Den pengepose er der endnu ikke taget hul på, og Michael Friis agter at bruge nogle af pengene til en konkurrence om, hvem der kan bruge hans nye API mest kreativt.
Version2 forsøger i øjeblikket at indhente en kommentar fra Folketingets it-afdeling.
Kommentarer (16)
... Version2-blogger Tommy Dejbjerg Pedersens indlæg om samme emne.
http://www.version2.dk/artikel/16320-hacking-the-government-folkets-ting
Mvh Mikkel, v2.dk
Respekt for den mand :) En ting er at scrape data fra en hjemmeside, en helt anden ting er at gøre det i SÅ stor stil :)
I øvrigt så synes jeg at det er mystisk at vores moderne Danmark, ikke kan finde ud af at have flere offentlige API'er. Jeg har fx været nød til at bygge et ret stort .NET bibliotek for at tilgå DMI's data. Burde vi ikke snart kunne nå dertil hvor offentlig transport, el og vandforsyning, folketinget og mange andre, kunne lave offentlige API'er?
Jeg arbejder lige nu på at få adgang til data via minmaaler.dk og gemme det i mine egne databaser. Nøjs hvor er det surt arbejde ...
øvrigt så synes jeg at det er mystisk at vores moderne Danmark, ikke kan finde ud af at have flere offentlige API'er
Det er såmænd ikke så svært.
Nu har vi jo mere eller mindre kastet os over XML, så:
Backend:
Fabrikér data i XML, som kan accesses via WS/REST/RPC m.m.
Det er (forhåbentlig)strukturerede data.
Middle:
Lav en XML->HTML evt. via XSLT, så klienter kan tilgå disse.
På den måde opfylder man både det struktuele behov samt det visuelle behov.
(Man kan lave lavere niveauer end XML, som tilgodeser performance, og kan tilgås med andre protokoller, men det er vist 'lost knowledge').
@Henrik
Jeg er helt enig men DSB er begyndt på det og forhåbentlig kan det initiativ trække de andre trafikselskaber med...: http://dsblabs.dk/
HvemStemmerHvad udbyder også en uofficiel API med fokus på stemmeafgivelser i FT, se: http://www.hvemstemmerhvad.dk/api/api.php
FT har tidligere fortalt at de ønskede at udvikle en API, men ikke fandt resourcer til det...
taltilmasserne.dk kaster håndtegn til Friis her: http://taltilmasserne.dk/index.php/2010/09/haandtegn-til-michael-friis-o...
Hej Klaus
Den Danske Ordbog definerer "kaste i grams" sådan her: "kaste penge el. andre kostbarheder ud i flæng til flere personer som kappes om at få fat i dem"
Der lå således ingen negative intentioner bag Version2's brug af udtrykket.
Venlig hilsen Morten, Version2.
Hej Morten
Fair nok - jeg har misforstået værdiladningen af udtrykket (lidt flovt for en gammel Nordisk Filolog).
Men jeg er meget glad for, at rubrikken ikke er så negativ som jeg læste den.
...Og lad os så få kastet nogle flere offentlige data i grams. Jeg vil gerne deltage i hoben og hvor er det fedt, at vi ikke behøver at kappes så længe der er API-keys til alle!
Nu lever DMI jo af at sælge deres data, så du kan sagtens får adgang til dem - f.eks. via XML filer. Hvis du altså betaler:
http://www.dmi.dk/dmi/index/erhverv/standardprodukter.htm
@Stig Johansen
Synes du skal sende den fine opsummering til politikkerne så vi kan få dem til at kigge på hvor let det er - jeg ved det godt :)
(no offense)
@Martin Jensen
Håber jeg godt nok også... Jeg har desværre ikke så meget at bruge DSB's API til, men jeg så virkelig gerne et for landets busser som jeg også har nævnt tidligere. Så meget for "en af verdens førende IT-nationer...
@Claus Pedersen
Det vidste jeg faktisk slet ikke.. Håber ikke de har noget imod mit hjemmeautomatiserings system scraper deres website et par gange om dagen.
Nårh whatever, de kan sikkert ikke registrerer forskel på webclienten i .NET og min standard browser (giver den med vilje HTTP headers der hjælper med camouflagen) :)
Alternativt kunne du overveje at bruge dette API:
http://developer.yahoo.com/weather/
Jeg har ikke brugt det selv, men har overvejet det flere gange. Jeg ved ikke hvor gode deres data er om DK.
Det er gratis til non-profit brug.
/Claus
Jeg har allerede haft kig på de alternative API'er og ingen synes at tilbyde de samme muligheder som jeg har med mit eget scrapingbibliotek som går over DMI.
Fx har jeg adgang til pollendata, vindretninger, vindhastigheder, UV index og meeeeeget mere, plus jeg har vejrudsigten både på dansk og engelsk. Samtidigt med jeg selv har lavet en masse hjælpeklasser til, at validere og genkende data.
Har fx ikke set funktionen:
Get_UV_Danger_Level(Vejrtype)
nogle andre steder endnu og den er dejlig at have til automatiske advarsler om forhøjet UV.
Når nok selvros, bare rolig folkens jeg skal nok komme til at græde den dag de ændrer deres layout! :)
@Stig Johansen Synes du skal sende den fine opsummering til politikkerne så vi kan få dem til at kigge på hvor let det er - jeg ved det godt :) (no offense)
Det er en lost battle - been there, done that.
Jeg blev faktisk hentet ind som en del af starten på 'XML-projektet' (aka OIO...)
Problemet var bare at flertallet bestod af ikke vidende personer, som aldrig havde 'rørt' materien.
Jeg kunne bidrage med erfaringer fra 'papirløse obligationer' ('83) samt decentral (near) real time børshandel ('88), men 'flertallet' skulle have støbt det her 'monument', så de kunne komme videre i deres karriere.
Men inden for EDB/IT eksisterer der det mærkelige fænomen, at alle (nye) ved bedre, og erfaringerne er ligegyldige.
Det groteske er jo, at det er logistikken (og interoperabiliteten), der er issuet, og ikke værktøjerne.
Held og lykke med dit scraping værktøj, men som du selv er inde på, så vil man få et stigende problem, ikke mindst med differentieret HTML fra .NET samt ændret 'layout'.
Den rigtige måde ville dog være at lave multiple layers, hvor strukturerede data kan tilgås via et (veldefineret) API - selvfølgelig med versionsstyring.
Men vi er nok ude i 'burhønseeffekten', hvor det 'billigste' vinder, uagtet det er lavkvalitet.

