Tiedonharavointi

Tiedonharavointi (myös "web-kaavinta", "verkkosivujen haravointi",  scraping, web harvesting, web data extraction) tarkoittaa ihmisen luettavaksi muotoillun tiedon automaattista kokoamista aineistosta, erityisesti verkkosivuilta.

Sivuilta voi hakea jotain tekstimuotoista dataa, tai kuvia tai videoita. Edelleen web-haravoijaa voi kiinnostaa esimerkiksi tuotetiedot kuten tuotteiden hinta eri verkkosivuilla, asiakkaiden palaute, sosiaalisen median postaukset.
Informaatio kerätään esimerkiksi ohjelmassa käsiteltäväksi, tietokantaan tai laskentataulukkoon. Tietojen keruun voi tehdä käsin, mutta tyypillisesti käytetään automaattisia työkaluja, jotka erottavat halutun tiedon. Ohjelmalle voi antaa URL-osoitteita joista ladataan verkkosivun HTML-tiedosto. Kehittyneemmät kaapijat osaavat ladata koko webbisivun CSS-tyylisivuja ja JavaScriptiä myöten. Haravoija etsii sivulta kaiken käyttökelpoisen tiedon, tai jonkin tiedon jonka käyttäjä on määritellyt ennen ajoa ja muuntaa sen käyttäjälle hyödylliseen muotoon, esimerkiksi CSV, Excel-tiedostoksi tai jopa JSONiksi, jota voidaan käsitellä edelleen.

Tiedonharavointi voidaan tehdä käsin copy-paste-menetelmällä (tai tallentamalla tiedostoja). Käyttäjä voi ohjelmoida oman skriptin, joka etsii tietoa esim. säännöllisten lausekkeiden avulla, jäsentämällä ja käymällä läpi dokumentin DOM-mallin, etsimällä metadataa tai jopa koneoppimisen ja konenäön avulla. Tarkoitusta varten on myös valmiita, kustomoitavia ohjelmia ja selainlaajennoksia.

Osapuolet, joiden tietoja pyritään haravoimaan, voivat pyrkiä estämään tämän esimerkiksi verkkosivun käyttöehdoilla. Verkkosivun koodi voidaan myös obfuskoida lukemiskelvottomaksi. CAPTCHA-kyselyt voivat tehokkaasti estää automaattisen tietojen haravoinnin.

Tiedonharavoinnin vastakohtana voidaan pitää APIen käyttöä. Useat suuret verkkosivustot kuten Google, Facebook tai StackOverflow tarjoavat valmiin rajapinnan, jolla sivuston data voi käyttää strukturoidussa muodossa.

Lähteet
 https://www.parsehub.com/blog/what-is-web-scraping/
 https://www.g2.com/articles/web-scraping
 https://www.geeksforgeeks.org/what-is-web-scraping-and-how-to-use-it/

Ohjelmointi