Tiedonharavointi

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

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.

Esimerkiksi Pythonissa on kirjastoja tiedonharavointiin esimerkiksi BeautifulSoup ja Selenium.

## Tekoälybotit
Haravointi voi olla verkkopalveluiden tarjoajille ongelma, koska hakurobotit vievät paljon verkkokaistaa eivätkä ne huomioi tekijänoikeuksia. Vaikka suuret yritykset kuten Google maksavat verkkosivustojen tiedoista monet tekoälyn tarpeisiin käytetyt *haravointibotit* (*scraperbot*) eivät aina noudata robots.txt-tiedostojen asetuksia. Suurimmat tekoälyjen kyselyjä aiheuttavat botit ovat Bytespider ja GPTBot, jotka yhdessä vastaavat noin kolme neljännestä verkkosivujen hauista. Botit voivat myös pyrkiä esiintymään tavallisina verkkoselaimina, jotta ne voivat kiertää boteille asetettuja rajoituksia. Tiedonharavointiin käytetään joissakin tapauksissa bottiverkkoja liikenteen hajauttamiseen ja estojen kiertämiseen.

Sivustot kuten Wikipedia ovat todenneet kustannusten nousun koska botit hakevat harvoin käytettyä tietoa ja järjestelmä on suunniteltu ihmisten tavalle hakea tietoa.

## 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/

### Viitteet