IlusSupp

Pythoni BeautifulSoupi õpetus algajatele

Pythoni BeautifulSoupi õpetus algajatele
Veebi kraapimine on tänapäeva maailmas väga oluline. Kõik vajavad andmeid erinevatest allikatest, sealhulgas veebilehtedelt. Selles artiklis uurime, kuidas HTML-i sõeluda beautifulsoupi teegiga. Tänu sellele suurepärasele teegile on hulgast tähestikest ja sümbolitest vajalike andmete väljavõtmine muutunud palju lihtsamaks. Pythonis kirjutatud BeautifulSoupi saab hõlpsasti arvutisse installida, kasutades Pythoni pipi installimistööriista. Teegi installimisel aitab järgmine käsk:

pip installige BeautifulSoup4

Installimise õnnestumise kontrollimiseks aktiveerige Pythoni interaktiivne kest ja importige BeautifulSoup. Kui viga ei ilmu, tähendab see, et kõik läks hästi.  Kui te ei tea, kuidas sellega edasi minna, tippige oma terminali järgmised käsud.

$ python
Python 3.5.2 (vaikimisi, 14. september 2017, 22:51:06)
[GCC 5.4.0 20160609] Linuxis
Lisateabe saamiseks sisestage "abi", "autoriõigus", "krediit" või "litsents".
>>> import bs4

BeautifulSoupi teegiga töötamiseks peate sisestama HTML-i. Päris veebisaitidega töötades saate taotluste kogu abil saada veebilehe HTML-i. Päringute kogu installimine ja kasutamine ei kuulu selle artikli reguleerimisalasse, kuid võite leida juhiseid dokumentatsioonis, mida on üsna lihtne kasutada. Selle artikli jaoks kasutame lihtsalt HTML-i pythoni stringis, mida me kutsuksime HTML.

html = "" "

Töötaja profiil



Nimi:Dr Peter Parker

Töö:Masinõppeinsener

Telefon:+12345678910





"" "

Beautifulsoupi kasutamiseks impordime selle koodi alloleva koodi abil:

bs4-st importige BeautifulSoup

See tooks BeautifulSoupi meie nimeruumi ja saame seda kasutada oma stringi sõelumisel.

supp = ilus supp (html, "lxml")

Nüüd, supp on bs4 tüüpi objekt BeautifulSoup.Ja saame jõuda kõikidel BeautifulSoupi toimingutel suppmuutuv.

Vaatame mõningaid asju, mida saame nüüd BeautifulSoupiga teha.

KOLEDA, ILUSA TEEMINE

Kui BeautifulSoup parsib html-d, pole see tavaliselt kõige paremas vormingus. Vahed on päris kohutavad. Sildid on raskesti leitavad. Siin on pilt, mis näitab, kuidas nad välja näeksid, kui jõuate printida supp:

Sellele on aga lahendus. Lahendus annab html-le täiusliku vahemaa, muutes asjad heaks. Seda lahendust nimetatakse vääriliseltilustama".

Tõsi, te ei pruugi seda funktsiooni enamasti kasutada; Siiski võib juhtuda, et teil pole juurdepääsu veebibrauseri kontrollimiselemendile. Sel ajal, kui ressursid on piiratud, võib prettify meetod olla väga kasulik.

Seda saate kasutada järgmiselt

supp.ilustama ()

Märgistus näeks korralikult paigutatud, nagu alloleval pildil:

Kui rakendate supile prettify meetodit, pole tulemus enam tüüpi bs4.IlusSupp. Tulemuseks on nüüd tüüp 'unicode'. See tähendab, et te ei saa sellel kasutada muid BeautifulSoupi meetodeid, kuid suppi ennast see ei mõjuta, seega oleme ohutud.

MEIE LEMMIKLISTE MÄRKIDE LEITMINE

HTML koosneb siltidest. See salvestab neisse kõik oma andmed ja kogu selle segaduse keskel peituvad meile vajalikud andmed. Põhimõtteliselt tähendab see, et kui leiame õiged sildid, saame vajaliku kätte.

Niisiis, kuidas leida õiged sildid? Kasutame BeautifulSoupi leidmise ja leidmise_meetodeid.

Nad töötavad järgmiselt:

The leidma meetod otsib esimest vajaliku nimega silti ja tagastab objekti tüüpi bs4.element.Silt.

The leidma kõik meetod seevastu otsib kõiki vajaliku sildi nimega silte ja tagastab need bs4 tüüpi loendina.element.ResultSet. Kõik loendis olevad üksused on tüüpi bs4.element.Märgistage, et saaksime loendis indekseerida ja jätkata oma kaunite suppide uurimist.

Vaatame koodi. Leiame üles kõik div sildid:

supp.leidma („div“)

Saaksime järgmise tulemuse:

Nimi:Dr Peter Parker

HTML-muutujat kontrollides märkate, et see on esimene div-silt.

