Kokkuvõte
Uurimisorganisatsioon kulutab aega käsitsi või juhusliku veebisaidiandmete kogumise asendamisele korduva andmete eraldamisega.
Lahendusest sai seadistatav scraper, mis järgib lehereegleid, käsitleb dünaamilist sisu ja ekspordib struktureeritud kirjeid.
Tarkvara on loodud käsitsi kogumise ja ebaühtlase andmete eraldamise vähendamiseks.
Kliendi lugu
Klient on Saksamaalt pärit uurimisorganisatsioon. See kogub uurimistöö jaoks avalikelt veebisaitidelt toodete, kuulutuste ja kontaktide andmeid.
Käsitsi ja juhuslik andmekogumine võtab meeskonnalt aega, eriti siis, kui sihtveebisaidid kasutavad lehekülgede numeratsiooni, muutuvat struktuuri ja dünaamilisi tabeleid.
Soov oli lihtne: võtta vastu siht-URL-id või URL-mustrid, seadistatavad selektorid või seadistusfailid ning tagastada valitud veebisaidi sisu struktureeritud kirjetena.
Lahendus kujundati seadistatavate väljareeglite, mitmeleheküljelise läbimise ja brauseripõhise renderdamise ümber. Ajastatud käivitused ja selged logid toetasid korduvat andmekogumist.
Klient soovis
- URL-ide, URL-mustrite, selektorite, XPath-ide või seadistusfailide vastuvõtmist
- Valitud sisu eraldamist struktureeritud kirjetesse
- Lehekülgede numeratsiooni järgimist lehtedel ja veebisaitidel
- JavaScripti lehtede, dünaamiliste tabelite ja laisklaadimise käsitlemist
Miks valmis tarkvara ei sobinud
Valmis andmete eraldamise tarkvara katab palju allikatüüpe, samas kui hallatud scrape'i teenused keskenduvad API-dele, brauseritaristule ja puhverserveritele. See klient vajas projektipõhiseid välju, selektoreid ja lehekülgede numeratsiooni reegleid. Lahendus pidi toetama ka kohalikku kasutust, dokumentatsiooni ja kindlaksmääratud väljundnõudeid.
Projekti ülevaade
Lahendus kavandati scrape'i seadistusekraani ümber, kus uurimisrühm määrab siht-URL-id, väljad ja selektorid. Saadaval on ka lehekülgede numeratsiooni reeglid ja väljundvormingud.
Erinevate lehestruktuuride käsitlemiseks kasutab scraper väljade, nähtava teksti ja tabelite seadistatavaid eraldamisreegleid. See läbib seotud lehti ja järgib vajadusel lehekülgede numeratsiooni.
JavaScripti lehtede, dünaamiliste tabelite ja laisklaaditava sisu jaoks pakuti brauseripõhist renderdamist. Staatilised lehed võivad selle asemel kasutada otse HTTP-päringuid ja HTML-i parsingu teeki.
Lahendus kujundati ka korduvaks kasutamiseks. See töötab käsurealt või kohalikus arvutis, toetab ajastamist ning registreerib tõrked ja korduskatsed.
Kogutud kirjed saab eksportida CSV-, JSON- või Excel-vormingusse. PostgreSQL, kerge REST JSON-i lõpp-punkt ja projekti dokumentatsioon toetavad kliendimeeskonna edasist kasutust.
Rakendatud põhifunktsioonid
- Seadistatavad siht-URL-id ja URL-mustrid
- Väljaselektorite ja XPath-i redaktor
- Mitmeleheküljeline läbimine ja lehekülgede numeratsioon
- JavaScripti ja laisklaaditava sisu renderdamine
- CSV-, JSON- ja Excel-eksport
- Kiiruspiirangud, viivitused, korduskatsed ja kasutajaagendi seaded
- Käivituste ajalugu ja scrape'i logid
- PostgreSQL-i või REST JSON-i edastus