Skaista zupa

Python BeautifulSoup apmācība iesācējiem

Python BeautifulSoup apmācība iesācējiem
Tīmekļa nokasīšanai mūsdienu pasaulē ir liela nozīme. Visiem ir nepieciešami dati no dažādiem avotiem, ieskaitot tīmekļa lapas. Šajā rakstā mēs apskatīsim, kā parsēt html ar beautifulsoup bibliotēku. Nepieciešamo datu iegūšana no alfabētu un simbolu kopas, pateicoties šai lieliskajai bibliotēkai, ir kļuvusi daudz vienkāršāka. Python rakstīto BeautifulSoup var viegli instalēt jūsu datorā, izmantojot Python pip instalēšanas rīku. Šī komanda palīdzētu iegūt bibliotēku instalētu:

PIP instalējiet BeautifulSoup4

Lai pārbaudītu, vai instalēšana bija veiksmīga, aktivizējiet interaktīvo Python čaulu un importējiet programmu BeautifulSoup. Ja netiek parādīta neviena kļūda, tas nozīmē, ka viss notika labi.  Ja jūs nezināt, kā to izdarīt, ierakstiet šīs komandas savā terminālā.

$ pitons
Python 3.5.2 (noklusējums, 2017. gada 14. septembris, 22:51:06)
[GCC 5.4.0 20160609] uz Linux
Lai iegūtu papildinformāciju, ierakstiet “help”, “copyright”, “credits” vai “licence”.
>>> importēt bs4

Lai strādātu ar bibliotēku BeautifulSoup, jums jāievada HTML. Strādājot ar reālām vietnēm, varat iegūt tīmekļa vietnes HTML failu, izmantojot pieprasījumu bibliotēku. Pieprasījumu bibliotēkas instalēšana un izmantošana ir ārpus šī raksta darbības jomas, tomēr jūs varētu orientēties dokumentācijā, kuru ir diezgan viegli izmantot. Šajā rakstā mēs vienkārši izmantosim html pitona virknē, kuru mēs izsauktu html.

html = "" "

Darbinieku profils



Nosaukums:Dr Pīters Pārkers

Darbs:Mašīnzinību inženieris

Tālrunis:+12345678910





"" "

Lai izmantotu beautifulsoup, mēs to importējam kodā, izmantojot zemāk esošo kodu:

no bs4 importa BeautifulSoup

Tas ieviestu BeautifulSoup mūsu vārdu telpā, un mēs varam to izmantot, analizējot virkni.

zupa = BeautifulSoup (html, "lxml")

Tagad, zupa ir bs4 tipa BeautifulSoup objekts.Un mēs varēsim veikt visas. Funkcijas zupamainīgais.

Apskatīsim dažas lietas, ko mēs tagad varam darīt ar BeautifulSoup.

VEIDOŠANU PAR NELIKUMU, SKAISTU

Kad BeautifulSoup parsē html, tas parasti nav labākajos formātos. Atstarpes ir diezgan briesmīgas. Tagus ir grūti atrast. Šeit ir attēls, kas parāda, kā tie izskatītos, kad jums izdrukāt zupa:

Tomēr tam ir risinājums. Risinājums nodrošina html perfektu atstarpi, padarot lietas izskatīties labi. Šo risinājumu pelnīti sauc par “precizēt“.

Jāatzīst, ka lielāko daļu laika jūs nevarat izmantot šo funkciju; tomēr ir gadījumi, kad jums, iespējams, nav piekļuves tīmekļa pārlūkprogrammas pārbaudes elementa rīkam. Šajos ierobežoto resursu laikos prettify metode jums šķitīs ļoti noderīga.

Lūk, kā jūs to izmantojat:

zupa.precizēt ()

Uzcenojums izskatās pareizi izvietots tāpat kā attēlā zemāk:

Lietojot zupai prettify metodi, rezultāts vairs nav bs4 tips.Skaista zupa. Rezultāts tagad ir tips “unicode”. Tas nozīmē, ka uz tā nevar piemērot citas BeautifulSoup metodes, tomēr zupa pati par sevi netiek ietekmēta, tāpēc mēs esam drošībā.

ATRAST MŪSU MĒRĶI

HTML sastāv no tagiem. Tas tajos glabā visus savus datus, un visu šo jucekli vidū slēpjas mums vajadzīgie dati. Būtībā tas nozīmē, ka, atrodot pareizos tagus, mēs varam iegūt nepieciešamo.

Tātad, kā mēs varam atrast pareizos tagus? Mēs izmantojam BeautifulSoup atrast un atrast_ visas metodes.

Lūk, kā viņi strādā:

The atrast method meklē pirmo tagu ar nepieciešamo nosaukumu un atgriež bs4 tipa objektu.elements.Atzīmēt.

The atrast_viss no otras puses, meklē visus tagus ar nepieciešamo taga nosaukumu un atdod tos kā bs4 tipa sarakstu.elements.ResultSet. Visi saraksta vienumi ir bs4 tipa.elements.Atzīmējiet, lai mēs varētu veikt indeksēšanu sarakstā un turpināt mūsu skaisto zupu izpēti.

Apskatīsim kodu. Atrodīsim visus div tagus:

zupa.atrast (“div”)

Mēs iegūtu šādu rezultātu:

Nosaukums:Dr Pīters Pārkers

