Az Önhöz hasonló olvasók támogatják a MUO-t. Amikor a webhelyünkön található linkek használatával vásárol, társult jutalékot kaphatunk. Olvass tovább.

Számos Python-könyvtár és keretrendszer áll rendelkezésre adatok kinyerésére az internetről. Mindenki egy adott eszközzel kezdi, amíg rá nem jön, hogy nem biztos, hogy a legjobban illeszkedik a következő projektjéhez. Habár nagyon valószínűtlen, hogy az összes Python-eszközt egyetlen projektben használná, tudnod kell, melyiket tartsd kéznél a webkaparó eszköztárban.

Íme a legjobb Python-könyvtárak, keretrendszerek és egyéb eszközök, amelyek segítségével könnyedén lekaparhatja az adatokat az internetről.

1. Gyönyörű leves

Kezdjük a listával a kezdőknek szánt legjobb webkaparó könyvtárral: Gyönyörű leves. Lényegében egy olyan eszköz, amely az elemzett HTML- és XML-fájlokból nyer ki adatokat a dokumentum Python-objektummá alakításával.

A Beautiful Soup "szépsége" az egyszerűségében rejlik. Könnyű beállítani, és megteheti kezdje el első webkaparási projektjét

perceken belül. A Beautiful Soup hierarchikus megközelítést alkalmaz az adatok HTML-dokumentumból való kinyerésére. Az elemeket címkék, osztályok, azonosítók, nevek és egyéb HTML-attribútumok segítségével bonthatja ki.

Ha többet várnánk a Beautiful Souptól, az túl messzire menne. Nincs beépített támogatás a köztes szoftverekhez és más fejlett funkciókhoz, mint például a proxy rotációja vagy a többszálú feldolgozás. A Beautiful Soup segítségével könyvtárakra van szükség a HTTP-kérések küldéséhez, a letöltött dokumentum elemzéséhez, és a kimásolt információk kimeneti fájlba exportálásához.

2. kéréseket

A requests kétségtelenül a leggyakrabban használt Python-könyvtár a HTTP-kérések kezelésére. Az eszköz megállja a helyét: HTTP for Humans™. Több HTTP kéréstípust támogat, a GET-től és POST-tól a PATCH-ig és a DELETE-ig. Nem csak ez, hanem a kérés szinte minden aspektusát szabályozhatja, beleértve a fejléceket és a válaszokat is.

Ha ez könnyen hangzik, megnyugodhat, mivel a kérések a fejlett felhasználókat is kielégítik a sokféle funkcióval. Kijátszhatja a kérést, és testreszabhatja a fejléceit, feltölthet egy fájlt a szerverre POST használatával, és kezelheti többek között az időtúllépéseket, az átirányításokat és a munkameneteket.

kéréseket általában a Beautiful Soup-hoz társítják, amikor webkaparásról van szó, mivel más Python-keretrendszerek beépített támogatással rendelkeznek a HTTP-kérelmek kezelésére. Egy weboldal HTML-kódjának beszerzéséhez kérések segítségével GET-kérést kell küldenie a szervernek, majd ki kell bontania a szöveges adatokat a válaszból, és továbbítania kell a Beautiful Soup-nak.

3. Érdes

Ahogy a neve is sugallja, a Scrapy egy Python-keretrendszer nagyméretű webkaparók fejlesztésére. Ez a svájci kés az adatok kinyerésére az internetről. A Scrapy mindent kezel a kérések küldésétől és a proxy-k megvalósításától az adatkinyerésig és -exportálásig.

A Beautiful Soup-tól eltérően a Scrapy igazi ereje a kifinomult mechanizmusában rejlik. De ne hagyd, hogy ez a bonyolultság megfélemlítsen. A Scrapy a leghatékonyabb webkaparási keretrendszer ezen a listán, sebesség, hatékonyság és funkciók tekintetében. Kiválasztókkal érkezik, amelyek segítségével XPath vagy CSS elemek segítségével választhat ki adatokat egy HTML-dokumentumból.

További előny a Scrapy kérések küldésének és az adatok kibontásának sebessége. Aszinkron módon küldi és dolgozza fel a kéréseket, és ez az, ami megkülönbözteti a többi webkaparó eszköztől.

Az alapvető funkciókon kívül támogatást kap a köztes szoftverekhez is, amelyek egy olyan hook-keretrendszer, amely további funkciókat ad az alapértelmezett Scrapy mechanizmushoz. A JavaScript által vezérelt webhelyeket nem lehet kikaparni a Scrapy segítségével, de használhat köztes szoftvereket, mint pl. scrapy-szelén, scrapy-splash és scrapy-scrapingbee, hogy ezt a funkciót beépítsék a projektbe.

Végül, ha végzett az adatok kibontásával, exportálhatja azokat különféle fájlformátumokba; CSV, JSON és XML, hogy csak néhányat említsünk.

A Scrapy egyike annak a sok oknak, amiért a Python a legjobb programozási nyelv bárki számára, aki webkaparást szeretne. Az első Scrapy projekt beállítása eltarthat egy ideig, különösen, ha nincs tapasztalata Python osztályokkal és keretrendszerekkel. A Scrapy munkafolyamata több fájlra van felosztva, és a kezdők számára ez kéretlen bonyolultságnak tűnhet.

4. Szelén

