PROJEKTAS

Svetainių duomenų rinkimas naudojant konfigūruojamą Python automatizavimą

Individualios programinės įrangos kūrimas, Svetainių duomenų rinkimas, Konfigūruojamas Python automatizavimas, Struktūrizuotas CSV ir JSON eksportas, JavaScript puslapių atvaizdavimas, Pasikartojantys duomenų rinktuvo paleidimai, Duomenų perdavimas į duomenų bazę ir API

  • Sritis: Tyrimų paslaugos
  • Vokietija Vieta: Vokietija
  • Įgyvendinimo trukmė: 10 savaitės
  • Technologijos: Python, JavaScript / TypeScript
3 mėnesiai

Šis klientas daug laiko skiria produktų, skelbimų ir kontaktų duomenims rinkti iš viešų svetainių. Rankinis arba atsitiktinis rinkimas apsunkina pasikartojančius tyrimus. Programinė įranga priima tikslinius URL arba URL šablonus, selektorius ir puslapių taisykles. Tada ji pateikia struktūrizuotus įrašus CSV, JSON arba Excel formatu. Tyrimų organizacija gauna vieną konfigūruojamą įrankį pasikartojančiam svetainių duomenų išgavimui, įskaitant puslapius, kuriems reikia naršyklinio atvaizdavimo.

Santrauka

Problema

Tyrimų organizacija skiria laiko rankiniam arba atsitiktiniam svetainių duomenų rinkimui pakeisti pasikartojančiu išgavimu.

Sprendimas

Sprendimas tapo konfigūruojamu duomenų rinktuvu, kuris seka puslapių taisykles, apdoroja dinaminį turinį ir eksportuoja struktūrizuotus įrašus.

Rezultatas

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

  1. Priimti URL, URL šablonus, selektorius, XPath arba konfigūracijos failus
  2. Išgauti pasirinktą turinį į struktūrizuotus įrašus
  3. Sektų puslapiavimą puslapiuose ir svetainėse
  4. 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

Galima pridėti

+ Robots.txt atitikties valdikliai + Debesijos planavimas + Duomenų archyvavimas + Konkretaus projekto dokumentacija + Papildomi duomenų bazės susiejimai

Kas dar gali naudoti šį sprendimą

Šios įmonės susiduria su panašia užduotimi, todėl tą patį sprendimą galima pritaikyti jų viešų svetainių duomenų rinkimui.

Rinkos tyrimų agentūra

Užduotis Ji renka produktų, rinkos ir kontaktų duomenis iš viešų svetainių.
Kaip padeda sprendimas Sprendimas padeda taikyti pasikartojančias išgavimo taisykles ir eksportuoti struktūrizuotus tyrimų įrašus.

Duomenų analizės komanda

Užduotis Ji renka skelbimus, lenteles ir pasirinktą turinį iš viešų svetainių.
Kaip padeda sprendimas Sprendimas padeda sekti puslapiavimą, atvaizduoti dinaminius puslapius ir perduoti įrašus į failus arba duomenų bazes.

Tyrimų konsultacijų įmonė

Užduotis Ji archyvuoja arba analizuoja matomą tekstą ir struktūrizuotą turinį iš viešų tinklalapių.
Kaip padeda sprendimas Sprendimas padeda planuoti paleidimus, peržiūrėti klaidas ir saugoti sugeneruotus failus kartu su paleidimų žurnalais.

Technologijų stekas

Python

Automatizavimo kalba

Python vykdo konfigūruojamą duomenų rinktuvą, išgavimo taisykles, duomenų apdorojimą ir eksportą.

JavaScript / TypeScript

Naršyklės automatizavimo kalba

JavaScript arba TypeScript palaiko naršyklės automatizavimą, kai naudojamas naršyklinis išgavimas.

Requests

Pateikti HTML puslapių užklausas

Requests (Python biblioteka žiniatinklio užklausoms siųsti) gauna puslapius tiesioginiam išgavimui.

BeautifulSoup

Analizuoti puslapio HTML

BeautifulSoup (Python biblioteka HTML skaitymui) randa pasirinktus laukus ir matomą turinį puslapio žymėjime.

Scrapy

Tik­rinti kelis puslapius