Pārbaudot html mainīgo, pamanīsit, ka tas ir pirmais div tags.

zupa.find_all (“div”)

Mēs iegūtu šādu rezultātu:

[
Nosaukums:Dr Pīters Pārkers
,
Darbs:Mašīnzinību inženieris
,
Tālrunis:+12345678910
,
,
]

Tas atgriež sarakstu.  Piemēram, ja vēlaties trešo tagu, palaidiet šādu kodu:

zupa.find_all (“div“) [2]

Tas atgriezīs sekojošo:

Tālrunis:+12345678910

MŪSU MĪĻĀKO BAGU ATZĪMES

Tagad, kad esam redzējuši, kā iegūt iecienītākās atzīmes, kā par to atribūtu iegūšanu?

Iespējams, šajā brīdī jūs domājat: “Kam mums vajadzīgi atribūti?“. Nu, daudzas reizes lielākā daļa nepieciešamo datu būs e-pasta adreses un vietnes. Šāda veida dati parasti ir hipersaiti tīmekļa vietnēs ar saitēm atribūtā “href”.

Kad mēs esam izguvuši nepieciešamo tagu, izmantojot metodes find vai find_all, mēs varam iegūt atribūtus, izmantojot piesaista. Tas atgriezīs atribūta vārdnīcu un tā vērtību.

Lai iegūtu, piemēram, e-pasta atribūtu, mēs iegūstam tagus, kas ieskauj nepieciešamo informāciju, un rīkojieties šādi.

zupa.find_all (“a”) [0].piesaista

Kas dotu šādu rezultātu:

'href': 'mailto: [e-pasts aizsargāts]'

Tas pats attiecas uz vietnes atribūtu.

zupa.find_all (“a”) [1].piesaista

Kas dotu šādu rezultātu:

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

Atgrieztās vērtības ir vārdnīcas, un, lai iegūtu atslēgas un vērtības, var izmantot parasto vārdnīcas sintaksi.

REDZĒSIM VECĀKU UN BĒRNUS

Visur ir tagi. Dažreiz mēs vēlamies uzzināt, kas ir bērnu tagi un kas ir vecāku tags.

Ja jūs vēl nezināt, kas ir vecāku un bērnu tags, pietiek ar šo īso skaidrojumu: vecāku tags ir tiešais ārējais tags un bērns ir attiecīgā taga tiešais iekšējais tags.

Apskatot mūsu HTML, ķermeņa tags ir visu div tagu vecāku tags. Treknrakstā un enkura tagi ir arī div tagu bērni, kur piemērojams, jo ne visiem div tagiem ir enkura tagi.

Lai mēs varētu piekļūt vecāku tagam, zvanot uz findParent metodi.

zupa.atrast ("div").findParent ()

Tādējādi tiks atgriezts viss ķermeņa tags:


Nosaukums:Dr Pīters Pārkers

Darbs:Mašīnzinību inženieris

Tālrunis:+12345678910



Lai iegūtu ceturtās div atzīmes bērniem atzīmi, mēs to saucam atrastBērni metode:

zupa.find_all ("div") [4].atrastBērni ()

Tas atgriež:

[Vietne:, pparkerworks.com]

Kas mums tas ir?

Pārlūkojot tīmekļa lapas, ekrānā visur nav redzami tagi. Viss, ko mēs redzam, ir dažādu tagu saturs. Ko darīt, ja mēs vēlamies atzīmes saturu, bez visām leņķiskajām iekavām, kas dzīvi padara neērtu? Tas nav grūti, viss, ko mēs darītu, ir piezvanīt get_text metodi izvēlētajā tagā, un mēs tagā iegūstam tekstu, un, ja tagā ir citi tagi, tas iegūst arī to teksta vērtības.

Lūk, piemērs:

zupa.atrast ("ķermenis").get_text ()

Atgriež visas teksta vērtības pamattekstā:

Vārds: Dr Peter Parker
Darbs: mašīnmācības inženieris
Tālrunis: +12345678910
E-pasts: [e-pasts aizsargāts]
Vietne: pparkerworks.com

SECINĀJUMS

Tas ir tas, ko mēs esam ieguvuši šim rakstam. Tomēr joprojām ir citas interesantas lietas, ko var izdarīt ar skaistu zupu. Varat vai nu apskatīt dokumentāciju, vai arī izmantot rež (BeautfulSoup) interaktīvajā čaulā, lai skatītu to darbību sarakstu, kuras var veikt ar objektu BeautifulSoup. Tas ir viss no manis šodien, līdz es atkal uzrakstīšu.

HD Remastered spēles operētājsistēmai Linux, kurām nekad agrāk nebija Linux laidiena
Daudzi spēļu izstrādātāji un izdevēji nāk klajā ar veco spēļu HD remaster, lai pagarinātu franšīzes darbības laiku. Lūdzu, faniem, kas pieprasa saderī...
Kā izmantot AutoKey, lai automatizētu Linux spēles
AutoKey ir darbvirsmas automatizācijas lietderība operētājsistēmām Linux un X11, kas ieprogrammēta Python 3, GTK un Qt. Izmantojot skriptu un MACRO fu...
Kā parādīt FPS skaitītāju Linux spēlēs
Linux spēles ieguva lielu impulsu, kad Valve 2012. gadā paziņoja par Linux atbalstu Steam klientam un viņu spēlēm. Kopš tā laika daudzas AAA un indie ...