Például, ha rendszeresen frissítéseket szeretne kapni kedvenc termékeiről az akciós ajánlatokhoz, vagy automatizálni szeretné a kedvenc évad epizódjainak egyesével történő letöltésének folyamatát, és a webhely nem rendelkezik hozzá API-val, akkor az egyetlen választás marad a webes kaparás.A webes kaparás egyes webhelyeken illegális lehet, attól függően, hogy egy webhely lehetővé teszi-e vagy sem. A webhelyek „robotokat használnak.txt ”fájl az URL-ek kifejezett meghatározásához, amelyeket nem szabad selejtezni. A „robotok” hozzáadásával ellenőrizheti, hogy a webhely lehetővé teszi-e vagy sem.txt ”a webhely domain nevével. Például: https: // www.Google.com / robotok.txt
Ebben a cikkben a Python-t fogjuk használni a kaparáshoz, mert nagyon könnyű beállítani és használni. Számos beépített és harmadik féltől származó könyvtárakkal rendelkezik, amelyek felhasználhatók az adatok lekaparására és rendszerezésére. Két Python-könyvtárat fogunk használni: „urllib” a weboldal beolvasásához, a „BeautifulSoup” -ot pedig a weboldal elemzéséhez a programozási műveletek alkalmazásához.
Hogyan működik a webes kaparás?
Kérést küldünk a weboldalra, ahonnan az adatokat meg akarja kaparni. A weboldal a kérésre az oldal HTML-tartalmával válaszol. Ezután elemezhetjük ezt a weboldalt a BeautifulSoup-ra további feldolgozás céljából. A weboldal beolvasásához az „urllib” könyvtárat fogjuk használni a Pythonban.
Az Urllib letölti a weboldal tartalmát HTML-ben. Nem alkalmazhatunk karakterlánc műveleteket erre a HTML weboldalra a tartalom kinyerése és további feldolgozása céljából. Egy „BeautifulSoup” Python könyvtárat fogunk használni, amely elemzi a tartalmat és kivonja az érdekes adatokat.
Cikkek kaparása a Linuxhintből.com
Most, hogy van elképzelésünk a webes kaparás működéséről, végezzünk egy kis gyakorlatot. Megpróbáljuk lekaparni a cikkek címét és a linkeket a Linuxhintből.com. Tehát nyisd meg a https: // linuxhint fájlt.com / a böngészőben.
Most nyomja meg a CRTL + U gombot a weboldal HTML forráskódjának megtekintéséhez.
Másolja a forráskódot, és lépjen a https: // htmlformatter oldalra.com / a kód pontosításához. A kód pontosítása után könnyen ellenőrizhető a kód és érdekes információk találhatók benne.
Most másolja újra a formázott kódot, és illessze be kedvenc szövegszerkesztőjébe, például atom, fenséges szöveg stb. Most lekérdezzük az érdekes információkat a Python segítségével. Írja be a következőt
// Telepítsen gyönyörű leveskönyvtárat, jön az urllibelőre telepítve a Pythonba
ubuntu @ ubuntu: ~ $ sudo pip3 telepítse a bs4-et
ubuntu @ ubuntu: ~ $ python3
Python 3.7.3 (alapértelmezett, 2019. október 7., 12:56:13)
[ÖET 8.3.0] a linuxon
Írja be a „help”, a „copyright”, a „credits” vagy a „license” szót további információkért.
// Urllib importálása>>> urllib importálása.kérés
// BeautifulSoup importálása
>>> a bs4-ből a BeautifulSoup importálása
// Írja be a beolvasni kívánt URL-t
>>> my_url = 'https: // linuxhint.com / '
// Az URL weboldal kérése az urlopen paranccsal
>>> kliens = urllib.kérés.urlopen (my_url)
// Tárolja a HTML weboldalt a „html_page” változóba
>>> html_page = kliens.olvas()
// Zárja be az URL-kapcsolatot a weboldal beolvasása után
>>> kliens.Bezárás()
// a HTML weboldalt elemzi a BeautifulSoup-ra a lekaparáshoz
>>> page_soup = BeautifulSoup (html_oldal, "html.elemző")
Most nézzük meg az imént másolt és beillesztett HTML-forráskódot, hogy megtaláljuk az érdeklődésre számot tartó dolgokat.
Láthatja, hogy az első cikk a Linuxhint-en szerepel.com neve „74 Bash Operators Examples”, ezt keresse meg a forráskódban. A fejléccímkék közé van zárva, a kódja pedig
title = "74 Bash Operators példa"> 74 Bash Operators
Példák
Ugyanaz a kód ismétlődik a cikkek címeinek és linkjeinek megváltoztatásával. A következő cikk a következő HTML-kódot tartalmazza
title = "A lakk gyorsítótárának beállítása az Ubuntu 18-on.04 ">
A lakk gyorsítótárának beállítása az Ubuntu 18-on.04
Láthatja, hogy az összes cikk, beleértve ezt a kettőt is, ugyanabba a
”Címkét, és használja ugyanazt a„ entry-title ”osztályt. Használhatjuk a „findAll” funkciót a Gyönyörű leves könyvtárban, hogy megtaláljuk és felsoroljuk az összes”Osztályú„ nevezési cím ”. Írja be a következőket a Python-konzoljába // Ez a parancs megtalálja az összes “”Tag elemek, amelyek osztálya meg van nevezve
„Bejegyzés címe”. A kimenetet egy tömbben tároljuk.
>>> cikkek = oldal_leves.findAll ("h2" ,
"class": "entry-title")
// A Linuxhint címlapján található cikkek száma.com
>>> len (cikkek)
102
// Első kivonat “”Címkeelem, amely a cikk nevét és linkjét tartalmazza
>>> cikkek [0]
title = "74 Bash Operators példa">
74 Bash operátorok
// Második kivonat “”Címkeelem, amely a cikk nevét és linkjét tartalmazza
>>> cikkek [1]
title = "A lakk gyorsítótárának beállítása az Ubuntu 18-on.04 ">
A lakk gyorsítótárának beállítása az Ubuntu 18-on.04
// Csak szöveg megjelenítése HTML-címkékben szövegfunkcióval
>>> cikkek [1].szöveg
'A lakk gyorsítótárának beállítása az Ubuntu 18-on.04 '
”Tag elemek, amelyek osztálya meg van nevezve
„Bejegyzés címe”. A kimenetet egy tömbben tároljuk.
>>> cikkek = oldal_leves.findAll ("h2" ,
"class": "entry-title")
// A Linuxhint címlapján található cikkek száma.com
>>> len (cikkek)
102
// Első kivonat “”Címkeelem, amely a cikk nevét és linkjét tartalmazza
>>> cikkek [0]
title = "74 Bash Operators példa">
74 Bash operátorok
// Második kivonat “”Címkeelem, amely a cikk nevét és linkjét tartalmazza
>>> cikkek [1]
title = "A lakk gyorsítótárának beállítása az Ubuntu 18-on.04 ">
A lakk gyorsítótárának beállítása az Ubuntu 18-on.04
// Csak szöveg megjelenítése HTML-címkékben szövegfunkcióval
>>> cikkek [1].szöveg
'A lakk gyorsítótárának beállítása az Ubuntu 18-on.04 '
>>> cikkek [0]
title = "74 Bash Operators példa">
74 Bash operátorok
// Második kivonat “
”Címkeelem, amely a cikk nevét és linkjét tartalmazza
>>> cikkek [1]
title = "A lakk gyorsítótárának beállítása az Ubuntu 18-on.04 ">
A lakk gyorsítótárának beállítása az Ubuntu 18-on.04
// Csak szöveg megjelenítése HTML-címkékben szövegfunkcióval
>>> cikkek [1].szöveg
'A lakk gyorsítótárának beállítása az Ubuntu 18-on.04 '
title = "A lakk gyorsítótárának beállítása az Ubuntu 18-on.04 ">
A lakk gyorsítótárának beállítása az Ubuntu 18-on.04
Most, hogy megvan az összes 102 HTML
”Címkeelemek, amelyek cikk hivatkozást és cikk címét tartalmazzák. Kihúzhatjuk a cikkek hivatkozásait és címeit is. Linkek kibontása a”Címkékkel a következő kódot használhatjuk // A következő kód előbb kibontja a linket tag elemet
>>> link a cikkekben [0].find_all ('a', href = True):
… Nyomtatás (link ['href'])
…
https: // linuxhint.com / bash_operator_examples /
Most írhatunk egy for ciklust, amely minden „
”Tag elemet a„ articles ”listában, és bontsa ki a cikk linkjét és címét. >>> i tartományban (0,10):
… Nyomtatás (cikkek [i].szöveg)
… Link a cikkekben [i].find_all ('a', href = True):
… Nyomtatás (link ['href'] + "\ n")
…
74 Bash operátorok
https: // linuxhint.com / bash_operator_examples /
A lakk gyorsítótárának beállítása az Ubuntu 18-on.04
https: // linuxhint.com / varnish_cache_ubuntu_1804 /
PineTime: Linux-barát Smartwatch
https: // linuxhint.com / pinetime_linux_smartwatch /
10 legjobb olcsó Linux laptop, amelyet kedvező áron vásárolhat meg
https: // linuxhint.com / best_cheap_linux_laptops /
HD Remastered Games Linuxhoz, amelyeknek soha nem volt Linux kiadásuk ..
https: // linuxhint.com / hd_remastered_games_linux /
60 FPS képernyőfelvevő alkalmazás Linux számára
https: // linuxhint.com / 60_fps_screen_recording_apps_linux /
74 Bash operátorok
https: // linuxhint.com / bash_operator_examples /
... kivágás…
Hasonlóképpen, ezeket az eredményeket JSON vagy CSV fájlba menti.
Következtetés
A napi feladatok nem csak a fájlkezelés vagy a rendszerparancsok végrehajtása. Automatizálhatja az internettel kapcsolatos feladatokat, például a fájlletöltés automatizálását vagy az adatok kinyerését azáltal, hogy az internetet lekaparja a Pythonban. Ez a cikk csak az egyszerű adatkivonatra korlátozódott, de az „urllib” és a „BeautifulSoup” segítségével hatalmas feladat-automatizálást végezhet.
>>> link a cikkekben [0].find_all ('a', href = True):
… Nyomtatás (link ['href'])
…
https: // linuxhint.com / bash_operator_examples /
… Nyomtatás (cikkek [i].szöveg)
… Link a cikkekben [i].find_all ('a', href = True):
… Nyomtatás (link ['href'] + "\ n")
…
74 Bash operátorok
https: // linuxhint.com / bash_operator_examples /
A lakk gyorsítótárának beállítása az Ubuntu 18-on.04
https: // linuxhint.com / varnish_cache_ubuntu_1804 /
PineTime: Linux-barát Smartwatch
https: // linuxhint.com / pinetime_linux_smartwatch /
10 legjobb olcsó Linux laptop, amelyet kedvező áron vásárolhat meg
https: // linuxhint.com / best_cheap_linux_laptops /
HD Remastered Games Linuxhoz, amelyeknek soha nem volt Linux kiadásuk ..
https: // linuxhint.com / hd_remastered_games_linux /
60 FPS képernyőfelvevő alkalmazás Linux számára
https: // linuxhint.com / 60_fps_screen_recording_apps_linux /
74 Bash operátorok
https: // linuxhint.com / bash_operator_examples /
... kivágás…