Како инсталирати прелепу супу и користити је за пројекте Веб Сцрапинг?

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

Пре него што инсталирате и радите са Беаутифул Соуп, хајде да сазнамо зашто бисте то требали да урадите.

Шта је лепа супа?

Хајде да се претварамо да истражујете „Утицај ЦОВИД-а на здравље људи“ и да сте пронашли неколико веб страница које садрже релевантне податке. Али шта ако вам не понуде опцију преузимања једним кликом да позајмите њихове податке? Ево лепе супе у игри.

Беаутифул Соуп је међу индексима Питхон библиотека за извлачење података са циљаних локација. Удобније је преузимати податке са ХТМЛ или КСМЛ страница.

Леонард Ричардсон је 2004. изнео идеју о Лепој супи за стругање мреже. Али његов допринос пројекту се наставља и данас. Поносно ажурира свако ново издање Лепе супе на свом Твиттер налогу.

Иако је Беаутифул Соуп за веб стругање развијен помоћу Питхон-а 3.8, савршено ради и са Питхон-ом 3 и Питхон-ом 2.4.

Веб локације често користе цаптцха заштиту да спасу своје податке од АИ алата. У овом случају, неколико промена у заглављу ‘усер-агент’ у Лепој супи или коришћење АПИ-ја за решавање Цаптцха може имитирати поуздан претраживач и преварити алатку за откривање.

Међутим, ако немате времена да истражујете прелепу супу или желите да се гребање обави ефикасно и лако, онда не би требало да пропустите да погледате овај АПИ за стругање на вебу, где можете само да наведете УРЛ и добијете податке у руке.

  90Нигхт управља циклусима спавања, поставља време за спавање и позиве за буђење

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

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

Јасна и детаљна документација је још једна поента за колачиће коју је прелепа супа спремила.

Хајде да пронађемо једноставан начин да убаците прелепу супу у вашу машину.

Како инсталирати прелепу супу за веб стругање?

Пип – Питхон менаџер пакета без напора развијен 2008. сада је стандардна алатка међу програмерима за инсталирање било које Питхон библиотеке или зависности.

Пип подразумевано долази са инсталацијом најновијих верзија Питхон-а. Стога, ако имате било коју недавну верзију Питхон-а инсталирану на вашем систему, можете кренути.

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

pip install beautifulsoup4

Видећете нешто слично следећем снимку екрана на екрану.

Уверите се да сте ажурирали ПИП инсталатер на најновију верзију да бисте избегли уобичајене грешке.

Команда за ажурирање пип инсталатера на најновију верзију је:

pip install --upgrade pip

Успешно смо покрили пола терена у овом посту.

Сада имате инсталирану Беаутифул Соуп на вашој машини, па хајде да заронимо у то како да је користите за веб стругање.

Како увести и радити са прелепом супом за веб стругање?

Унесите следећу команду у свој питхон ИДЕ да бисте увезли прелепу супу у тренутну Питхон скрипту.

from bs4 import BeautifulSoup

Сада је Лепа супа у вашој Питхон датотеци коју можете користити за стругање.

Хајде да погледамо пример кода да научимо како да извучемо жељене податке са прелепом супом.

Можемо рећи прелепој Соуп-у да тражи одређене ХТМЛ ознаке на изворној веб локацији и да обрише податке присутне у тим ознакама.

У овом делу ћу користити маркетватцх.цом, који ажурира цене акција разних компанија у реалном времену. Хајде да извучемо неке податке са ове веб странице да бисмо се упознали са библиотеком Лепа супа.

  Поправите Коди се не може повезати са мрежним сервером

Увезите пакет „захтева“ који ће нам омогућити да примамо и одговоримо на ХТТП захтеве и „урллиб“ за учитавање веб странице са њеног УРЛ-а.

from urllib.request import urlopen
import requests

Сачувајте везу до веб странице у променљивој како бисте јој касније могли лако приступити.

url="https://www.marketwatch.com/investing/stock/amzn"

Следеће би било коришћење методе „урлопен“ из библиотеке „урллиб“ за чување ХТМЛ странице у променљивој. Проследите УРЛ функцији „урлопен“ и сачувајте резултат у променљивој.

page = urlopen(url)

Направите објекат Беаутифул Соуп и анализирајте жељену веб страницу користећи „хтмл.парсер“.

soup_obj = BeautifulSoup(page, 'html.parser')

