Web scraping sa Seleniumom

Iskreno ovo mi je prvi put da imam klijenta za kog scrapujem neke podatke. Cak nisam nigde ni napisao da to radim, nego me li pitao jel mogu to da uradim i reko ajde da probam. Prvi posao je prosao dobro, on maksimalno zadovoljan, ali drugi posao je malo komplikovaniji.

Naime, sajt je napravljen sa jQuery-jem i Ajaxom i zato sam se odlucio da koristim Selenium za interakciju sa js. I sam sajt ima neke blokade, pa pokusavam da simuliram coveka maksimalno moguce. Link sajta cu ostaviti u komentaru, jer nemam opciju na postu iz nekog razloga.

Kako god, taj sajt ima jako jako veliku bazu svih auta – brendova, modela, serija, motora, koje su ikad izbacene. I za svaki taj auto postoje rezervni delovi.

E sad, moj trenutni task je da izvucem podatke za razne rezervne delove i da ih mapiram sa modeom auta kojima pripadaju. Ne toliko tezak task, slozicemo se svi.

Medjutim, problem je taj sto ja koristim spor Selenium, ne mogu da pokrenem uopste skriptu u headless modu zbog same prirode taska i sajta izmedju ostalog i imam na stotine hiljada ucitavanja stranica na tom sajtu da izvucem samo jedan rezervni deo. Dakle, fakticki za jedan model auta bi morao jednom da ucitavam stranicu da bih uzeo jedan rezervni deo + trebam da primenim odredjene filtere koji su uzasno napravljeni i to mi dodje kao jos jedno dodatno ucitavanje stranice.

To sve zahteva vreme. Mnogo vremena. Moje pitanje je da koji nacin najbolje moguce mogu da optimizujem skriptu ovakve prirode kako bi sto pre izvukao sve podatke. Kao sto sam rekao, headless ne mogu da koristim, ali disejblovao sam sve slike da ne gubim vreme na njihovo nepotrebno renderovanje. Takodje, iako do sada nikad to nisam radio, citao sam da je moguce da uradim neki multiprocesing koji ce da mi skrati vreme onoliko puta koliko procesa imam. Mimo toga, zanima me koje su vase preporuke da bih sto brze izvrsio ovaj task?

View Reddit by svemirski_gospodinView Source

Iskreno ovo mi je prvi put da imam klijenta za kog scrapujem neke podatke. Cak nisam nigde ni napisao da to radim, nego me li pitao jel mogu to da uradim i reko ajde da…