supp.find_all („div“)

Saaksime järgmise tulemuse:

[
Nimi:Dr Peter Parker
,
Töö:Masinõppeinsener
,
Telefon:+12345678910
,
,
]

See tagastab loendi.  Kui soovite näiteks kolmandat div-märgendit, käivitate järgmise koodi:

supp.find_all ("div") [2]

See tagastaks järgmise:

Telefon:+12345678910

MEIE LEMMIKLISTE MÄRGISTUSTE OMADUSTE LEITAMINE

Nüüd, kui oleme näinud, kuidas oma lemmikmärgendeid hankida, kuidas nende atribuute hankida?

Võib-olla mõtlete sel hetkel: „Milleks me atribuute vajame?". Noh, palju kordi on enamus vajalikest andmetest meiliaadressid ja veebisaidid. Sellised andmed on tavaliselt veebilehtedel hüperlingitud, linkidega on atribuut „href”.

Kui oleme vajaliku sildi välja pakkinud, kasutades meetodit find või find_all, saame rakendades atribuudid meelitab. See tagastaks atribuudi sõnastiku ja selle väärtuse.

Näiteks e-posti atribuudi saamiseks saame sildid, mis ümbritsevad vajalikku teavet, ja tehke järgmist.

supp.find_all („a“) [0].meelitab

Mis annaks järgmise tulemuse:

'href': 'mailto: [meiliga kaitstud]'

Sama asi veebisaidi atribuudi puhul.

supp.find_all („a“) [1].meelitab

Mis annaks järgmise tulemuse:

'href': '
http: // pparkerworks.com'

Tagastatud väärtused on sõnastikud ja võtmete ja väärtuste saamiseks saab rakendada tavalist sõnastiku süntaksit.

NÄEME VANEMAT JA LASTE

Igal pool on silte. Mõnikord tahame teada, mis on laste sildid ja mis on vanem silt.

Kui te ei tea veel, mis on vanema- ja lapsemärgis, peaks sellest lühikesest selgitusest piisama: vanemmärgend on kõnealuse sildi vahetu välimine silt ja laps on selle sisemine silt.

Vaadates meie HTML-i, on body silt kõigi div-siltide vanemmärgend. Samuti on rasvane silt ja ankrumärgend div-siltide lapsed, kui see on asjakohane, kuna kõigil div-siltidel pole ankrusilte.

Seega pääseme vanemamärgendile juurde, helistades aadressile findVanem meetod.

supp.leidma ("div").findParent ()

See tagastaks kogu kehamärgendi:


Nimi:Dr Peter Parker

Töö:Masinõppeinsener

Telefon:+12345678910



Neljanda div-märgendi laste sildi saamiseks kutsume seda leidaLapsed meetod:

supp.find_all ("div") [4].findLapsed ()

See tagastab järgmise:

[Veebisait:, pparkerworks.com]

MIS SEDA MEIL ON?

Veebilehti sirvides ei näe me silte kõikjal ekraanil. Kõik, mida me näeme, on erinevate siltide sisu. Mis siis, kui soovime sildi sisu, ilma et kõik nurksulgudes elu ebamugavaks teeks? See pole keeruline, kõik, mida me teeksime, on helistada get_text meetod valitud sildile ja saame teksti märgendisse ning kui märgendis on muid silte, saab see ka nende tekstiväärtused.

Siin on näide:

supp.leidma ("keha").get_text ()

See tagastab kõik tekstiväärtused kehamärgendis:

Nimi: dr Peter Parker
Töö: masinaõppeinsener
Telefon: +12345678910
E-post: [meiliga kaitstud]
Veebisait: pparkerworks.com

JÄRELDUS

See on see, mis meil selle artikli jaoks on. Kaunise supiga saab aga teha veel muidki huvitavaid asju. Võite tutvuda dokumentatsiooniga või kasutada dir (BeautfulSoup) interaktiivses kestas, et näha toimingute loendit, mida saab objektil BeautifulSoup teha. See on kõik minult täna, kuni ma uuesti kirjutan.

Kursor hüppab või liigub juhuslikult Windows 10-s kirjutamise ajal
Kui leiate, et hiire kursor hüppab või liigub Windowsi sülearvutisse või arvutisse kirjutades automaatselt, juhuslikult, võivad mõned neist soovituste...
Kuidas muuta hiire ja puuteplaatide kerimise suund Windows 10-s ümber
Hiir ja PuuteplaatNeed muudavad arvutamise mitte ainult lihtsaks, vaid ka tõhusamaks ja vähem aeganõudvaks. Me ei kujuta ette elu ilma nende seadmetet...
Kuidas muuta hiirekursori ja kursori suurust, värvi ja skeemi Windows 10-s
Windows 10 hiirekursor ja kursor on operatsioonisüsteemi väga olulised aspektid. Seda võib öelda ka teiste opsüsteemide kohta, nii et tegelikult pole ...