PROJEKTS

Tīmekļa vietņu skrāpēšana ar konfigurējamu Python automatizāciju

Pielāgotas programmatūras izstrāde, Tīmekļa vietņu datu skrāpēšana, Konfigurējama Python automatizācija, Strukturēts CSV un JSON eksports, JavaScript lapu renderēšana, Atkārtotas skrāpētāja palaišanas, Piegāde uz datubāzi un API

  • Nozare: Pētniecības pakalpojumi
  • Vācija Atrašanās vieta: Vācija
  • Izstrādes laiks: 10 nedēļas
  • Tehnoloģijas: Python, JavaScript / TypeScript
3 mēneši

Šis klients pavada laiku, apkopojot produktu, sludinājumu un kontaktinformāciju no publiskām tīmekļa vietnēm. Manuāla vai neregulāra datu apkopošana apgrūtina atkārtojamu pētniecības darbu. Programmatūra pieņem mērķa URL vai URL modeļus, selektorus un lapu noteikumus. Pēc tam tā atgriež strukturētus ierakstus CSV, JSON vai Excel formātā. Tā sniedz pētniecības organizācijai vienu konfigurējamu rīku atkārtotai tīmekļa datu ieguvei, tostarp lapām, kurām nepieciešama pārlūkprogrammas renderēšana.

Kopsavilkums

Problēma

Pētniecības organizācija pavada laiku, aizstājot manuālu vai neregulāru tīmekļa datu apkopošanu ar atkārtojamu ieguvi.

Risinājums

Risinājums kļuva par konfigurējamu skrāpētāju, kas ievēro lapu noteikumus, apstrādā dinamisku saturu un eksportē strukturētus ierakstus.

Rezultāts

Programmatūra ir izstrādāta, lai samazinātu manuālu datu apkopošanu un nekonsekventu ieguvi.

Klienta stāsts

Klients ir pētniecības organizācija no Vācijas. Tā pētniecības vajadzībām apkopo produktu, sludinājumu un kontaktinformāciju no publiskām tīmekļa vietnēm.

Manuāla un neregulāra datu apkopošana komandai izmaksā laiku, īpaši tad, ja mērķa vietnēs tiek izmantota lapu numerācija, mainīgas lapu struktūras un dinamiskas tabulas.

Prasība bija vienkārša: pieņemt mērķa URL vai URL modeļus, konfigurējamus selektorus vai konfigurācijas failus un atgriezt atlasīto vietnes saturu strukturētu ierakstu veidā.

Risinājums tika veidots ap konfigurējamiem lauku noteikumiem, vairāku lapu pārmeklēšanu un pārlūkprogrammas renderēšanu. Plānotās palaišanas un pārskatāmi žurnāli atbalstīja atkārtojamu datu apkopošanu.

Klients vēlējās

  1. Pieņemt URL, URL modeļus, selektorus, XPath vai konfigurācijas failus
  2. Iegūt atlasīto saturu strukturētos ierakstos
  3. Sekot lapu numerācijai vairākās lapās un vietnēs
  4. Apstrādāt JavaScript lapas, dinamiskas tabulas un slinko ielādi

Kāpēc gatava programmatūra nebija piemērota

Gatavā datu ieguves programmatūra atbalsta daudzus avotu veidus, savukārt pārvaldīti skrāpēšanas pakalpojumi koncentrējas uz API, pārlūkprogrammu infrastruktūru un starpniekserveriem. Šim klientam bija nepieciešami projektam specifiski lauki, selektori un lapu numerācijas noteikumi. Risinājumam bija jādarbojas arī lokāli, jāietver dokumentācija un jāatbilst noteiktām izvades prasībām.

Projekta pārskats

Risinājums tika izveidots ap skrāpētāja konfigurācijas ekrānu, kur pētniecības komanda definē mērķa URL, laukus un selektorus. Pieejami arī lapu numerācijas noteikumi un izvades formāti.

Lai apstrādātu dažādas lapu struktūras, skrāpētājs izmanto konfigurējamus ieguves noteikumus laukiem, redzamajam tekstam un tabulām. Tas pārmeklē saistītās lapas un vajadzības gadījumā seko lapu numerācijai.

