Többségében azok, akik figyelemmel kísérik korunk IT innovációit egyre többet találkoznak a big data, üzleti elemzés (business analysis), üzleti intelligencia (business intelligence) fogalmakkal vagy területekkel. A felsoroltak összességében az adatalpú döntéshozatalt hivatottak támogatni. 

Mindehez azonban adatra van szükség. Sok esetben olyan adatokra is, melyek nem állnak rendelkezésünkre belső adatbázisunkban. Külső forrásból megszerezhető információk begyűjtése azonban nem minősül minden esetben illegális tevékenységnek, mégha versenytárs adatairól is van szó.

 

Lehetséges források az adatgyűjtéshez

A nagy kérdések egyike, hogy mit is szeretnénk megtudni, amihez társul a honnan is tudjuk meg azt… Online publikusan elérhető információkat három csoportra oszthatjuk: 

  • közösségi média oldalak (pl. facebook, youtube stb.)
  • fórumok
  • egyéb weblapok

A közösségi média oldalak biztosítanak hozzáférést olyan adatokhoz, melyek nem láthatóak üzleti profilunk vagy oldalunk dashboard-ján. Ilyen „rejtett” információk például a kommentek vagy posztok teljes szövege. (GDPR hatálybalépése óta a felhasználók nem azonosíthatók, de a kommentek hozzáférhetők.) A dashboard-on látható információk (a like-ok vagy dislike-ok száma) is letölthetők. Ezáltal a publikusan elérhető és háttérben tárolt adatokat összevetheted.

A nem saját fórumok esetében annyivel nagyobb a kihívás, hogy nincs monitoring felület, mint a közösségi hálókná és háttéradatbázishoz sincs hozzáférésünk. Mindezek ellenére a fórumok HTML kódjában (amit a böngészőnk az általunk látható formában ad vissza) publikált részletekhez hozzáférhetünk. Ezen felületek nagyrésze szöveg, de bizonyos esetekben dokumentumokat is tartalmazhatnak.

Egyéb weblapokhoz sorolom az online webaruházakat (e-bay, amazon, aliexpress stb.) és a versenytársak honlapjait. Ezek esetében a fórumokhoz hasonlóan a HTML kódban találhatók, amire szükségünk lehet. Ebben a kategóriában a kihívást az oldalak szerkezetének nyomonkövetése jelenti. Egy újrastruktúrált oldal esetén a mi adatlekérdezőnk is módosításra szorul.

 

Eszközök melyekkel hozzá tudsz férni, kívánt adatokhoz

Az adatforrások száma végtelen. A hozzáférési lehetőségek számáról ez nem mondható el. Hozzáférési eszközválasztásunkat nagyban befolyásolja, hogy a forrás üzemeltetője milyen lehetőséget ad a felhasználók számára, illetve milyen gyakran szeretnénk frissíteni a meglévő adatokat.

Legegyszerűbb dolgunk, abban az esetben fordul elő, amikor az elérendő adathalmazra csak egyszeri alkalommal van szükségünk és az egy fájlban elérhető adott oldalon.