Scrapy (Python karkasas svetainėms tikrinti) seka susietus puslapius ir palaiko kelių puslapių išgavimą.

Playwright

Atvaizduoti naršyklės puslapius

Playwright yra aukšto lygio API žiniatinklio naršyklėms automatizuoti atliekant naršyklinį išgavimą.

Pandas

Apdoroti išgautus duomenis

Pandas sutvarko išgautus įrašus prieš eksportą arba perdavimą.

openpyxl

Kurti Excel failus

openpyxl (Python biblioteka Excel failams skaityti ir rašyti) palaiko XLSX išvestį.

CSV

Eksportuoti lentelių įrašus

CSV saugo išgautus įrašus paprastame lentelės faile.

JSON

Eksportuoti struktūrizuotus įrašus

JSON saugo išgautus laukus kaip struktūrizuotus įrašus failams arba API.

Integracijos

PostgreSQL

Kai reikia perduoti duomenis į duomenų bazę, rinktuvas įrašo surinktus įrašus į PostgreSQL.

REST JSON endpoint

Paprašius sprendimas pateikia surinktus įrašus per lengvą REST JSON galinį tašką.

Excel

Sprendimas keičiasi išgautais įrašais per XLSX failus.

Command line and local scheduling

Rinktuvas veikia iš komandinės eilutės arba vietiniame kompiuteryje su cron ar Windows Task Scheduler.

Rezultatas

Nustatyti kiekvienos svetainės išgavimo taisykles

Ekranas konfigūracija vienoje vietoje saugo tikslines svetaines, laukus ir selektorius. Taip pat galimi puslapiavimo ir dinaminio turinio nustatymai.

Tai suteikia tyrimų komandai aiškią vietą apibrėžti, ką rinktuvas surinks prieš paleidimą.

Kaip tai veikia

  1. Konfigūracijoje saugomi svetainių URL, reikalingi laukai ir selektoriai arba XPath.
  2. Rinktuvas taiko laukų taisykles pasirinktam puslapio turiniui.
  3. Puslapiavimo ir dinaminio turinio moduliai paruošia paleidimą susietiems puslapiams ir naršyklėje atvaizduojamam turiniui.
  • Tiksliniai URL gali būti pavieniai adresai arba URL šablonai.
  • Išvestys apima CSV, JSON arba Excel.
Pastaba: Užklausų dažnio ribojimas, delsos, naudotojo agento nustatymai, pakartotiniai bandymai ir robots.txt atitikties valdikliai padeda rinkti duomenis atsakingai.
Duomenų rinktuvo konfigūracija

Duomenų rinktuvo konfigūracija

Šiame ekrane pateikiamos funkcijos
Išgauti pasirinktus laukus Apdoroti puslapiavimą Atvaizduoti dinaminį turinį

Peržiūrėti struktūrizuotus svetainių įrašus

Lentelė rezultatai pateikia išgautus laukus, matomą tekstą ir lenteles kaip struktūrizuotus įrašus.

CSV, JSON ir Excel eksportas paruošia surinktus duomenis tyrimų failams ir tolesnei analizei.

Kaip tai veikia

  1. Išgavimo modulis kuria įrašus iš pasirinktų laukų, matomo teksto, lentelių arba skelbimų.
  2. Rezultatų lentelėje rodomi išgauti laukai ir įrašų skaičius.
  3. Eksporto modulis kuria CSV, JSON arba XLSX failus.
  • JSON tinka struktūrizuotam apsikeitimui.
  • Excel galimas, kai to reikia pagal išgavimo apimtį.
Išgauti įrašai ir eksportas

Išgauti įrašai ir eksportas

Šiame ekrane pateikiamos funkcijos
Išgauti struktūrizuotus duomenis Eksportuoti duomenis į CSV arba JSON

Stebėti paleidimus ir tirti klaidas

Paleidimų istorija rodo tikslines svetaines, laiko žymas ir būseną. Ji taip pat registruoja klaidas, pakartotinius bandymus ir sugeneruotų failų kelius.

Žurnalai suteikia komandai praktišką būdą peržiūrėti rinktuvo veiklą, kai pasikeičia puslapis arba paleidimui reikia dėmesio.