JavaScript lapām, dinamiskām tabulām un slinkās ielādes saturam tika nodrošināta pārlūkprogrammas renderēšana. Statiskām lapām tā vietā var izmantot tiešus HTTP pieprasījumus un HTML parsēšanu.

Risinājums tika izstrādāts arī atkārtojamam darbam. Tas darbojas komandrindā vai lokālā datorā, atbalsta plānošanu un reģistrē kļūmes un atkārtotus mēģinājumus.

Apkopotos ierakstus var eksportēt CSV, JSON vai Excel formātā. PostgreSQL, viegls REST JSON galapunkts un projekta dokumentācija atbalsta turpmāku izmantošanu klienta komandā.

Piegādātās galvenās funkcijas

  • Konfigurējami mērķa URL un URL modeļi
  • Lauku selektoru un XPath redaktors
  • Vairāku lapu pārmeklēšana un lapu numerācija
  • JavaScript un slinkās ielādes satura renderēšana
  • CSV, JSON un Excel eksports
  • Ātruma ierobežojumi, aizkaves, atkārtoti mēģinājumi un user-agent iestatījumi
  • Palaišanas vēsture un skrāpēšanas žurnāli
  • Piegāde uz PostgreSQL vai REST JSON

Var pievienot

+ Robots.txt atbilstības kontroles + Plānošana mākonī + Datu arhivēšana + Projektam specifiska dokumentācija + Papildu datubāzes kartējumi

Kas vēl var izmantot šo risinājumu

Šiem uzņēmumiem ir līdzīgs uzdevums, un to publisko vietņu datu apkopošanai var pielāgot to pašu risinājumu.

Tirgus izpētes aģentūra

Uzdevums Tā apkopo produktu, tirgus un kontaktinformāciju no publiskām tīmekļa vietnēm.
Kā risinājums palīdz Risinājums palīdz izmantot atkārtojamus ieguves noteikumus un eksportēt strukturētus pētniecības ierakstus.

Datu analīzes komanda

Uzdevums Tā apkopo sludinājumus, tabulas un atlasītu saturu publiskās tīmekļa vietnēs.
Kā risinājums palīdz Risinājums palīdz sekot lapu numerācijai, renderēt dinamiskas lapas un nogādāt ierakstus failos vai datubāzēs.

Pētniecības konsultāciju uzņēmums

Uzdevums Tā arhivē vai analizē redzamu tekstu un strukturētu saturu no publiskām tīmekļa lapām.
Kā risinājums palīdz Risinājums palīdz plānot palaišanas, pārskatīt kļūmes un saglabāt ģenerētos failus kopā ar palaišanas žurnāliem.

Tehnoloģiju steks

Python

Automatizācijas valoda

Python darbina konfigurējamo skrāpētāju, ieguves noteikumus, datu apstrādi un eksportu.

JavaScript / TypeScript

Pārlūkprogrammas automatizācijas valoda

JavaScript vai TypeScript atbalsta pārlūkprogrammas automatizāciju, kad tiek izmantota ieguve pārlūkprogrammā.

Requests

Pieprasīt HTML lapas

Requests (Python bibliotēka tīmekļa pieprasījumu nosūtīšanai) izgūst lapas tiešai ieguvei.

BeautifulSoup

Parsēt lapas HTML

BeautifulSoup (Python bibliotēka HTML lasīšanai) lapas marķējumā atrod atlasītos laukus un redzamo saturu.

Scrapy

Pārmeklēt vairākas lapas

Scrapy (Python ietvars tīmekļa pārmeklēšanai) seko saistītām lapām un atbalsta vairāku lapu ieguvi.

Playwright

Renderēt pārlūkprogrammas lapas

Playwright ir augsta līmeņa API tīmekļa pārlūkprogrammu automatizācijai pārlūkprogrammas ieguves laikā.

Pandas

Apstrādāt iegūtos datus

Pandas organizē iegūtos ierakstus pirms eksporta vai piegādes.

openpyxl