Programnyelvek (pl. Python, R, C#, JAVA) használata akkor indokolt, amikor adott oldalról különböző időperiódusonként van szükségünk adatfirssítésre. Ekkor legyen szó fájlletöltésről vagy az oldal kódjából való úgy nevezett „scrape”-elésről a korábban emlegetett programnyelvek bevetése elkerülhetetlen. A „scrape”-elés gyakorlatában a legelterjedtebb programnyelv a Python, melyben a munkát különböző scraper-keretek (pl. Scrapy)  és függvénycsomagok (pl. BeautifulSoup, Selenium, urllib)  segítik. További programnyelvek esetében is fennállnak függvénygyűjtemények, melyek felgyorsíthatják az adatletöltő algoritmus elkészülését.

Vannak bizonyos oldalak, amik megkönnyítik az adathozzáférést, ingyen vagy részben ingyenesen. Az utóbbi eshetőség során egy bizonyos letöltési határ (kvóta) fölött költségvonzata van a további hozzáférésnek. Programnyelvek vannak segítségünkre ez esetben is, de a megkönnyített adathozzáférés API -kon (Application Programming Interface-en) keresztül történik. API-kkal lerövödíthető a munkamenet azáltal, hogy egy adatkonnektort kapunk, melynek használatáról az adott API fejlesztője / kibocsátója használati utasításban tájékoztat.

 

A hogyan lépései (adatgyűjtés To – Do listája )

Az előző bekezdésben szó esett programnyelvekről, API-król, letöltési korlátokról, de arról még nem, hogy miként használhatók ezek. Egy blog cikk terjedelme nagyon kevés, ahhoz, hogy lefedje a teljes témakört, hiszen a témában számtalan könyv látott már napvlágot (lásd: Amazon.com).

A munkafolyamat általános leírását ismertetőnek szánom. Az egyes fő lépéseken belül az adott oldal struktúrájának és az elérendő adat típusának függvényében szükséges az allépéseket megtenni. Az allépések számtalan lehetősége miatt jelen cikk részletessége erre nem tejred ki. Az adathozzáférés 2 módjának analógiáját veszem számításba: API-val és API nélkül.

a) Adathozzáférés API-val

1. API használatához a legtöbb esetben az API kibocsátójának fejlesztői felületén regisztrálni szükséges. A fejlesztői konzolon létre kell hozni egy projektet (applikációt), melyhez csatlakozva adatokhoz lehessen hozzáférni. A projekt létrehozása során egy token jön létre (API Token: API szolgáltatáshoz való hozzáférése egyéni azonosítója).

2. API szolgáltatáshoz kapcsolódva, a használt programnyelv csatlakozási függvényében paraméterként adjuk meg projektünk / applikációnk token-jét. Vannak esetek amikor a regisztárció során megadott email címünket vagy felhasználó nevünket is meg kell adni a kódon belül.

3. Sikeres csatlakozás esetén hozzáférhetünk olyan adatokhoz, amit felhasználói oldalrólnagy volumenben manuálisan kinyerni nem lehetséges vagy körülményes.

Az egyes API-k használati utasításában tájékoztatást kapunk arról, hogy mely adatot hol találjuk.

b) Adathozzáférés API nélkül:

1. Ha API szolgáltatáshoz való hozzáférés nincs, adatletöltési korlátok sem kötnek. Negatív tényezőként van jelen, hogy ez esetben nincs tájékoztató anyag a struktúrált adathozzáférésről, illetve CAPTCHA-val védhetik a megszerzendő információt. Az esetleges bejelentkezést is végre kell hajtani, ha felhasználói bejelentkezés szükséges az eléréshez.
Mindez természetesen áthidalható. CAPTCHA jelenléte esetén körülményesebben, de nem lehetetlen.

2. Egy CAPTCHA  védelem nélkül ellátott oldal HTML kódja könnyedén lekérhető a használt programnyelv erre alkalmas függvényével, amit szövegként kapunk vissza. CAPTCHA megkerüléséhez képfelismerő folyamatokat kell beépítenünk, hogy az emberi interakciót imitálni tudjuk alkalmazásunkkal. Ez a téma a jelen bejegyzés keretein túlmutat, így arra részleteiben a későbbiekben kerül sor.

3. A HTML kód-ban tag-ekre hivatkozva (pl. <div>;  <p>; <a> vagy <href>) megszerezhetők a keresett részletek és ezeket saját igényeinkhez alakítva tárolhatjuk vagy végezhetünk rajtuk a tárolást megelőző tisztító műveleteket. Ezen lépésben az oldal szerkezetére hatást nem gyakorolunk, mert ekkor az oldal kódja (ahogy letölteni akarjuk) a memóriában vagy egy fájlban található.

