БеаутифулСоуп

Водич за Питхон БеаутифулСоуп за почетнике

Водич за Питхон БеаутифулСоуп за почетнике
Веб стругање је од велике важности у данашњем свету. Свима су потребни подаци из различитих извора, укључујући веб странице. У овом чланку ћемо погледати како рашчланити ХТМЛ са библиотеком беаутифулсоуп. Издвајање потребних података из гомиле абецеда и симбола, захваљујући овој сјајној библиотеци, постало је много лакше. БеаутифулСоуп написан на Питхону лако се може инсталирати на ваш рачунар помоћу Питхон-овог алата за инсталацију пипа. Следећа команда ће вам помоћи да инсталирате библиотеку:

пип инсталирајте БеаутифулСоуп4

Да бисте проверили да ли је инсталација била успешна, активирајте интерактивну љуску Питхон и увезите БеаутифулСоуп. Ако се не појави грешка, значи да је све прошло у реду.  Ако не знате како то да урадите, укуцајте следеће наредбе у свом терминалу.

$ питхон
Питхон 3.5.2 (подразумевано, 14. септембар 2017. 22:51:06)
[ОУУ 5.4.0 20160609] на Линук-у
Унесите „помоћ“, „ауторска права“, „кредити“ или „лиценца“ за више информација.
>>> увоз бс4

Да бисте радили са БеаутифулСоуп библиотеком, морате да уђете у хтмл. Када радите са правим веб локацијама, ХТМЛ веб страницу можете добити помоћу библиотеке захтева. Инсталација и употреба библиотеке захтева је изван делокруга овог чланка, међутим могли бисте се снаћи у документацији и прилично је једноставна за употребу. За овај чланак ћемо једноставно користити хтмл у питхон низу који бисмо позивали хтмл.

хтмл = "" "

Профил запосленог



Име:Др Петер Паркер

Посао:Инжењер машинског учења

Телефон:+12345678910





"" "

Да бисмо користили беаутифулсоуп, увозимо га у код помоћу доњег кода:

из бс4 увоза БеаутифулСоуп

Ово би увело БеаутифулСоуп у наш простор имена и можемо га користити за рашчлањивање низа.

супа = БеаутифулСоуп (хтмл, "лкмл")

Сада, супа је БеаутифулСоуп објекат типа бс4.БеаутифулСоуп и можемо да извршимо све операције БеаутифулСоуп на супапроменљива.

Погледајмо неке ствари које сада можемо да урадимо са БеаутифулСоуп.

ЧИЊЕЊЕ РУЖНОГ, ЛЕПОГ

Када БеаутифулСоуп рашчлани хтмл, то обично није у најбољем формату. Размак је прилично ужасан. Ознаке је тешко наћи. Ево слике која показује како би изгледали када стигнете да одштампате супа:

Међутим, за ово постоји решење. Решење даје хтмл-у савршен размак, чинећи да ствари изгледају добро. Ово решење се заслужено назива „преттифи„.

Додуше, ову функцију можда нећете моћи користити већину времена; међутим, постоје случајеви када можда нећете имати приступ алатки за преглед елемената веб прегледача. У она времена ограничених ресурса, метода преттифи би вам била врло корисна.

Ево како га користите:

супа.преттифи ()

Ознаке би изгледале правилно распоређене, баш као на слици испод:

Када на супу примените методу преттифи, резултат више није тип бс4.БеаутифулСоуп. Резултат је сада „уницоде“. То значи да на њега не можете применити друге методе БеаутифулСоуп, међутим то не утиче на саму супу па смо на сигурном.

ПРОНАЂИ НАШЕ ОМИЉЕНЕ ОЗНАКЕ

ХТМЛ се састоји од ознака. У њима чува све своје податке, а усред тог нереда налазе се подаци који су нам потребни. У основи, то значи да када пронађемо праве ознаке, можемо добити оно што нам треба.

Па како да пронађемо праве ознаке? Користимо БеаутифулСоуп-ове методе проналажења и проналаска_свих.

Ево како функционишу:

Тхе наћи метода тражи прву ознаку са потребним именом и враћа објекат типа бс4.елемент.Таг.

Тхе финд_алл метода, с друге стране, претражује све ознаке са потребним именом ознаке и враћа их као листу типа бс4.елемент.РесултСет. Све ставке на листи су типа бс4.елемент.Означи, да бисмо могли да извршимо индексирање на листи и наставимо са нашим дивним истраживањем.

Да видимо неки код. Нађимо све див ознаке:

супа.пронађи („див“)

Добили бисмо следећи резултат:

Име:Др Петер Паркер