Rakstīt Excel failus

openpyxl (Python bibliotēka Excel failu lasīšanai un rakstīšanai) atbalsta XLSX izvadi.

CSV

Eksportēt tabulu ierakstus

CSV saglabā iegūtos ierakstus vienkāršā tabulas failā.

JSON

Eksportēt strukturētus ierakstus

JSON saglabā iegūtos laukus strukturētos ierakstos failiem vai API.

Integrācijas

PostgreSQL

Skrāpētājs ieraksta apkopotos datus PostgreSQL, kad nepieciešama piegāde uz datubāzi.

REST JSON endpoint

Risinājums pēc pieprasījuma nodrošina piekļuvi apkopotajiem ierakstiem, izmantojot vieglu REST JSON galapunktu.

Excel

Risinājums apmainās ar iegūtajiem ierakstiem, izmantojot XLSX failus.

Command line and local scheduling

Skrāpētājs darbojas komandrindā vai lokālā datorā, izmantojot cron vai Windows Task Scheduler.

Rezultāts

Iestatīt ieguves noteikumus katrai tīmekļa vietnei

Ekrāns konfigurācija apkopo mērķa vietnes, laukus un selektorus. Pieejami arī lapu numerācijas un dinamiskā satura iestatījumi.

Tas sniedz pētniecības komandai skaidru vietu, kur definēt, ko skrāpētājam jāapkopo pirms palaišanas.

Kā tas darbojas

  1. Konfigurācijā tiek saglabāti vietņu URL, nepieciešamie lauki un selektori vai XPath.
  2. Skrāpētājs piemēro lauku noteikumus atlasītajam lapas saturam.
  3. Lapu numerācijas un dinamiskā satura moduļi sagatavo palaišanu saistītajām lapām un pārlūkprogrammā renderētam saturam.
  • Mērķa URL var būt atsevišķas adreses vai URL modeļi.
  • Izvades formāti ietver CSV, JSON vai Excel.
Piezīme: Ātruma ierobežojumi, aizkaves, user-agent iestatījumi, atkārtoti mēģinājumi un robots.txt atbilstības kontroles atbalsta atbildīgu datu apkopošanu.
Skrāpētāja konfigurācija

Skrāpētāja konfigurācija

Šī ekrāna funkcijas
Iegūt atlasītos laukus Apstrādāt lapu numerāciju Renderēt dinamisku saturu

Pārskatīt strukturētus vietņu ierakstus

Tabula rezultāti attēlo iegūtos laukus, redzamo tekstu un tabulas kā strukturētus ierakstus.

CSV, JSON un Excel eksports sagatavo apkopotos datus pētniecības failiem un turpmākai analīzei.

Kā tas darbojas

  1. Ieguves modulis izveido ierakstus no atlasītajiem laukiem, redzamā teksta, tabulām vai sludinājumiem.
  2. Rezultātu tabula attēlo iegūtos laukus un ierakstu skaitu.
  3. Eksporta modulis izveido CSV, JSON vai XLSX failus.
  • JSON ir piemērots strukturētai datu apmaiņai.
  • Excel ir pieejams, ja to prasa ieguves apjoms.
Iegūtie ieraksti un eksports

Iegūtie ieraksti un eksports

Šī ekrāna funkcijas
Iegūt strukturētus datus Eksportēt datus CSV vai JSON formātā

Sekot palaišanām un izpētīt kļūmes

Palaišanas vēsture attēlo mērķa vietnes, laikspiedolus un statusu. Tā reģistrē arī kļūdas, atkārtotus mēģinājumus un ģenerēto failu ceļus.

Žurnāli komandai sniedz praktisku iespēju pārskatīt skrāpētāja darbības, kad mainās lapa vai palaišanai nepieciešama uzmanība.

Kā tas darbojas

  1. Skrāpētājs reģistrē palaišanas laikus, mērķa vietnes un veiksmes vai kļūmes statusu.
  2. Žurnālu skatītājs attēlo kļūdu ziņojumus un informāciju par atkārtotiem mēģinājumiem.
  3. Ģenerēto failu saites sasaista katru palaišanu ar tās CSV, JSON vai žurnāla ceļiem.
  • Palaišanas vēsture reģistrē atkārtotu datu apkopošanu.
  • Kļūdu ziņojumi parāda palaišanas laikā reģistrētās problēmas.
