A világháló az összes adat mindent átfogó és végső forrása. Soha nem volt példa az internet gyors fejlődésére az elmúlt három évtizedben. Ennek eredményeként a web minden nap több száz terabájt adattal van felszerelve.
Ezeknek az adatoknak valamilyen értéke van egy bizonyos személy számára. Például a böngészési előzményei jelentőséggel bírnak a közösségi média alkalmazások számára, mivel ezek felhasználják a megjelenített hirdetések személyre szabásához. És ezekért az adatokért is nagy a verseny; néhány MB-mal több adat jelentős előnyt jelenthet a vállalkozások számára a versenytársakkal szemben.
Adatbányászat Python-nal
Annak érdekében, hogy segítsen azoknak, akik újak az adatkezelésben, elkészítettük ezt az útmutatót, amelyben bemutatjuk, hogyan lehet az internetről adatokat másolni a Python és a Beautiful soup Library segítségével.
Feltételezzük, hogy Ön már ismeri a Python és a HTML ismereteit, mivel mindkettővel együtt fog működni az ebben az útmutatóban szereplő utasítások szerint.
Legyen óvatos azzal kapcsolatban, hogy mely webhelyeken próbálja ki újdonsült adatbányászati készségeit, mivel sok webhely ezt tolakodónak tartja, és tudja, hogy ennek lehetnek következményei.
A könyvtárak telepítése és előkészítése
Most két könyvtárat fogunk használni, amelyeket használni fogunk: a python kérelem könyvtárát a weboldalak tartalmának betöltésére, a Beautiful Soup könyvtárat pedig a folyamat tényleges kaparási bitjére. A BeautifulSoupnak vannak alternatívái, ne feledje, és ha ismeri az alábbiak egyikét, nyugodtan használja ezeket: Scrappy, Mechanize, Selenium, Portia, kimono és ParseHub.
A kérés könyvtár letölthető és telepíthető a pip paranccsal, az alábbiak szerint:
# pip3 telepítési kérelem
A kérelem könyvtárat telepíteni kell az eszközére. Hasonlóképpen töltse le a BeautifulSoup-ot is:
# pip3 install beautifulsoup4
Ezzel a könyvtárak készen állnak a cselekvésre.
Mint fentebb említettük, a kérés könyvtárnak nincs sok más célja, csak a weboldalak tartalmának lekérése. A BeautifulSoup könyvtárnak és a kéréskönyvtáraknak helye van minden írandó szkriptben, és ezeket az alábbiak előtt kell importálni:
$ import kérések$ a bs4-ből importálja a BeautifulSoup-ot bs-ként
Ez hozzáadja a kért kulcsszót a névtérhez, jelezve a Python számára a kulcsszó jelentését, valahányszor használatát kéri. Ugyanez történik a bs kulcsszóval, bár itt előnyünk van egy egyszerűbb kulcsszó hozzárendeléséhez a BeautifulSouphoz.
weboldal = kérések.get (URL)A fenti kód lekéri a weboldal URL-jét, és egy közvetlen karakterláncot hoz létre belőle, egy változóba tárolva.
$ webcontent = weboldal.tartalomA fenti parancs másolja a weboldal tartalmát, és hozzárendeli a változó webtartalomhoz.
Ezzel elkészültünk a kérés könyvtárral. Nincs más hátra, mint megváltoztatni a kérés könyvtár beállításait BeautifulSoup opciókra.
$ htmlcontent = bs (webcontent, „html.elemző")
Ez elemzi a kérelem objektumot, és olvasható HTML objektummá alakítja.
Ennek minden gondjával áttérhetünk a tényleges kaparó bitre.
Webes kaparás a Python és a BeautifulSoup segítségével
Lépjünk tovább, és nézzük meg, hogyan lehet beolvasni HTML adatobjektumokat a BeautifulSoup segítségével.
Egy példa illusztrálásához, miközben elmagyarázzuk a dolgokat, a következő HTML-kódrészlettel dolgozunk:
Ennek a kódrészletnek a tartalmát a BeautifulSoup segítségével érhetjük el, és használhatjuk a HTML tartalmi változón, az alábbiak szerint:
A fenti kód megkeresi az összes megnevezett címkét
A megnevezett címkék egyidejű mentéséhez
egy listához kiadnánk a végleges kódot, az alábbiak szerint:
A kimenetnek így kell visszatérnie:
Megidézni az egyik
Most láthatjuk, hogyan válasszuk ki
a címkék szem előtt tartva jellemzőiket. Különválasztani a , szükségünk lenne a
divért levesben.find_all ('div', attrs = 'class' = 'Tech_head'):
Ez elhozza a
címke.Kapna:
Technológia
Minden címke nélkül.
Végül kitérünk arra, hogyan válasszuk ki az attribútum értékét egy címkében. A kódnak ezt a címkét kell tartalmaznia:
Az src attribútumhoz társított érték működtetéséhez használja a következőket:
htmlcontent.find („img“) [„src“]És a kimenet a következőképpen alakulna:
"images_4 / a-kezdőknek-útmutató-web-lekaparáshoz-a-pitonnal-és-gyönyörű-levessel.jpg "
Ó, fiú, ez nagyon sok munka!
Ha úgy érzi, hogy a python vagy a HTML ismerete nem megfelelő, vagy ha egyszerűen elárasztja a webes kaparás, ne aggódjon.
Ha Ön olyan vállalkozás, amelynek rendszeresen be kell szereznie egy adott típusú adatot, de nem tudja maga elvégezni az internetes lekaparást, akkor ennek a problémának a körülményei vannak. De tudd, hogy ez pénzbe fog kerülni. Találhat valakit, aki elvégzi az Ön számára a kaparást, vagy beszerezheti a prémium adatszolgáltatást olyan webhelyekről, mint a Google és a Twitter, hogy megossza veled az adatokat. Ezek API-k alkalmazásával osztják meg adataik egy részét, de ezek az API-hívások naponta korlátozottak. Ettől eltekintve az ilyen weboldalak nagyon védik az adataikat. Általában sok ilyen webhely egyáltalán nem osztja meg adatait.
Végső gondolatok
Mielőtt lezárnánk, hadd mondjam el hangosan, ha ez még nem volt magától értetődő; a find (), find_all () parancsok a legjobb barátok, amikor éppen kikaparunk a BeautifulSoupról. Annak ellenére, hogy még sok mindent le kell fedeznünk a Python által lekapart adatok törléséhez, ennek az útmutatónak elégnek kell lennie azok számára, akik éppen most kezdik.