Teiesugused lugejad aitavad MUO-d toetada. Kui teete ostu meie saidil olevate linkide abil, võime teenida sidusettevõtte komisjonitasu. Loe rohkem.

Kas soovite Pythoni abil veebikraapimist õppida, kuid olete segaduses, kas kasutada järgmise projekti jaoks Beautiful Soup, Selenium või Scrapy? Kuigi kõik need Pythoni teegid ja raamistikud on omaette võimsad, ei rahulda nad seda kõik veebikraapimise vajadused ja seetõttu on oluline teada, millist tööriista peaksite konkreetse jaoks kasutama töö.

Heitkem pilk erinevustele Beautiful Soupi, Scrapy ja Seleniumi vahel, et saaksite enne järgmise Pythoni veebikraapimise projektiga alustamist teha targa otsuse.

1. Kasutuslihtsus

Kui olete algaja, oleks teie esimene nõue hõlpsasti õpitav ja kasutatav raamatukogu. Beautiful Soup pakub teile kõiki veebi kraapimiseks vajalikke elementaarseid tööriistu ja seda eriti on abiks inimestele, kellel on Pythoni kasutamise kogemus minimaalne, kuid kes soovivad veebiga hakkama saada kraapimine.

Ainus hoiatus on see, et oma lihtsuse tõttu pole Beautiful Soup nii võimas kui Scrapy või Selenium. Arenduskogemusega programmeerijad saavad hõlpsasti omandada nii Scrapy kui ka Seleniumi, kuid algajatele sobib see esimese projekti ehitamine võib võtta palju aega, kui nad valivad Beautiful asemel need raamistikud Supp.

Saidi example.com pealkirja märgendi sisu kraapimiseks kauni supi abil kasutage järgmist koodi:

url = "https://example.com/"
res = taotlused.get (url).tekst
supp = KaunisSupp (res, 'html.parser')
pealkiri = supp.find("pealkiri").tekst
printida(pealkiri)

Seleeni kasutamisel sarnaste tulemuste saavutamiseks kirjutage:

url = "https://example.com"
draiver = veebidraiver. Chrome("path/to/chromeddriver")
autojuht.saada(url)
title = driver.find_element (Autor. TAG_NAME, "pealkiri").get_attribute('tekst')
printida(pealkiri)

Scrapy projekti failistruktuur koosneb mitmest failist, mis muudab selle keerukamaks. Järgmine kood kraabib pealkirja saidilt example.com:

importida kriipiv

klassPealkiri Spider(krabi. ämblik):
nimi = 'pealkiri'
start_urls = ['https://example.com']

defsõeluda(ise, vastus):
saagikus {
'nimi': vastus.css('pealkiri'),
}

Kui soovite hankida andmeid teenusest, mis pakub ametlikku API-d, võib see olla mõistlik otsus kasutage veebikaabitsa arendamise asemel API-d.

2. Kraapimise kiirus ja paralleelsus

Neist kolmest on kiiruse osas kindel võitja Scrapy. Seda seetõttu, et see toetab vaikimisi paralleelseerimist. Scrapy abil saate saata korraga mitu HTTP-päringut ja kui skript on esimese päringukomplekti jaoks HTML-koodi alla laadinud, on see valmis saatma uue partii.

Teenusega Beautiful Soup saate lõimeteeki kasutada samaaegsete HTTP-päringute saatmiseks, kuid see pole mugav ja selleks peate õppima mitme lõimega töötamist. Seleniumi puhul on võimatu paralleelsust saavutada ilma mitut brauseri eksemplari käivitamata.

Kui reastada need kolm veebikraapimise tööriista kiiruse järgi, on Scrapy kiireim, järgnevad Beautiful Soup ja Selenium.

3. Mälu kasutamine

Selenium on brauseri automatiseerimise API, mis on leidnud oma rakendused veebikraapimise väli. Kui kasutate veebisaidi kraapimiseks Seleeni, tekitab see taustal töötava peata brauseri eksemplari. See teeb seleenist ressursimahuka tööriista, võrreldes Beautiful Soupi ja Scrapyga.

Kuna viimased töötavad täielikult käsureal, kasutavad nad vähem süsteemiressursse ja pakuvad paremat jõudlust kui Selenium.

4. Sõltuvusnõuded