Palaišanas vēsture un skrāpētāja žurnāli

Palaišanas vēsture un skrāpētāja žurnāli

Šī ekrāna funkcijas
Reģistrēt skrāpēšanas darbības

Nosūtīt ierakstus uz datubāzi vai API

Piegādes ekrāns sagatavo apkopotos ierakstus izmantošanai datubāzē vai API, nevis atstāj tos tikai eksporta failos.

Lauku kartēšana uz shēmu un JSON datnes priekšskatījums palīdz saskaņot iegūtos datus ar mērķa struktūru.

Kā tas darbojas

  1. Mērķa modulis saglabā datubāzes iestatījumus vai mērķa konfigurāciju.
  2. Kartēšanas modulis sasaista iegūtos laukus ar mērķa tabulas shēmu.
  3. Integrācijas modulis reģistrē shēmai atbilstošu JSON, datubāzes ierakstus un palaišanas žurnālus.
  • Risinājums pēc vajadzības atbalsta piegādi uz PostgreSQL.
  • Pieprasītām integrācijām pieejams viegls REST JSON galapunkts.
Piegāde uz datubāzi vai API

Piegāde uz datubāzi vai API

Ko sniedz risinājums

Izmantojot šo risinājumu, pētniecības organizācija var:

  • Definēt ieguves noteikumus katrai mērķa vietnei
  • Apkopot atlasīto saturu lapās ar numerāciju
  • Apstrādāt pārlūkprogrammā renderētu un slinkās ielādes saturu
  • Eksportēt strukturētus ierakstus CSV, JSON vai Excel formātā
  • Pārskatīt kļūmes, atkārtotus mēģinājumus un ģenerētos failus
  • Nosūtīt apkopotos ierakstus uz datubāzi vai API

Vai gatavas sistēmas varētu paveikt šo darbu?

Pirms izstrādes uzdevums tika salīdzināts ar gataviem produktiem, balstoties uz to pašu aprakstiem.

Kas nepieciešams klientam Datu ieguves programmatūra Data Extraction Tīmekļa skrāpēšanas API Oxylabs, Zyte, Scrapfly Skrāpēšanas rīki bez koda Octoparse Pielāgots risinājums
Pieņemt URL un ieguves noteikumus
Iegūt atlasīto vietnes saturu
Sekot lapu numerācijai vairākās lapās
Apstrādāt dinamisku pārlūkprogrammas saturu daļēji
Atbilst klienta paša noteikumiem: posmiem, lomām, pārskatiem — — —
Visas darbības vienuviet —
Nav manuālu darbību starp programmām daļēji daļēji

Pamatojoties uz produktu un to kategorijas publiskajiem aprakstiem.

Galvenās uzdevuma daļas ir pieejamas datu ieguves programmatūrā, tīmekļa skrāpēšanas API un skrāpēšanas rīkos bez koda. Gatavs produkts ir pietiekams, ja nepieciešama tikai viena uzdevuma daļa.

Šim klientam bija nepieciešama paša programmatūra, jo ieguves noteikumiem, lokālai darbībai, dokumentācijai, izvades formātiem, žurnāliem un mērķa prasībām bija jāiekļaujas pētniecības darbā vienuviet. Gatavie risinājumi atšķiras arī pēc tā, kā tie apstrādā manuālas darbības starp programmām.

Noslēgumā

Noslēgumā risinājums tika izveidots, lai izņemtu manuālu datu apkopošanu no ceļa starp publiskām tīmekļa vietnēm un strukturētiem pētniecības datiem.

BUJ

Vai domājat par līdzīgas sistēmas izveidi? Izlasiet tālāk sniegtās atbildes, lai uzzinātu, kā konfigurējama skrāpēšana, eksports, pārlūkprogrammas renderēšana un piegāde var iekļauties pētniecības darbplūsmā.