Scraping

Scraping

A scraping definíciója

A scraping szó magyarul kaparást vagy lekaparást jelent, azonban a szó online közegben általában egy webes tulajdon lemásolását és egy másik oldalon történő megjelenítését jelenti. Mondhatjuk úgy is, hogy scraping, vagy web scraping egy webhely adatainak kinyerése. A scraping, mint technológia használható tiszta, szabályos célokra, vagy akár lopásra is.

A scraping során összegyűjtött adatokat később általában táblázatként vagy más formátumként exportálják, hogy átláthatóbbak és könnyedén felhasználhatók legyenek. Ezek az adatok rögtön átvihetők egy alkalmazásba is, a megfelelő API használatával.

A web scraping elvégezhető manuálisan, de az esetek többségében automatizált eszközökkel (robotokkal) végzik, amelyek sokkal gyorsabban képesek kinyerni egy webhely adatait, mint egy valódi személy.

A scraping nem egy egyszerű feladat – a webhelyek többsége egyedi, és ha egy scraper bot (egy ilyen adatkinyerésre használt szoftver) jól működik az egyiken, még nem biztos, hogy a másikon is hatékony munkát végez majd.

 

A scraping működése

Az automata scraping botok működése meglehetősen változatos, hiszen olyan webhelyek értelmezésére kell elkészíteni őket, mik eredetileg embereknek szólnak, nem pedig robotoknak.

A scraper botnak először is egy, vagy több URL címet adnak meg, mielőtt megkezdené a scrapinget. A bot ezt követően betölti az URL-hez tartozó oldal HTML kódját. A fejlettebb scraperek a JavaScript és CSS kódokat is képesek értelmezni, így a teljes tartalom látható számukra.

A bot ez után kinyeri az oldalon található összes adatot, vagy csak azon adatmezők tartalmait, amelyekre beállították. Például egy árakat összehasonlító webhely oldalairól szeretnéd kinyerni a termékek nevét és árát, de nem vagy kíváncsi a termékek értékeléseire, stb.

A scraper bot végül egy átláthatóbb formátumban (pl. táblázatfájlként) exportálja a kinyert adatokat.

 

A scraperek fajtái

A webhelyek sokfélesége miatt a scraperek listája is változatos. Az egyszerűség kedvéért soroljuk most őket 4 kategóriába, de ennél persze részletesebben is megkülönböztethetők egymástól.

 

Saját készítésű és előre elkészített scraperek

Akárcsak egy webhelyet, egy webhelyeket lemásoló scrapert is bárki el tud készíteni magának, ha van hozzá elég szaktudása. Értelemszerűen, minél több funkciót szeretnél hozzáadni scraperedhez, annál több háttértudásra lesz szükséged hozzá.

Léteznek letölthető scraperek is, amiket mások készítettek, de közkinccsé tették őket.

 

Böngészőbővítmények és különálló szoftveres scraperek

A böngészőbővítmények olyan kisméretű programok, amik a Chrome, a Firefox, és más, bővítményeket támogató böngészőkbe telepíthetők fel (ha elkészítik őket az adott böngészőhöz is). Ezeket egyszerűbb lefuttatni, hiszen kényelmesen kézre állnak a böngészőn belül.

Azonban ez akár hátrány is lehet, hiszen a korszerűbb funkciókat nem feltétlenül támogatják a böngészőprogramok, így az ilyen a scraperek használata korlátozott lehet.

A különálló scraping szoftverek ezzel szemben kevésbé kényelmesek ugyan, de nem korlátozza őket a böngészők keretrendszere.

 

Felhasználói felület

Két scraper felhasználói felülete olyan élesen eltérhet egymástól, hogy meg sem mondanád róluk, hogy azonos jellegű programokról van szó.

Egyes web scraperek például csak egy nagyon minimális kezelőfelülettel rendelkeznek, és a funkciók nagy részét parancssoron keresztül lehet csak használni. Ez kevés felhasználónak kedvez.

Más scrapereknek teljesen kidolgozott felhasználói felületük van, ami a kérdéses webhelyet is betölti, a felhasználónak pedig csak rá kell kattintania azokra az elemekre, amiket szeretne kinyerni. Ezek használata lényegesen egyszerűbb, habár elkészítésük is bonyolultabb lehet.

 

Helyi és felhőben megosztott scraperek

Manapság egyre több szolgáltatás érhető el valamilyen felhőből, és ez alól a scraperek egy része sem kivétel.

A felhőalapú scraperek egy másik szerverről futnak, amit általában az a cég üzemeltet, amely a scrapert is fejleszti és kínálja. Felhőalapú scraperek használatakor a scraping folyamata nem a te számítógéped erőforrásait terheli, hanem a szerverét. Te végül csak a kinyert adatokat kapod meg, amikre szükséged van. A felhőalapú scraperek hátránya lehet, hogy kevesebb beállítást kínálnak, mint egy olyan helyi alternatíva, aminek esetleg a forráskódjához is hozzáférsz.

A helyileg működő scraperek ezzel szemben a saját rendszeredről működnek, így a saját erőforrásaidat is használják fel. Ez nagyobb webhelyek elemzése, és sok adat kinyerése során nagyon leterhelheti a számítógépet, amit talán nem is tudsz minden másra használni, míg a folyamat be nem fejeződik. Na persze, a helyileg használt scrapereknél előfordulhat, hogy hozzáférsz a forráskódjukhoz, ami korlátlan mennyiségű testreszabást tesz lehetővé.

 

Scraping a gyakorlatban

Jogosan merül fel a kérdés, hogy mi mindenre használhatók a scraperek. Fontos megjegyezni, hogy az adatok ilyesfajta kinyerése és tárolása önmagában általában nem minősül szabálysértésnek, hiszen egy scraper csak olyan adatokat képes megszerezni, amik nyilvánosan is elérhetők a weboldalak HTML-kódjából. Azonban az már egészen más kérdés, hogy mi a célod velük.

Természetesen semmilyen körülmények között nem javasoljuk, vagy támogatjuk az illegális célú adatkinyerést, illetve –felhasználást.

Íme egy rövid lista arról, hogy mi mindenre jó a scraping a gyakorlatban:

  • Részvényárak kinyerése, majd megjelenítése egy alkalmazásban
  • Email címek kinyerése egy webhelyről (csak hogy a nem éppen tiszta taktikákra is legyen egy példa)
  • Címek kinyerése egy üzletkeresőből, egy üzlet-adatbázis összeállításához
  • Korábbi meccsek eredményeinek és egyéb statisztikáinak kinyerése egy jövendőbeli mérkőzés kimenetelének előrejelzése céljából
  • Egy saját webhely adatainak lemásolása a webhely költöztetése előtt
  • Termékadatok kinyerése a termékek egyszerűbb összehasonlítása végett

Gyakori kérdések

Kiemelt területeink