Kapittel 5 Utfordringer, hensyn og alternativer

5.1 Webscraping og webcrawling

Webscraping handler om å hente ut data. Webcrawling likner, men dette handler om å lage en funksjon som beveger seg gjennom lenker på et nettsted for å hente ut relevant informasjon. Vi så tidligere at vi kan bruke noden <href> i en nettside for å referere til andre nettsider. Når vi lager en funksjon som klikker seg inn på ulike lenker, bruker vi denne taggen for å vise til lenkene. De tyske forskerne hadde brukt en blanding av webcrawling og webscraping da de lot funksjonen gå inn på et utvalg nettsider innenfor nettstedet for å lokalisere korona-relaterte ord.

5.2 Utfordringer ved webscraping

Webscraping har mange fordeler, men det er heller ikke uten problemer. Eksempler på utfordringer inkluderer:

  • Klienten bestemmer: Vi kan ikke styre hva slags data som legges ut, vi må ta til takke med det som er. Denne dataen kan være biased, ukomplett eller feil, eller den kan være irrelevant for det vi prøver å finne ut av.
  • Nettsideavhengighet: Mye kan skje på nettet. Nettsidene kan endre struktur, de kan si opp domenenavnet, endre navnet på nettsiden, osv. Alt dette vil påvirke muligheten for å hente informasjon, og gjøre det risikabelt å lage en kode som skal fungere regelmessig over tid.
  • Serverbelastning: Serveren til klienten kan gå ned hvis nettstedet får veldig mye trafikk på en gang. Da blir man upopulær.

5.3 Hensyn å ta når man webscraper

Hvis vi skal hente ut mye informasjon fra en nettside raskt og hyppig, kan dette legge stort press på serveren. I verste fall kan serveren krasje, og da går alle nettsidene ned. Det er som om en bygning (server) med mange rom (nettsteder) plutselig stenger. Dette vil vi unngå. Pass derfor på å:

  • Lagre data lokalt slik at man slipper å scrape flere ganger.
  • Sette inn en timer på et par sekunder som gjør at koden venter litt før den fører en ny spørring mot serveren.
  • Scrape bare det du faktisk trenger.
  • Sjekk en nettside sin robots.txt-fil for å finne ut hvilke sider nettsidebyggeren har bestemt kan webcrawles, og hvilke som ikke kan webcrawles.
  • nettside/robots.txt, f. eks. www.ssb.no/robots.txt

5.4 Alternativer til webscraping

Enkelte nettsider tilbyr APIer for å hente ut data. API står for «Application Programming Interface», og er en måte vi kan dele informasjon på tvers av kildekoder. For eksempel kan det være at en nettside har en tabell på hjemmesiden sin, men samtidig tilbyr en mulighet for å laste tabellen ned via et API i form av f. eks. en csv-fil eller en json-fil.

For eksempel har denne siden til Skatteetaten: https://www.skatteetaten.no/presse/innsyn-kompensasjonsordning/ en tabell som vi kunne scrapet ut. Samtidig har den imidlertid også en knapp som heter «Eksporter som», hvor vi kan få hele tabellen uten å scrape noe som helst. Noen APIer er betalte varer, og man kan jo da undres litt på lovligheten av å istedenfor scrape ut informasjonen. Det er, så vidt jeg vet, ingen klarhet i hva loven sier her.