Santrauka
Tyrimų organizacija skiria laiko rankiniam arba atsitiktiniam svetainių duomenų rinkimui pakeisti pasikartojančiu išgavimu.
Sprendimas tapo konfigūruojamu duomenų rinktuvu, kuris seka puslapių taisykles, apdoroja dinaminį turinį ir eksportuoja struktūrizuotus įrašus.
Programinė įranga sukurta siekiant sumažinti rankinį rinkimą ir nenuoseklų išgavimą.
Kliento istorija
Klientas yra tyrimų organizacija iš Vokietijos. Tyrimų reikmėms ji renka produktų, skelbimų ir kontaktų duomenis iš viešų svetainių.
Rankinis ir atsitiktinis rinkimas komandai kainuoja laiko, ypač kai tikslinėse svetainėse naudojamas puslapiavimas, kintančios puslapių struktūros ir dinaminės lentelės.
Užduotis buvo paprasta: priimti tikslinius URL arba URL šablonus, konfigūruojamus selektorius ar konfigūracijos failus ir grąžinti pasirinktą svetainių turinį kaip struktūrizuotus įrašus.
Sprendimas sukurtas aplink konfigūruojamas laukų taisykles, kelių puslapių tikrinimą ir naršyklinį atvaizdavimą. Suplanuoti paleidimai ir aiškūs žurnalai užtikrino pasikartojantį rinkimą.
Klientas pageidavo
- Priimti URL, URL šablonus, selektorius, XPath arba konfigūracijos failus
- Išgauti pasirinktą turinį į struktūrizuotus įrašus
- Sektų puslapiavimą puslapiuose ir svetainėse
- Apdoroti JavaScript puslapius, dinamines lenteles ir atidėtą įkėlimą
Kodėl netiko paruošta programinė įranga
Paruošta duomenų išgavimo programinė įranga apima daugelį šaltinių tipų, o valdomos rinkimo paslaugos daugiausia orientuotos į API, naršyklių infrastruktūrą ir tarpinius serverius. Šiam klientui reikėjo konkrečiam projektui pritaikytų laukų, selektorių ir puslapiavimo taisyklių. Sprendimas taip pat turėjo veikti vietoje, turėti dokumentaciją ir atitikti nustatytus išvesties reikalavimus.
Projekto apžvalga
Sprendimas sukurtas aplink duomenų rinktuvo konfigūravimo ekraną, kuriame tyrimų komanda nurodo tikslinius URL, laukus ir selektorius. Taip pat galimos puslapiavimo taisyklės ir išvesties formatai.
Skirtingoms puslapių struktūroms tvarkyti rinktuvas naudoja konfigūruojamas laukų, matomo teksto ir lentelių išgavimo taisykles. Jis tikrina susietus puslapius ir prireikus seka puslapiavimą.
JavaScript puslapiams, dinaminėms lentelėms ir vėliau įkeliamam turiniui pateiktas naršyklinis atvaizdavimas. Statiniams puslapiams vietoj jo galima naudoti tiesiogines HTTP užklausas ir HTML analizę.
Sprendimas taip pat pritaikytas pasikartojančiam naudojimui. Jis veikia iš komandinės eilutės arba vietiniame kompiuteryje, palaiko planavimą ir registruoja klaidas bei pakartotinius bandymus.
Surinkti įrašai gali būti eksportuojami į CSV, JSON arba Excel. PostgreSQL, lengvas REST JSON galinis taškas ir projekto dokumentacija padeda kliento komandai juos naudoti toliau.
Pagrindinės įgyvendintos funkcijos
- Konfigūruojami tiksliniai URL ir URL šablonai
- Laukų selektorių ir XPath redaktorius
- Kelių puslapių tikrinimas ir puslapiavimas
- JavaScript ir vėliau įkeliamo turinio atvaizdavimas
- CSV, JSON ir Excel eksportas
- Užklausų dažnio ribojimas, delsos, pakartotiniai bandymai ir naudotojo agento nustatymai
- Paleidimų istorija ir duomenų rinkimo žurnalai
- PostgreSQL arba REST JSON perdavimas