Kaip tai veikia

  1. Rinktuvas registruoja paleidimų laiko žymas, tikslines svetaines ir sėkmės arba klaidos būseną.
  2. Žurnalų peržiūros priemonė rodo klaidų pranešimus ir informaciją apie pakartotinius bandymus.
  3. Sugeneruotų failų nuorodos susieja kiekvieną paleidimą su jo CSV, JSON arba žurnalo keliais.
  • Paleidimų istorija registruoja pasikartojančią rinkimo veiklą.
  • Klaidų pranešimai rodo paleidimo metu užfiksuotas problemas.
Paleidimų istorija ir rinktuvo žurnalai

Paleidimų istorija ir rinktuvo žurnalai

Šiame ekrane pateikiamos funkcijos
Registruoti duomenų rinkimo veiklą

Siųsti įrašus į duomenų bazę arba API

Perdavimo ekranas paruošia surinktus įrašus naudoti duomenų bazėje arba API, todėl jie nelieka tik eksporto failuose.

Lauko ir schemos susiejimas bei JSON naudingosios apkrovos peržiūra padeda suderinti išgautus duomenis su paskirties struktūra.

Kaip tai veikia

  1. Paskirties modulis saugo duomenų bazės nustatymus arba paskirties konfigūraciją.
  2. Susiejimo modulis susieja išgautus laukus su tikslinės lentelės schema.
  3. Integracijos modulis registruoja su schema suderintą JSON, duomenų bazės įrašus ir paleidimų žurnalus.
  • Prireikus sprendimas palaiko perdavimą į PostgreSQL.
  • Pageidaujamoms integracijoms galimas lengvas REST JSON galinis taškas.
Duomenų perdavimas į duomenų bazę arba API

Duomenų perdavimas į duomenų bazę arba API

Ką suteikia sprendimas

Naudodama šį sprendimą tyrimų organizacija gali:

  • Apibrėžti kiekvienos tikslinės svetainės išgavimo taisykles
  • Rinkti pasirinktą turinį puslapiuose su puslapiavimu
  • Apdoroti naršyklėje atvaizduojamą ir vėliau įkeliamą turinį
  • Eksportuoti struktūrizuotus įrašus į CSV, JSON arba Excel
  • Peržiūrėti klaidas, pakartotinius bandymus ir sugeneruotus failus
  • Siųsti surinktus įrašus į duomenų bazę arba API

Ar paruoštos sistemos galėtų atlikti šią užduotį?

Prieš kuriant sprendimą, užduotis buvo palyginta su paruoštais produktais pagal jų pačių aprašymus.

Ko reikia klientui Duomenų išgavimo programinė įranga Data Extraction Svetainių duomenų rinkimo API Oxylabs, Zyte, Scrapfly Rinkimo įrankiai be kodo Octoparse Individualus sprendimas
Priimti URL ir išgavimo taisykles
Išgauti pasirinktą svetainės turinį
Sektų puslapiavimą puslapiuose
Apdoroti dinaminį naršyklės turinį iš dalies
Atitikti paties kliento taisykles: etapus, vaidmenis, ataskaitas — — —
Visi veiksmai vienoje vietoje —
Jokių rankinių veiksmų tarp programų iš dalies iš dalies

Pagal viešus produktų ir jų kategorijos aprašymus.

Pagrindinės užduoties dalys yra duomenų išgavimo programinėje įrangoje, svetainių rinkimo API ir rinkimo įrankiuose be kodo. Paruošto produkto pakanka, kai reikia tik vienos užduoties dalies.

Šiam klientui reikėjo nuosavos programinės įrangos, nes išgavimo taisyklės, vietinis veikimas, dokumentacija, išvesties formatai, žurnalai ir paskirties reikalavimai turėjo būti suderinti su tyrimų darbu vienoje vietoje. Paruošti sprendimai taip pat skiriasi tuo, kaip jie apdoroja rankinius veiksmus tarp programų.

Galiausiai

Galiausiai sprendimas sukurtas tam, kad pašalintų rankinį rinkimą iš kelio nuo viešų svetainių iki struktūrizuotų tyrimų duomenų.

DUK

Svarstote kurti panašią sistemą? Perskaitykite atsakymus ir sužinokite, kaip konfigūruojamas rinkimas, eksportas, naršyklinis atvaizdavimas ir perdavimas gali būti pritaikyti tyrimų procesui.