Читаоци попут вас помажу у подршци МУО. Када обавите куповину користећи везе на нашем сајту, можда ћемо зарадити провизију за партнере. Опширније.

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

Хајде да погледамо разлике између лепе супе, скрапија и селена, тако да можете донети мудру одлуку пре него што започнете свој следећи Питхон пројекат веб скрапинга.

1. Лакоћа коришћења

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

Једино упозорење је, због своје једноставности, лепа супа није тако моћна у поређењу са Сцрапи-ом или Селеном. Програмери са развојним искуством могу лако савладати и Сцрапи и Селениум, али за почетнике, Израда првог пројекта може потрајати много времена ако се одлуче да користе ове оквире уместо Беаутифул Супа.

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

урл = "https://example.com/"
рес = рекуестс.гет (урл).тект
супа = БеаутифулСоуп (рес, 'хтмл.парсер')
титле = сууп.финд("наслов").текст
принт(наслов)

Да бисте постигли сличне резултате користећи селен, написали бисте:

урл = "https://example.com"
драјвер = вебдривер. Хром("путања/до/цхромедривер")
возач.добити(урл)
титле = дривер.финд_елемент (Од. ТАГ_НАМЕ, "наслов").гет_аттрибуте('текст')
принт(наслов)

Структура датотека Сцрапи пројекта састоји се од више датотека, што повећава његову сложеност. Следећи код извлачи наслов са екампле.цом:

увоз сцрапи

класаТитлеСпидер(стругав. паук):
име = 'наслов'
старт_урлс = ['https://example.com']

дефанализирати(само, одговор):
принос {
'име': респонсе.цсс('наслов'),
}

Ако желите да извучете податке из услуге која нуди званични АПИ, можда би била мудра одлука користите АПИ уместо да развијате веб стругач.

2. Брзина стругања и паралелизација

Од три, Сцрапи је јасни победник када је у питању брзина. То је зато што подразумевано подржава паралелизацију. Користећи Сцрапи, можете послати више ХТТП захтева одједном, а када скрипта преузме ХТМЛ код за први скуп захтева, спремна је да пошаље другу групу.

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

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

3. Употреба меморије

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

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

4. Захтеви зависности

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

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

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

5. Квалитет документације

Све у свему, свака пројектна документација је добро структурирана и описује сваки метод користећи примере. Али ефикасност документације пројекта у великој мери зависи и од читаоца.

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

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

6. Подршка за проширења и средњи софтвер

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

Можете писати поуздане и ефикасне претраживаче имплементацијом међувера у Сцрапи-у, који су у основи куке које додају прилагођену функционалност подразумеваном механизму оквира. На пример, ХттпЕррорМиддлеваре брине о ХТТП грешкама тако да пауци не морају да се баве њима док обрађују захтеве.

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

7. ЈаваСцрипт Рендеринг

Селен има један случај употребе у којем надмашује друге библиотеке за стругање веба, а то је сцрапинг веб локација са омогућеним ЈаваСцрипт-ом. Иако можете да скидате ЈаваСцрипт елементе помоћу Сцрапи међувера, ток рада Селениум је најлакши и најпогоднији од свих.

Користите претраживач за учитавање веб локације, интеракцију са њом помоћу кликова и притиска на дугме и када имате садржај који треба да скрежете по екрану, извуците га користећи Селениум ЦСС и КСПатх селектори.

Беаутифул Соуп може одабрати ХТМЛ елементе користећи КСПатх или ЦСС селекторе. Међутим, не нуди функционалност за стругање ЈаваСцрипт рендерованих елемената на веб страници.

Веб Сцрапинг је олакшан уз Питхон

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

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

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