Веб стругање

Веб стругање помоћу Питхона

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

На пример, ако желите редовно да добијате новости о својим омиљеним производима за понуде с попустом или желите да аутоматизујете поступак преузимања епизода омиљене сезоне једну по једну, а веб локација нема АПИ за то, онда је једини избор остаје вам стругање по мрежи.Веб стругање може бити незаконито на неким веб локацијама, у зависности од тога да ли то дозвољава или не. Веб странице користе „роботе.ткт ”за експлицитно дефинисање УРЛ-ова којима није дозвољено брисање. Можете ли проверити да ли веб локација то дозвољава додавањем „робота.ткт “са именом домена веб локације. На пример, хттпс: // ввв.гоогле.цом / роботс.ткт

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

Како функционише стругање по мрежи?

Шаљемо захтев на веб страницу одакле желите да обришете податке. Веб локација ће одговорити на захтев ХТМЛ садржајем странице. Затим можемо да рашчланимо ову веб страницу на БеаутифулСоуп ради даље обраде. Да бисмо преузели веб страницу, користићемо библиотеку „урллиб“ у Питхону.

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

Стругање чланака из Линукхинта.цом

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

Сада притисните ЦРТЛ + У да бисте видели ХТМЛ изворни код веб странице.

Копирајте изворни код и идите на хттпс: // хтмлформаттер.цом / за претварање кода. Након претварања кода лако га је прегледати и пронаћи занимљиве информације.

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

// Инсталирајте прелепу библиотеку супа, долази урллиб
унапред инсталиран у Питхон-у
убунту @ убунту: ~ $ судо пип3 инсталл бс4
убунту @ убунту: ~ $ питхон3
Питхон 3.7.3 (подразумевано, 7. октобар 2019, 12:56:13)
[ОУУ 8.3.0] на Линук-у

Упишите „помоћ“, „ауторска права“, „кредити“ или „лиценца“ за више информација.

// Увоз урллиб-а
>>> увоз урллиб.захтев
// Увоз БеаутифулСоуп
>>> из бс4 увози БеаутифулСоуп
// Унесите УРЛ који желите да преузмете
>>> ми_урл = 'хттпс: // линукхинт.цом / '
// Затражите УРЛ страницу помоћу команде урлопен
>>> клијент = урллиб.захтев.урлопен (мој_урл)
// Спремите ХТМЛ веб страницу у променљиву „хтмл_паге“
>>> хтмл_паге = клијент.читати()
// Затворите УРЛ везу након преузимања веб странице
>>> клијент.Близу()
// анализирамо ХТМЛ страницу на БеаутифулСоуп ради стругања
>>> паге_соуп = БеаутифулСоуп (хтмл_паге, "хтмл.парсер ")

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

Можете видети да је први чланак наведен на Линукхинт-у.цом је назван „74 Басх Операторс Примери“, пронађите ово у изворном коду. Затворен је између заглавља, а његов код је



цласс = "цатегори-1561"> БАСХ програмирање


титле = "Примери 74 Басх оператора"> 74 Басх оператора
Примери


Исти код се понавља изнова и изнова са променом само наслова чланака и веза. Следећи чланак садржи следећи ХТМЛ код



цласс = "цатегори-1343"> Убунту
Лак


титле = "Како поставити кеш меморију лакова на Убунту 18.04 ">
Како подесити кеш меморију на Убунту 18.04


Можете видети да су сви чланци, укључујући ова два, затворени у исти „

”И користите исту класу„ ентри-титле ”. Можемо да користимо функцију „финдАлл“ у библиотеци Беаутифул Соуп да бисмо пронашли и пописали све „

“Који има класу„ ентри-титле “. Укуцајте следеће у своју Питхон конзолу

// Ова наредба ће пронаћи све “

”Елементи ознаке чији је назив класа
„Унос-наслов“. Излаз ће бити ускладиштен у низу.
>>> чланци = паге_соуп.финдАлл ("х2" ,
"цласс": "ентри-титле")
// Број чланака нађених на насловној страни Линукхинта.цом
>>> лен (чланци)
102
// Прво издвојено “

”Елемент ознаке који садржи назив чланка и везу
>>> чланци [0]


титле = "74 Примери басх оператора">
74 Примери басх оператора


// друго издвојено “

”Елемент ознаке који садржи назив чланка и везу
>>> чланци [1]


титле = "Како поставити кеш меморију лакова на Убунту 18.04 ">
Како подесити кеш меморију Варнисх на Убунту 18.04


// Приказивање само текста у ХТМЛ таговима помоћу функције текста
>>> чланци [1].текст
'Како подесити кеш меморију на Убунту 18.04 '

Сада када имамо листу свих 102 ХТМЛ “

”Елементи ознаке који садрже везу и наслов чланка. Можемо издвојити везе до чланака и наслове. Да бисте издвојили везе из „”, Можемо користити следећи код

// Следећи код ће из прве издвојити везу

елемент ознаке
>>> за везу у чланцима [0].финд_алл ('а', хреф = Труе):
… Испис (линк ['хреф'])

хттпс: // линукхинт.цом / басх_оператор_екамплес /

Сада можемо написати фор петљу која се понавља кроз сваки „

Елемент ознаке на листи „чланци“ и издвојите везу и наслов чланка.

>>> за и у опсегу (0,10):
… Испис (чланци [и].текст)
... за везу у чланцима [и].финд_алл ('а', хреф = Труе):
… Испис (веза ['хреф'] + "\ н")

74 Примери басх оператора
хттпс: // линукхинт.цом / басх_оператор_екамплес /
Како подесити кеш меморију Варнисх на Убунту 18.04
хттпс: // линукхинт.цом / варнисх_цацхе_убунту_1804 /
ПинеТиме: Смартватцх прилагођен Линуку
хттпс: // линукхинт.цом / пинетиме_линук_смартватцх /
10 најбољих јефтиних Линук преносних рачунара за куповину по повољним ценама
хттпс: // линукхинт.цом / бест_цхеап_линук_лаптопс /
ХД Ремастеред игре за Линук које никада нису имале Линук издање ..
хттпс: // линукхинт.цом / хд_ремастеред_гамес_линук /
60 ФПС апликација за снимање екрана за Линук
хттпс: // линукхинт.цом / 60_фпс_сцреен_рецординг_аппс_линук /
74 Примери басх оператора
хттпс: // линукхинт.цом / басх_оператор_екамплес /
... снип ..

Слично томе, ове резултате чувате у ЈСОН или ЦСВ датотеци.

Закључак

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

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