Krásná polévka

Výukový program Python BeautifulSoup pro začátečníky

Výukový program Python BeautifulSoup pro začátečníky
Web scraping má v dnešním světě velký význam. Každý potřebuje data z různých zdrojů, včetně webových stránek. V tomto článku se podíváme na to, jak analyzovat html s knihovnou beautifulsoup. Extrahování potřebných dat z mnoha abeced a symbolů se díky této skvělé knihovně stalo mnohem jednodušším. BeautifulSoup napsaný v Pythonu lze snadno nainstalovat na svůj počítač pomocí instalačního nástroje pro Python. Následující příkaz by pomohl nainstalovat knihovnu:

pip nainstalujte BeautifulSoup4

Chcete-li zkontrolovat, zda byla instalace úspěšná, aktivujte interaktivní prostředí Pythonu a importujte BeautifulSoup. Pokud se nezobrazí žádná chyba, znamená to, že vše proběhlo v pořádku.  Pokud nevíte, jak na to, zadejte do terminálu následující příkazy.

$ python
Python 3.5.2 (výchozí, 14. září 2017, 22:51:06)
[GCC 5.4.0 20160609] na Linuxu
Další informace získáte zadáním „help“, „copyright“, „credit“ nebo „license“.
>>> import bs4

Abyste mohli pracovat s knihovnou BeautifulSoup, musíte předat html. Při práci se skutečnými webovými stránkami můžete získat html webové stránky pomocí knihovny požadavků. Instalace a použití knihovny požadavků přesahuje rámec tohoto článku, ale v dokumentaci byste se dobře orientovali, její použití je celkem snadné. V tomto článku jednoduše použijeme html v řetězci pythonu, který bychom volali html.

html = "" "

Profil zaměstnance



Název:Dr. Peter Parker

Práce:Inženýr strojového učení

Telefon:+12345678910


Webová stránka:
pparkerworks.com



„“ „

Chcete-li použít beautifulsoup, importujeme jej do kódu pomocí níže uvedeného kódu:

z importu bs4 BeautifulSoup

To by představilo BeautifulSoup do našeho jmenného prostoru a můžeme ho použít při analýze našeho řetězce.

soup = BeautifulSoup (html, "lxml")

Nyní, polévka je objekt BeautifulSoup typu bs4.BeautifulSoup a můžeme provádět všechny operace BeautifulSoup na internetu polévkaproměnná.

Pojďme se nyní podívat na některé věci, které můžeme s BeautifulSoup dělat.

DĚLAT Ošklivé, KRÁSNÉ

Když BeautifulSoup analyzuje html, není to obvykle v nejlepším formátu. Rozteč je docela hrozná. Značky je těžké najít. Zde je obrázek, který ukazuje, jak by vypadaly, když vytisknete soubor polévka:

Existuje však řešení tohoto problému. Řešení dává html perfektní rozestup, díky čemuž věci vypadají dobře. Toto řešení se zaslouženě nazývá „předstírat".

Je pravda, že tuto funkci nebudete moci používat většinu času; jsou však chvíle, kdy nemusíte mít přístup k nástroji pro kontrolu prvků ve webovém prohlížeči. V době omezených zdrojů byste považovali metodu prettify za velmi užitečnou.

Jak to používáte:

polévka.prettify ()

Značka by vypadala správně rozmístěná, stejně jako na obrázku níže:

Když na polévku použijete metodu prettify, výsledkem již nebude typ bs4.Krásná polévka. Výsledkem je nyní typ 'unicode'. To znamená, že na něj nelze použít jiné metody BeautifulSoup, nicméně polévka samotná není ovlivněna, takže jsme v bezpečí.

NAJDETE NAŠE OBLÍBENÉ ZNAČKY

HTML se skládá ze značek. Ukládá do nich všechna svá data a uprostřed toho nepořádku leží data, která potřebujeme. V zásadě to znamená, že když najdeme správné značky, můžeme získat to, co potřebujeme.

Jak tedy najdeme správné značky? Využíváme metody BeautifulSoup find a find_all.

Fungují takto:

The nalézt metoda vyhledá první značku s potřebným názvem a vrátí objekt typu bs4.živel.Štítek.

The najít_všechno metoda na druhé straně vyhledá všechny tagy s potřebným názvem tagu a vrátí je jako seznam typu bs4.živel.ResultSet. Všechny položky v seznamu jsou typu bs4.živel.Označte, abychom mohli provést indexování v seznamu a pokračovat v průzkumu naší krásné skupiny.

Podívejme se na nějaký kód. Najdeme všechny značky div:

polévka.najít („div“)

Získali bychom následující výsledek:

Název:Dr. Peter Parker

Při kontrole proměnné html byste si všimli, že se jedná o první značku div.

polévka.find_all („div“)

Získali bychom následující výsledek:

[
Název:Dr. Peter Parker
,
Práce:Inženýr strojového učení
,
Telefon:+12345678910
,
,
Webová stránka:
pparkerworks.com
]

Vrátí seznam.  Pokud například chcete třetí značku div, spustíte následující kód:

polévka.find_all („div“) [2]

Vrátilo by následující:

Telefon:+12345678910

NAJDĚNÍ ATRIBUTŮ NAŠICH OBLÍBENÝCH ZNAČEK

Nyní, když jsme viděli, jak získat naše oblíbené značky, co takhle získat jejich atributy?

Možná si v tuto chvíli myslíte: „K čemu potřebujeme atributy?". Mnohokrát většina údajů, které potřebujeme, budou e-mailové adresy a webové stránky. Tento druh dat je obvykle hypertextový odkaz na webové stránky, s odkazy v atributu „href“.

Když jsme extrahovali potřebnou značku pomocí metod find nebo find_all, můžeme získat atributy aplikací attrs. To by vrátilo slovník atributu a jeho hodnoty.

Například pro získání atributu email dostaneme značky, které obklopují potřebné informace, a proveďte následující.

polévka.find_all („a“) [0].attrs

Který by vrátil následující výsledek:

'href': 'mailto: [chráněno e-mailem' '

Totéž pro atribut webu.

polévka.find_all („a“) [1].attrs

Který by vrátil následující výsledek:

'href': '
http: // pparkerworks.com'

Vrácené hodnoty jsou slovníky a k získání klíčů a hodnot lze použít běžnou syntaxi slovníku.

Podívejme se na rodiče a děti

Všude jsou značky. Někdy chceme vědět, co jsou podřízené značky a co je nadřazená značka.

Pokud ještě nevíte, co je nadřazená a podřízená značka, mělo by stačit toto krátké vysvětlení: nadřazená značka je okamžitá vnější značka a dítě je okamžitá vnitřní značka dané značky.

Když se podíváme na náš html, tag body je nadřazený tag všech tagů div. Tučná značka a značka ukotvení jsou také podřízenými značkami div, kde je to vhodné, protože ne všechny značky div mají značky kotvy.

Takže můžeme získat přístup k nadřazené značce voláním findParent metoda.

polévka.najít („div“).findParent ()

To by vrátilo celou značku těla:


Název:Dr. Peter Parker

Práce:Inženýr strojového učení

Telefon:+12345678910


Webová stránka:
pparkerworks.com

Chcete-li získat podřízenou značku čtvrté značky div, nazýváme najít děti metoda:

polévka.find_all ("div") [4].findChildren ()

Vrátí následující:

[Webová stránka:, pparkerworks.com]

Co pro nás obsahuje?

Při procházení webových stránek nevidíme značky všude na obrazovce. Vidíme pouze obsah různých značek. Co když chceme obsah značky, aniž by nám všechny hranaté závorky znepříjemňovaly život? To není těžké, vše, co bychom udělali, je zavolat get_text metoda na tagu dle výběru a dostaneme text do tagu a pokud tag má v sobě další tagy, získá také jejich textové hodnoty.

Zde je příklad:

polévka.najít („tělo“).get_text ()

Tím se vrátí všechny textové hodnoty ve značce body:

Jméno: Dr. Peter Parker
Práce: Inženýr strojového učení
Telefon: +12345678910
E-mail: [chráněn e-mailem]
Webové stránky: pparkerworks.com

ZÁVĚR

To je to, co pro tento článek máme. S krásnou polévkou však lze udělat ještě další zajímavé věci. Můžete si prohlédnout dokumentaci nebo použít dir (BeautfulSoup) na interaktivním prostředí zobrazíte seznam operací, které lze s objektem BeautifulSoup provádět. To je ode mě dnes všechno, dokud znovu nenapíšu.

Hry Nainstalujte si nejnovější strategickou hru OpenRA na Ubuntu Linux
Nainstalujte si nejnovější strategickou hru OpenRA na Ubuntu Linux
OpenRA je herní engine Libre / Free Real Time Strategy, který obnovuje rané hry Westwood, jako je klasický Command & Conquer: Red Alert. Distribuované...
Hry Nainstalujte si nejnovější Dolphin Emulator pro Gamecube a Wii na Linuxu
Nainstalujte si nejnovější Dolphin Emulator pro Gamecube a Wii na Linuxu
Emulátor Dolphin vám umožní hrát vybrané hry Gamecube a Wii na osobních počítačích se systémem Linux (PC). Jako volně dostupný herní emulátor s otevř...
Hry Jak používat GameConqueror Cheat Engine v Linuxu
Jak používat GameConqueror Cheat Engine v Linuxu
Tento článek popisuje průvodce používáním cheatovacího modulu GameConqueror v systému Linux. Mnoho uživatelů, kteří hrají hry v systému Windows, často...