Kom i gang med webskraping

Hvordan få skal en få fatt i data som ligger gjemt i web-sider rundt omkring. Jo, med webskraping. Jeg har faktisk vært med på dette før, og det er fint å se dette bruk for å hente "åpen data".

En post fra Vox Publica by Eirik Stavelin har hele historien. Her er en del:

Når data blir tilgjengeliggjort på web, er det i form av websider (html), flash eller pdf. Ingen av disse formatene er egnet som en datakilde til viderebruk, men med litt arbeid kan de bli det. Denne posten gir deg det du trenger for å komme i gang med webskraping, kunsten å maskinelt hente ut og strukturere data fra web.
“Bruksanvisningen” er basert på en glimrende guide fra ProPublica, ispedd egne erfaringer med alternative verktøy til de ProPublica har benyttet.

Webskraping: eksempel og verktøy

Webskraping er å lese en webside via en programvare for så å hente ut visse deler av (html-)koden websiden består av, for deretter å lagre disse delene etter eget ønske. Typisk skriver man et lite script som gjør denne jobben.
Eksempel: du jobber med økonomi/politikk i en redaksjon og ønsker å vite 1) hvor ofte din kommune er klaget inn for KOFA (Klagenemnda for offentlige anskaffelser) de seneste årene, 2) hvem som klager oftest/oftest blir innklaget i ditt område, og 3) hvor ofte kommunen får medhold i sakene de blir innklaget for. Videre ville det være greit å lage seg en liten tjeneste som automatisk informerer deg hvis det dukker opp nye saker som involverer din kommune/et spesielt firma i KOFA.
All denne informasjonen finnes på kofa.no, men ikke på en slik måte at denne enkelt kan leses av. Se på en vilkårlig detaljside fra kofa.no. Informasjonen her er allerede ganske godt strukturert, ved å samle dette inn i en database (eller Excel, hvis du foretrekker det) kan alle tre punktene over raskt besvares.
Propublica.org gir deg en fyldig guide for hvordan gjøre just dette i ruby med nokogiri. Du kan strengt tatt bruke et hvilket som helst språk, selv har jeg gode erfaringer med python og BeautifulSoup, og anbefaler det som et greit sted å starte.
Poenget er helt enkelt å lese inn en webside, selektere elementer som skal spares (det er dette nokogiri og BeautifulSoup benyttes til), for så å lagre disse utvalgte elementene på en måte du selv foretrekker. Det finnes masse guider på webben om detaljene i hvordan dette gjøres for utallige språk, her er et eksempelsøk.
Når du så har satt sammen et script som henter ut det du vil ha, kan det være greit å automatisere kjøringen av scriptet. Denne typen informasjon er det kanskje praktisk å få på starten av arbeidsdagen eller starten av uken. Å sette et script til å automatisk kjøre på visse tider kan f.eks. gjøres ved å sette opp en crontab (automatisert oppgave). På den måten kan du også sende e-post automatisk til deg selv, det som du velger å skrive ut (print/put/echo/…) i scriptet blir innholdet i mailen. Sørg for å gi deg selv nyttig og meningsfull informasjon i disse mailene, før eller siden glemmer du detaljene i hvordan informasjonen hentes inn.

Populære innlegg fra denne bloggen

Predicates in Core Data

Hva er den egentlige forskjellen på høstens nettbrett?

InvestorForum by VentureLab in Oslo a success story #startups