4. Amint felépítettük az adateléréshez szükséges folyamatunkat, annak ütemezéséről is döntenünk szükséges, ha automatizált megoldásban gondolkodunk. Ellenkező esetben szükségünk van valakira, aki bizonyos időpontokban elindítja a program futtatását.
Az automatizálást legegyszerűbben úgy oldható meg, hogy az operációs rendszerünk ütemezett háttérfolyamatának ütemezzük be scrape-erünket. További lehetőségek egyike, hogy felhő alapra helyezzük az ütemezést. Felhőalapú futtatásra van lehetőség a ScrapingHub szolgáltatásának köszönhetően, de saját szervereinken is futtathatunk ilyen alkalmazásokat.

5. A letöltés után a harmadik lépés a tárolás. A tárolás módjában nagyobb a döntési szabadságunk adatmennyiségtől függően. Kisebb adatmennyiségek tárolására elegendő saját számítógépünkön túl egy kisebb felhő tárhely (pl. Google Drive). Nagyobb volumenek esetén érdemes fontolóra venni eszközpark kiépítését vagy nagyobb tárhelyszolgáltatásokat (Amazon Web Services, Google Cloud Storage).

6. A további felhasználáshoz, ha a tárolást megelőzően nem tisztítottuk adatainkat, akkor ezt a későbbiekben bármikor megtehetjük, hogy egyszerű vagy haladóbb elemzéseket hajtsunk végre rajtuk.

Miért is jó mindez?

A válasz igazán egyszerű, mert informáltak akarunk lenni és nagyobb betekintést szeretnénk nyerni ügyfeleink, fogyasztóink, vagy esetleg versenytársaink online viselkedésébe. A róluk online kinyerhető adatok a megfigyelt egyén típusától függően hasznosítható.

Ügyfelek vagy fogyasztók social media oldalunkon például kommentelhetnek termékünkről / szolgáltatásunkról vagy márkánkról. Az oldalunk adott reakciók (kommentek, like-ok, dislike-ok, emocionális ikonok) kielemzésében nagy segítségre lehetnek a social media oldalak API szolgáltatásai.

Túlmehetünk azokon a leíró elemzéseken melyeket a közösségi média oldalak dashboard-jain érhetünk el. A letöltött adatokból érzelmi elemzést (semantic analysis) végezhetünk pl. a márkánkhoz fűződő pozitív vagy negatív megítélésről.

Ha nincs API szolgáltatás pl. webáruházak esetén, akkor is hasznos lehet számunkra, ha árak vagy termékkategóriákat szándékozunk megfigyelni versenytársak honlapjain.

 

Összegzés

Az előző bekezdések soraiban végigmentünk azokon a jogilag szabályos lehetőségeken melyek teret biztosítanak arra, hogy növeljük versenyképességünket és üzleti intelligencánkat.

Első körben láthattuk, hogy mely források típusok állnak rednelkezésünkre, hogy üzleti információkkal gazdagítsuk adatbázis

unkat. Az online adatgyűjtés eszközeibe és folyamatába tekinthettünk be, majd a felhasználási lehetőségek egy részére is felhívtam a figyelmet.

Ha hasznosnak találtad a fentebb leírtakat kérlek oszd meg ismerőseiddel, küldd el nekik üzenetben vagy emailben.

Többet szeretnél tudni a témáról kérlek írd meg emailben a info@businesswatcher.hu címre.

 

„GYIK”


Hogyan gyűjthetek automatizáltan adatot?

Egyik módja web scraper vagy úgy nevezett Crawler segítségével, amikkel a honlapok kódjából nyerhetjük ki a kívánt elemeket.
A másik módja, hogy az API hozzáférést biztosító oldalak adatábzisához programatikusan (Application Programic Interface). A folyamat felépítését a cikkben megtalálod.

Scrape-elés szembe megy a GDPR-ral?

Ez attól függ, hogy milyen adatokat és honnan nyerünk ki. Személyes adatok esetén problémába ütközhetünk.

Mivel csatlakozhatok API-hoz vagy készíthetek Scraper-t?

A használni kívánt API kibocsátójának oldalán rendszerint publikálják az API használati utasítását. A használati utasításban fel vannak tűntetve a preferált programnyelvek.
Scraper-t Python-ban érdemes írni, mert megannyi praktikus függvénykönyvtárral rendelkezik.