Beautiful Soup on parsiriistade kogu, mis aitab teil HTML- ja XML-failidest andmeid ekstraktida. See tarnitakse mitte millegi muuga. Peate kasutama selliseid teeke nagu taotlusi või urllib HTTP-päringute tegemiseks, sisseehitatud parsereid HTML-i/XML-i sõelumiseks ja täiendavaid teeke puhverserverite või andmebaasi toe rakendamiseks.

Scrapy seevastu tuleb kogu sebandiga kaasa. Saate tööriistu päringute saatmiseks, allalaaditud koodi sõelumiseks, ekstraheeritud andmetega toimingute tegemiseks ja kogutud teabe salvestamiseks. Saate laienduste ja vahevara abil Scrapyle lisada muid funktsioone, kuid see tuleb hiljem.

Seleeniga laadite alla veebidraiveri selle brauseri jaoks, mida soovite automatiseerida. Muude funktsioonide, nagu andmesalvestus ja puhverserveri tugi, rakendamiseks vajate kolmanda osapoole mooduleid.

5. Dokumentatsiooni kvaliteet

Üldiselt on iga projekti dokumentatsioon hästi struktureeritud ja kirjeldab kõiki meetodeid näidete abil. Kuid projekti dokumentatsiooni tõhusus sõltub suuresti ka lugejast.

Beautiful Soup'i dokumentatsioon on palju parem algajatele, kes alustavad veebikraapimisega. Seleniumil ja Scrapyl on kahtlemata üksikasjalik dokumentatsioon, kuid tehniline kõnepruuk võib tabada paljusid uustulnukaid.

Kui teil on programmeerimise kontseptsioonide ja terminoloogiatega kogemusi, oleks üks neist kolmest dokumentatsioonist lihtne läbi lugeda.

6. Laienduste ja vahevara tugi

Scrapy on kõige laiendatavam Pythoni veebikraapimise raamistik, punkt. See toetab vahevara, laiendusi, puhverservereid ja palju muud ning aitab teil suuremahuliste projektide jaoks välja töötada roomaja.

Saate kirjutada lollikindlaid ja tõhusaid roomajaid, rakendades Scrapys vahevara, mis on põhimõtteliselt konksud, mis lisavad raamistiku vaikemehhanismile kohandatud funktsioone. Näiteks HttpErrorMiddleware hoolitseb HTTP-vigade eest, nii et ämblikud ei peaks nendega päringute töötlemise ajal tegelema.

Vahevara ja laiendused on Scrapy eksklusiivsed, kuid sarnaseid tulemusi saate saavutada ka Beautiful Soup ja Seleniumi abil, kasutades täiendavaid Pythoni teeke.

7. JavaScripti renderdamine

Seleenil on üks kasutusjuhtum, kus see ületab teisi veebikraapimise teeke, see tähendab JavaScripti toega veebisaitide kraapimist. Kuigi saate Scrapy vahevara abil JavaScripti elemente kraapida, on Seleniumi töövoog kõige lihtsam ja mugavam.

Kasutate brauserit veebisaidi laadimiseks, sellega suhtlemiseks klikkide ja nupuvajutuste abil ning millal teil on ekraanil sisu, mida peate kraapima, eraldage see Seleniumi CSS-i ja XPathi abil valijad.

Beautiful Soup saab valida HTML-i elemente kas XPathi või CSS-i valijate abil. Siiski ei paku see veebilehe JavaScripti renderdatud elementide kraapimist.

Pythoni abil on veebikraapimine lihtne

Internet on täis algandmeid. Veebikraapimine aitab muuta need andmed tähenduslikuks teabeks, mida saab hästi kasutada. Seleen on tõenäoliselt teie kõige turvalisem panus, kui soovite veebisaiti JavaScriptiga kraapida või peate enne andmete ekstraheerimist käivitama mõned ekraanielemendid.

Scrapy on täisväärtuslik veebikraapimise raamistik kõigi teie vajaduste jaoks, olenemata sellest, kas soovite kirjutada väikese roomiku või suuremahulise kaabitsa, mis otsib korduvalt Internetis uuendatud andmeid.

Kaunist suppi saate kasutada, kui olete algaja või peate kiiresti kaabitsa välja töötama. Ükskõik, mis raamistikku või teeki kasutate, on Pythoni abil lihtne veebikraapimist õppida.