Ha dinamikus, JavaScript által megjelenített tartalmat szeretne kaparni, akkor a szelén az, amire szüksége van. Többplatformos webes tesztelési keretrendszerként a Selenium segít a HTML, CSS és JavaScript megjelenítésében, valamint a szükséges adatok kibontásában. Valódi felhasználói interakciókat is utánozhat kemény kódolású billentyűzet- és egérműveletekkel, ami teljesen megváltoztatja a játékot.

A Selenium létrehoz egy böngészőpéldányt a web-illesztőprogram segítségével, és betölti az oldalt. A Selenium által támogatott népszerű böngészők közé tartozik a Google Chrome, a Mozilla Firefox, az Opera, a Microsoft Edge, az Apple Safari és az Internet Explorer. CSS és XPath lokátorokat alkalmaz, hasonlóan a Scrapy szelektorokhoz, hogy megkeresse és kivonja a tartalmat az oldal HTML elemeiből.

Ha nem jártas a Pythonban, de ismer más programozási nyelveket, használhatja a Seleniumot C#, JavaScript, PHP, Perl, Ruby és Java nyelvekkel.

Az egyetlen korlátozás az, hogy mivel a Selenium webböngészőt indít a háttérben, a kaparó végrehajtásához szükséges erőforrások jelentősen megnőnek, a Scrapy vagy a Beautiful Souphoz képest. De figyelembe véve a szelén által kínált további funkciókat, ez teljesen indokolt.

5. urllib

A Python urllib könyvtár egy egyszerű, de nélkülözhetetlen eszköz a webkaparás arzenáljában. Lehetővé teszi az URL-ek kezelését és feldolgozását a Python-szkriptekben.

Az urllib megfelelő gyakorlati alkalmazása az URL módosítása. Fontolja meg, hogy egy több oldalas webhelyet kapar, és módosítania kell az URL egy részét, hogy a következő oldalra jusson.

Az urllib segíthet az URL elemzésében és több részre osztásában, amelyeket azután módosíthat, majd kifejthet egy új URL-címet. Míg a könyvtár használata a karakterláncok elemzésére túlzásnak tűnhet, az urllib életmentő azoknak, akik szórakozásból webkaparókat kódolnak, és nem akarnak belemenni az adatstruktúrák kavicsos dolgaiba.

Továbbá, ha egy webhely robots.txt fájlját szeretné megvizsgálni, amely egy szöveges fájl, amely a Google feltérképező robotjához és más kaparóihoz hozzáférési szabályokat tartalmaz, az urllib ebben is segíthet. Javasoljuk, hogy kövesse a webhely robots.txt fájlját, és csak az engedélyezett oldalakat kaparja le.

6. JSON-, CSV- és XML-könyvtárak

Mivel a Beautiful Soup vagy a Selenium nem rendelkezik beépített szolgáltatásokkal az adatok exportálásához, Python könyvtárra lesz szüksége exportálja az adatokat JSON-ba, CSV vagy XML fájl. Szerencsére számos könyvtárat megtehet ennek eléréséhez, és a legalapvetőbbek ajánlottak, nevezetesen a json, csv és xml a JSON, CSV és XML fájlokhoz.

Az ilyen könyvtárak lehetővé teszik egy fájl létrehozását, adatok hozzáadását, majd végül a fájl exportálását a helyi tárolóra vagy távoli kiszolgálóra.

7. Mechanikus leves

Mechanikus leves? Ez egy olcsó szép leves átverés? Nem. Ihlette Elgépiesít a Python kérések és a Beautiful Soup alapján pedig a MechanicalSoup segít automatizálni az emberi viselkedést és adatokat kinyerni egy weboldalról. Félúton tekintheti a Szép leves és a Szelén között. Az egyetlen fogás? Nem kezeli a JavaScriptet.

Bár a nevek hasonlóak, a MechanicalSoup szintaxisa és munkafolyamata rendkívül eltérő. Létrehoz egy böngésző munkamenetet a MechanicalSoup segítségével, és amikor az oldal letöltődik, a Beautiful Soup módszereit használja, mint pl. megtalálja() és Találd meg mindet() adatok kinyerésére a HTML dokumentumból.

A MechanicalSoup másik lenyűgöző tulajdonsága, hogy lehetővé teszi az űrlapok kitöltését szkript segítségével. Ez különösen akkor hasznos, ha valamit be kell írnia egy mezőbe (például egy keresősávba), hogy elérje a kimásolni kívánt oldalt. A MechanicalSoup kéréskezelése nagyszerű, mivel képes automatikusan kezelni az átirányításokat és követni a linkeket az oldalon, így megkímélheti a szakasz manuális kódolásának erőfeszítéseit.

Mivel a Beautiful Soup-on alapul, jelentős átfedés van mindkét könyvtár hátrányai között. Például nincs beépített módszer az adatkimenet, a proxy rotáció és a JavaScript megjelenítés kezelésére. Az egyetlen Beautiful Soup probléma, amelyet a MechanicalSoup orvosolt, a kérések kezelésének támogatása, amelyet a Python kérések könyvtárának egy burkoló kódolásával oldottak meg.

Könnyebb lett a webkaparás Pythonban

A Python kétségtelenül egy hatékony programozási nyelv az internet kaparására, de a használt eszközök csak egy részét képezik a problémának. A kaparó kódolásakor a legjelentősebb probléma, amellyel az emberek szembesülnek, a HTML-dokumentumhierarchia megtanulása.

Ha fejlett webkaparókat szeretne fejleszteni, elengedhetetlen a weboldal szerkezetének megértése és az elemek gyors megtalálásának ismerete.