Scraping is known to be difficult to detect and prevent, especially in the context of web APIs. It is in the interest of organisations that rely heavily on the content they provide through their web APIs to protect their content from scrapers. In this thesis, a machine learning approach towards detecting web API content scrapers is proposed. Three supervised machine learning algorithms were evaluated to see which would perform better on data from Spotify's web API. Data used to evaluate the classifiers consisted of aggregated HTTP request data that describes each application having sent HTTP requests to the web API over a span of two weeks. Two separate experiments were performed for each classifier, where the second experiment consisted of synthetic data for scrapers (the minority class) in addition to the original dataset. SMOTE was the algorithm used to perform oversampling in experiment two. The results show that Random Forest was the better classifier, with an MCC value of 0.692, without the use of synthetic data. For this particular problem, it is crucial that the classifier does not have a high false positive rate as legitimate usage of the web API should not be blocked. The Random Forest classifier has a low false positive rate and is therefore more favourable, and considered the strongest classifier out of the three examined. / Scraping är svårt att upptäcka och undvika, speciellt vad gäller att upptäcka applikationer som skrapar webb-APIer. Det finns ett särskilt intresse för organisationer, som är beroende av innehållet de tillhandahåller via sina webb-APIer, att skydda innehållet från applikationer som skrapar det. I denna avhandling föreslås ett tillvägagångssätt för att upptäcka dessa applikationer med hjälp av maskininlärning. Tre maskininlärningsalgoritmer utvärderades för att se vilka som skulle fungera bäst på data från Spotify's webb-API. Data som användes för att utvärdera dessa klassificerare bestod av aggregerade HTTP-request-data som beskriver varje applikation som har skickat HTTP-requests till webb-APIet under två veckors tid. Två separata experiment utfördes för varje klassificerare, där det andra experimentet var utökat med syntetisk data för applikationer som skrapar (minoritetsklassen) utöver det ursprungliga som användes i första experimentet. SMOTE var algoritmen som användes för att generera syntetisk data i experiment två. Resultaten visar att Random Forest var den bättre klassificeraren, med ett MCC-värde på 0,692, utan syntetisk data i det första experimentet. I detta fall är det viktigt att klassificeraren inte genererar många falska positiva resultat eftersom vanlig användning av ett web-API inte bör blockeras. Random Forest klassificeraren genererar få falska positiva resultat och är därför mer fördelaktig och anses vara den mest pålitliga klassificeraren av de tre undersökta.
Identifer | oai:union.ndltd.org:UPSALLA1/oai:DiVA.org:kth-210235 |
Date | January 2017 |
Creators | Jawad, Dina |
Publisher | KTH, Skolan för datavetenskap och kommunikation (CSC) |
Source Sets | DiVA Archive at Upsalla University |
Language | English |
Detected Language | Swedish |
Type | Student thesis, info:eu-repo/semantics/bachelorThesis, text |
Format | application/pdf |
Rights | info:eu-repo/semantics/openAccess |
Page generated in 0.0024 seconds