Sitat av
Juicekongen
Hvordan da? Alle annonsene ligger åpent på nettet, og kan crawles av hvem som helst. Hvordan skal Finn.no se forskjellen på nettverkstrafikken som genereres av nettleseren min, sammenlignet med et script som gjør akkurat samme HTTP kall mot serveren deres?
Det er faktisk utrolig enkelt når man har en stor nettside med mye trafikk og mange brukere. Finn vet allerede hva et normalt handlingsmønster er for sine brukere, og da er det plutselig trivielt å se robotene.
En avansert løsning på problemet er å gi hver bruker, IP eller sessionid en "score" for mistenksomhet basert på hvor mange besøk de har hatt siste tidsenhet, hva de besøker, hvor lenge de er på hver side, hvilken rekkefølge ting besøkes i (sammeligne referer). Når scoren går over en gitt verdi, så får man captcha, beskjed om å logge inn, beskjed om å verifisere kontoen sin, eller en beskjed om at man er utestengt en periode. Nøyaktig hva de sjekker, og hva grenseverdiene er, vil de selvfølgelig aldri fortelle deg.
Så jo, det er ganske enkelt å se forskjell på
- Norsk IP
- Nyeste versjon av Chrome
- Innlogget med verifisert konto
- Gjør søk, men klikker bare på et par av linkene
- 100 klikk i timen
vs.
- AWS IP eller annen VPS
- Eldre Chrome*
- Uautorisert bruker
- Gjør samme søk, besøker alle lenkene i tur og orden
- 100,000 klikk i timen
* Fordi automatiseringen ikke auto-oppdaterer seg, med mindre man bruker Selenium e.l på en desktop
Når det er sagt, så vil du sjeldent støte på problemer om du opererer på et lavt nok nivå. Å polle 20 annonser og gjøre ett søk, flere ganger daglig, er nok ikke noe som vil havne på radaren deres i det hele tatt. Forsøker du derimot å kartlegge *alle* biler eller noe sånt, så vil jeg si det er dødfødt. Spesielt om du skal betale noen penger for å utvikle et program som gjør dette. Det kan virke fint en stund, og så plutselig er du kastet ut. Eventuelt endrer de noe strukturelt på nettsiden, slik at parsingen må skrives om altfor ofte til at det er noe gøy.
Sist endret av Dyret; 21. juni 2022 kl. 22:56.