Szeretné megtanulni a webkaparást Python segítségével, de nem tudja, hogy a következő projektjéhez a Beautiful Soup-ot, a Selenium-t vagy a Scrapy-t használja? Bár ezek a Python-könyvtárak és -keretrendszerek önmagukban is erősek, nem elégítik ki őket minden webkaparási igényt kielégít, ezért fontos tudni, hogy melyik eszközt kell használnia egy adott esethez munka.
Vessünk egy pillantást a Beautiful Soup, a Scrapy és a Selenium közötti különbségekre, hogy bölcs döntést hozhasson, mielőtt elkezdi a következő Python webkaparási projektet.
1. Egyszerű használat
Ha Ön kezdő, az első követelmény egy könnyen megtanulható és használható könyvtár. A Beautiful Soup minden olyan kezdetleges eszközt kínál, amelyre szüksége van az internet feltérképezéséhez, és ez különösen jó hasznos azoknak, akik minimális tapasztalattal rendelkeznek a Python használatában, de szeretnének a webes pályára lépni kaparás.
Az egyetlen figyelmeztetés az, hogy egyszerűsége miatt a Beautiful Soup nem olyan erős, mint a Scrapy vagy a Selenium. A fejlesztői tapasztalattal rendelkező programozók könnyedén elsajátíthatják mind a Scrapy-t, mind a Selenium-t, de kezdőknek a Az első projekt felépítése sok időt vehet igénybe, ha a Beautiful helyett ezeket a kereteket választják Leves.
Az example.com címke tartalmának a Beautiful Soup használatával lekaparásához a következő kódot kell használnia:
url = "https://example.com/"
res = kérések.get (url).text
leves = BeautifulSoup (res, 'html.parser')
title = soup.find("cím").szöveg
nyomtatás(cím)
Ha hasonló eredményeket szeretne elérni a szelén használatával, írja be:
url = "https://example.com"
driver = webdriver. Króm("elérési út/to/chromeddriver")
sofőr.kap(url)
title = driver.find_element (készítette: TAG_NAME, "cím").get_attribute('szöveg')
nyomtatás(cím)
A Scrapy projekt fájlstruktúrája több fájlból áll, ami tovább bonyolítja a projektet. A következő kód az example.com címét kaparja ki:
import érdesosztályTitleSpider(érdes. Pók):
név = 'cím'
start_urls = ['https://example.com']
defelemezni(én, válasz):
hozam {
'név': válasz.css('cím'),
}
Ha olyan szolgáltatásból szeretne adatokat kinyerni, amely hivatalos API-t kínál, bölcs döntés lehet használja az API-t a webkaparó fejlesztése helyett.
2. Kaparási sebesség és párhuzamosítás
A három közül a Scrapy az egyértelmű győztes, ami a sebességet illeti. Ennek az az oka, hogy alapértelmezés szerint támogatja a párhuzamosítást. A Scrapy használatával egyszerre több HTTP-kérést is küldhet, és amikor a szkript letöltötte az első kéréskészlet HTML-kódját, készen áll egy újabb köteg küldésére.
A Beautiful Soup segítségével a szálfűzési könyvtárat használhatja párhuzamos HTTP-kérések küldésére, de ez nem kényelmes, és ehhez meg kell tanulnia a többszálas kezelést. A Seleniumon lehetetlen párhuzamosítást elérni több böngészőpéldány elindítása nélkül.
Ha ezt a három webkaparó eszközt rangsorolná a sebesség szempontjából, akkor a Scrapy a leggyorsabb, ezt követi a Beautiful Soup és a Selenium.
3. Memóriahasználat
A Selenium egy böngészőautomatizálási API, amely megtalálta az alkalmazásokat a webkaparó mező. Ha Seleniumot használ egy webhely lekaparására, az egy fej nélküli böngészőpéldányt eredményez, amely a háttérben fut. Ez a szelént erőforrás-igényes eszközzé teszi a Beautiful Soup és a Scrapy termékkel összehasonlítva.
Mivel az utóbbiak teljes egészében a parancssorban működnek, kevesebb rendszererőforrást használnak, és jobb teljesítményt nyújtanak, mint a Selenium.
4. Függőségi követelmények
A Beautiful Soup olyan elemző eszközök gyűjteménye, amelyek segítségével adatokat nyerhet ki HTML- és XML-fájlokból. Semmi mással nem szállítják. Olyan könyvtárakat kell használnia, mint pl kéréseket vagy urllib HTTP-kérések, beépített elemzők a HTML/XML elemzéséhez, valamint további könyvtárak a proxy-k vagy adatbázis-támogatás megvalósításához.
Scrapy viszont jön az egész szurkálással. Eszközöket kap a kérések küldésére, a letöltött kód elemzésére, a kivont adatokkal kapcsolatos műveletek végrehajtására és a kimásolt információk tárolására. Bővítmények és köztes szoftverek segítségével további funkciókat is hozzáadhat a Scrapy-hez, de ez később jön.
A Selenium segítségével letölt egy web-illesztőprogramot az automatizálni kívánt böngészőhöz. Más funkciók, például adattárolás és proxytámogatás megvalósításához harmadik féltől származó modulokra van szükség.
5. Dokumentáció minősége
Összességében a projekt minden dokumentációja jól strukturált, és minden módszert példákon keresztül ír le. De egy projekt dokumentációjának hatékonysága nagymértékben függ az olvasótól is.
A Beautiful Soup dokumentációja sokkal jobb azoknak a kezdőknek, akik a webkaparással kezdik. A Selenium és a Scrapy kétségtelenül részletes dokumentációval rendelkezik, de a szakzsargon sok újoncot képes megfogni.
Ha jártas a programozási koncepciókban és terminológiákban, akkor a három dokumentáció közül bármelyiket érdemes elolvasni.
6. Kiterjesztések és köztes szoftverek támogatása
A Scrapy a leginkább bővíthető webkaparó Python-keretrendszer, pont. Támogatja a köztes szoftvert, a bővítményeket, a proxykat és egyebeket, és segít bejáró fejlesztésében nagyszabású projektekhez.
Bolondbiztos és hatékony bejárókat írhat, ha a Scrapy köztes szoftvereket implementálja, amelyek alapvetően olyan horgok, amelyek egyéni funkcionalitást adnak a keretrendszer alapértelmezett mechanizmusához. Például a HttpErrorMiddleware gondoskodik a HTTP hibákról, így a pókoknak nem kell velük foglalkozniuk a kérések feldolgozása közben.
A köztes szoftverek és a bővítmények kizárólag a Scrapy számára elérhetőek, de hasonló eredményeket érhet el a Beautiful Soup és a Selenium segítségével további Python-könyvtárak használatával.
7. JavaScript renderelés
A szelénnek van egy használati esete, ahol felülmúlja a többi webkaparó könyvtárat, ez pedig a JavaScript-kompatibilis webhelyek lekaparása. Bár a JavaScript elemeket Scrapy köztes szoftverekkel is lekaparhatja, a Selenium munkafolyamat a legegyszerűbb és legkényelmesebb.
Böngészővel tölt be egy webhelyet, kattintással és gombnyomással interakcióba lép vele, és mikor Megvan a képernyőre kaparni kívánt tartalom, és a Selenium CSS és XPath segítségével bontsa ki válogatók.
A Beautiful Soup XPath vagy CSS szelektorok segítségével kiválaszthatja a HTML elemeket. Nem kínál azonban olyan funkciót, amely JavaScript által megjelenített elemeket lekaparna egy weboldalról.
Könnyű webkaparás Python segítségével
Az internet tele van nyers adatokkal. A webes kaparás segít ezeket az adatokat értelmes információkká alakítani, amelyek jól használhatók. Valószínűleg a szelén a legbiztonságosabb megoldás, ha JavaScripttel szeretne lekaparni egy webhelyet, vagy aktiválnia kell néhány képernyő-elemet az adatok kinyerése előtt.
A Scrapy egy teljes értékű webkaparó keretrendszer, amely minden igényt kielégít, akár egy kis bejárót, akár egy nagyméretű scrapert szeretne írni, amely ismételten feltérképezi az internetet a frissített adatokért.
Használhatja a Beautiful Soup-ot, ha kezdő vagy, vagy gyorsan ki kell fejlesztenie a kaparót. Bármilyen keretrendszert vagy könyvtárat használjon is, a Python segítségével könnyen elkezdheti a webkaparás elsajátítását.