Проверавајући хтмл променљиву, приметили бисте да је ово прва див ознака.

супа.финд_алл („див“)

Добили бисмо следећи резултат:

[
Име:Др Петер Паркер
,
Посао:Инжењер машинског учења
,
Телефон:+12345678910
,
,
]

Враћа листу.  Ако на пример желите трећу див ознаку, покрените следећи код:

супа.финд_алл („див“) [2]

Вратило би следеће:

Телефон:+12345678910

ПРОНАЂИВАЊЕ АТРИБУТА НАШИХ Фаворит ознака

Сад кад смо видели како да дођемо до својих омиљених ознака, како да добијемо њихове атрибуте?

Можда у овом тренутку размишљате: „Шта ће нам атрибути?„. Па, пуно пута ће нам већина података бити адресе е-поште и веб локације. Оваква врста података је обично хипервезана на веб страницама, а везе су у атрибуту „хреф“.

Када издвојимо потребну ознаку, користећи методе финд или финд_алл, атрибуте можемо добити применом аттрс. Ово би вратило речник атрибута и његове вредности.

Да бисмо на пример добили атрибут е-поште, добијамо ознаке које окружују потребне информације и урадите следеће.

супа.финд_алл („а“) [0].аттрс

Што би вратило следећи резултат:

'хреф': 'маилто: [емаил заштићен]'

Иста ствар за атрибут веб странице.

супа.финд_алл („а“) [1].аттрс

Што би вратило следећи резултат:

'хреф': '
хттп: // ппаркерворкс.цом'

Враћене вредности су речници и за добијање кључева и вредности може се применити нормална синтакса речника.

ВИДИМО РОДИТЕЉА И ДЕЦУ

Ознаке су свуда. Понекад желимо да знамо које су дечје ознаке и шта је родитељска ознака.

Ако већ не знате шта је ознака родитеља и детета, требало би да буде довољно ово кратко објашњење: надређена ознака је непосредна спољна ознака, а дете непосредна унутрашња ознака дотичне ознаке.

Гледајући наш хтмл, боди ознака је надређена ознака свих див ознака. Такође, подебљана ознака и сидрена ознака подређене су див ознакама, тамо где је то применљиво, јер све ознаке див немају сидрене ознаке.

Дакле, родитељској ознаци можемо приступити позивањем финдПарент метода.

супа.пронађи ("див").финдПарент ()

Ово би вратило целу ознаку тела:


Име:Др Петер Паркер

Посао:Инжењер машинског учења

Телефон:+12345678910



Да бисмо добили подређену ознаку четврте див ознаке, називамо финдЦхилдрен метода:

супа.финд_алл ("див") [4].финдЦхилдрен ()

Враћа следеће:

[Веб сајт:, ппаркерворкс.цом]

ШТА ЈЕ У НАМА?

Када претражујемо веб странице, не видимо ознаке свуда на екрану. Све што видимо је садржај различитих ознака. Шта ако желимо садржај етикете, без да све угаоне заграде чине живот неудобним? То није тешко, само бисмо назвали гет_тект методу на изабраној ознаци и добијамо текст у ознаци, а ако ознака има друге ознаке, добија и њихове текстуалне вредности.

Ево примера:

супа.пронађи ("тело").гет_тект ()

Ово враћа све вредности текста у ознаци тела:

Име: Др Петер Паркер
Посао: Инжењер машинског учења
Телефон: +12345678910
Емаил: [заштићен е-поштом]
Веб локација: ппаркерворкс.цом

ЗАКЉУЧАК

То је оно што имамо за овај чланак. Међутим, још увек постоје друге занимљиве ствари које се могу учинити помоћу прелепе супе. Можете погледати документацију или је користити дир (БеаутфулСоуп) на интерактивној љусци да бисте видели листу операција које се могу извршити на објекту БеаутифулСоуп. То је све од мене данас, док поново не напишем.

Контролишите и управљајте кретањем миша између више монитора у оперативном систему Виндовс 10
Двоструки приказ миша омогућава вам контролу и конфигурисање кретања миша између више монитора, успоравајући његово кретање близу границе. Виндовс 10/...
ВинМоусе вам омогућава да прилагодите и побољшате кретање показивача миша на Виндовс рачунару
Ако желите да побољшате подразумеване функције показивача миша, користите бесплатни програм ВинМоусе. Додаје још функција које ће вам помоћи да на нај...
Леви тастер миша не ради у оперативном систему Виндовс 10
Ако уз преносни рачунар или стони рачунар користите наменски миш, али тастер миша не ради у оперативном систему Виндовс 10/8/7 из неких разлога, ево н...