„Semalt“ - kaip subraižyti tinklalapius?

„Beautiful Soup“ yra „Python“ biblioteka, plačiai naudojama tinklalapiams nuskaityti, sukuriant analizės medį iš XML ir HTML dokumentų. Žiniatinklio duomenų rinkimas, duomenų išgavimo iš svetainių ir puslapių metodas, plačiai naudojamas duomenų analizės ir valdymo srityse. Daugeliu atvejų „Python“ programavimo kalba yra būtina duomenų mokslo sąlyga.

„Python 3“ turi grandymo įrankius ir modulius, kuriuos galite pritaikyti duomenų tvarkymo projektui. Šiuo metu veikia kaip „Beautiful Soup 4“, šis modulis suderinamas tiek su „Python 3“, tiek su „Python 2.7“. Gražus „4 sriubos“ modulis taip pat gali sukurti neatsiejamos sriubos etikečių medį. Šiame vadove sužinosite, kaip subraižyti puslapį ir įrašyti nuskaitytus duomenis į CSV failą.

Darbo pradžia

Norėdami pradėti, kompiuteryje nustatykite serverio arba vietinės „Python“ kodavimo aplinką. Taip pat savo kompiuteryje turėtumėte įdiegti „Gražios sriubos ir užklausų“ modulį. Žinios apie darbą su abiem moduliais taip pat yra būtina sąlyga. Žinios apie HTML žymėjimą ir struktūrą taip pat yra papildomas pranašumas.

Savo duomenų supratimas

Šiame kontekste bus naudojami tikri Nacionalinės dailės galerijos duomenys, padėsiantys jums suprasti, kaip naudoti gražią sriubą 4. Nacionalinę dailės galeriją sudaro 120 000 kūrinių, kuriuos pagamina apytiksliai 13 000 menininkų. Menas yra Vašingtone, JAV.

Žiniatinklio duomenų gavimas naudojant „Beautiful Soup“ nėra toks sudėtingas. Pvz., Jei sutelkiate dėmesį į raidę Z, pažymėkite ir užsirašykite pirmąjį vardą sąraše. Šiuo atveju pirmasis vardas yra Zabaglia, Niccola. Siekdami nuoseklumo, nurodykite puslapių skaičių ir paskutinio atlikėjo vardą tame puslapyje.

Kaip importuoti užklausas ir „Beautiful Soup“ biblioteką

Norėdami importuoti bibliotekas, suaktyvinkite „Python 3“ programavimo aplinką. Patikrinkite, ar esate tame pačiame kataloge su programavimo aplinka. Norėdami pradėti, paleiskite šią komandą. my_env / bin / aktyvuoti.

Sukurkite naują failą ir pradėkite importuoti „Beautiful Soup“ ir „Requests“ bibliotekas. Užklausų biblioteka leis naudoti „Python“ programose HTTP skaitomu formatu HTTP. Graži sriuba, kita vertus, veikia greitai nugriebti puslapius. Norėdami importuoti gražią sriubą, naudokite bs4.

Kaip surinkti ir išanalizuoti tinklalapį

Naudodami užklausas surinkite pirmojo puslapio URL. Pirmojo puslapio URL bus priskirtas kintamajam. Sukurkite „BeautifulSoup“ objektą iš „Užklausų“ ir išanalizuokite objektą iš „Python“ analizatoriaus.

Šiame vadove siekiama surinkti nuorodas ir dailininkų vardus. Pavyzdžiui, galite rinkti menininkų datas ir tautybes. „Windows“ vartotojams dešiniuoju pelės mygtuku spustelėkite atlikėjo vardą. Tokiu atveju naudokite Zabaglia, Niccola. „Mac OS“ vartotojams palieskite „CTRL“ ir spustelėkite pavadinimą. Spustelėkite meniu „Patikrinti elementą“, kuris pasirodo jūsų ekrane, kad pasiektumėte žiniatinklio kūrėjų įrankius. Išspausdinkite menininko vardus, kad „Beautiful Soup“ greitai parsineštų medį.

Apatinių nuorodų pašalinimas

Norėdami pašalinti apatines savo tinklalapio nuorodas, patikrinkite DOM, dešiniuoju pelės mygtuku spustelėdami elementą. Jūs pastebėsite, kad nuorodos yra po HTML lentele. Norėdami pašalinti žymes iš analizuojamo medžio, naudodami „Beautiful Soup“, naudokite „skilimo metodą“.

Kaip iš turinio ištraukti žymą

Jums nereikia atspausdinti visos nuorodos žymos. Norėdami pašalinti medžiagą iš žymos, naudokite „Beautiful Soup“. Taip pat galite užfiksuoti URL, susijusius su atlikėjais, naudodami „Beautiful Soup 4“.

Nukreiptų duomenų fiksavimas į CSV failą

CSV failas leis saugoti struktūruotus duomenis paprastu tekstu, formatu, kuris dažniausiai naudojamas duomenų lapuose. Rekomenduojama žinoti, kaip tvarkyti paprasto teksto failus „Python“.

Žiniatinklio duomenų ištraukimas yra naudojamas puslapiams subraižyti ir informacijai gauti. Būkite atidūs tinklalapiams, iš kurių gavote informaciją. Kai kurios dinamiškos svetainės riboja interneto duomenų gavimą iš savo svetainių. Nubraižyti puslapį naudojant „Beautiful Soup“ ir „Python 3“ yra taip paprasta.