Сада се цела ХТМЛ скрипта циљане веб странице чува у променљивој ‘соуп_обј’.

Пре него што наставимо, погледајмо изворни код циљане странице да бисмо сазнали више о ХТМЛ скрипти и ознакама.

Кликните десним тастером миша било где на веб страници. Затим ћете пронаћи опцију прегледа, као што је приказано у наставку.

Кликните на инспецт да видите изворни код.

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

Метода „пронађи“ у прелепој супи нам омогућава да тражимо тражене ХТМЛ ознаке и преузмемо податке. Да бисмо то урадили, дајемо име класе и ознаке методи која издваја одређене податке.

На пример, „Амазон.цом Инц.“ приказан на веб страници има назив класе: ‘цомпани__наме’ означен под ‘х1’. Можемо да унесемо ове информације у метод ‘финд’ да бисмо издвојили релевантни ХТМЛ исечак у променљиву.

name = soup_obj.find('h1', attrs={'class': 'company__name'})

Хајде да испишемо ХТМЛ скрипту сачувану у променљивој „наме“ и тражени текст на екрану.

print(name)

print(name.text)

Можете да присуствујете екстрахованим подацима одштампаним на екрану.

Веб Сцрапе ИМДб веб локацију

Многи од нас траже оцене филмова на сајту ИМБб-а пре него што погледају филм. Ова демонстрација ће вам дати листу најбоље оцењених филмова и помоћи вам да се навикнете на прелепу супу за веб стругање.

Корак 1: Увезите прелепу супу и библиотеке захтева.

from bs4 import BeautifulSoup
import requests

Корак 2: Хајде да доделимо УРЛ адресу коју желимо да извучемо променљивој која се зове ‘урл’ ради лакшег приступа у коду.

  Како да зипујете (и распакујете) датотеке користећи ПоверСхелл

Пакет „захтеви“ се користи за добијање ХТМЛ странице са УРЛ-а.

url = requests.get('https://www.imdb.com/search/title/?count=100&groups=top_1000&sort=user_rating')

Корак 3: У следећем исечку кода, анализираћемо ХТМЛ страницу тренутног УРЛ-а да бисмо направили објекат прелепе супе.

soup_obj = BeautifulSoup(url.text, 'html.parser')

Променљива „соуп_обј“ сада садржи целу ХТМЛ скрипту жељене веб странице, као на следећој слици.

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

Пређите курсором преко елемента веб странице који желите да издвојите. Затим кликните десним тастером миша на њега и идите са опцијом прегледа да бисте видели изворни код тог специфичног елемента. Следећи визуелни прикази ће вас боље водити.

Класа ‘листер-лист’ садржи све најбоље оцењене податке у вези са филмовима као под-поделе у узастопним див ознакама.

У ХТМЛ скрипти сваке филмске картице, испод класе „листер-итем моде-адванцед“, имамо ознаку „х3“ која чува назив филма, ранг и годину издања, као што је истакнуто на слици испод.

Напомена: Метода „пронађи“ у прелепој супи тражи прву ознаку која одговара називу уноса који му је дат. За разлику од „финд“, „финд_алл“ метода тражи све ознаке које одговарају датом уносу.

Корак 4: Можете користити методе „финд“ и „финд_алл“ да бисте сачували ХТМЛ скрипту имена, ранга и године сваког филма у променљивој листе.

top_movies = soup_obj.find('div',attrs={'class': 'lister-list'}).find_all('h3')

Корак 5: Прођите кроз листу филмова ускладиштених у променљивој: „топ_мовиес“ и извуците име, ранг и годину сваког филма у текстуалном формату из његове ХТМЛ скрипте користећи код испод.

for movie in top_movies:
    movi_name = movie.a.text
    rank = movie.span.text.rstrip('.')
    year = movie.find('span', attrs={'class': 'lister-item-year text-muted unbold'})
    year = year.text.strip('()')
    print(movi_name + " ", rank+ " ", year+ " ")

На излазном снимку екрана можете видети листу филмова са њиховим именом, рангом и годином издања.

Можете без напора да преместите одштампане податке у Екцел табелу са неким Питхон кодом и користите их за своју анализу.

Завршне речи

Овај пост вас води у инсталирању прелепе супе за веб стругање. Такође, примери стругања које сам показао требало би да вам помогну да почнете са Прелепом супом.

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