На пример, ако желите редовно да добијате новости о својим омиљеним производима за понуде с попустом или желите да аутоматизујете поступак преузимања епизода омиљене сезоне једну по једну, а веб локација нема АПИ за то, онда је једини избор остаје вам стругање по мрежи.Веб стругање може бити незаконито на неким веб локацијама, у зависности од тога да ли то дозвољава или не. Веб странице користе „роботе.ткт ”за експлицитно дефинисање УРЛ-ова којима није дозвољено брисање. Можете ли проверити да ли веб локација то дозвољава додавањем „робота.ткт “са именом домена веб локације. На пример, хттпс: // ввв.гоогле.цом / роботс.ткт
У овом чланку ћемо користити Питхон за стругање јер је врло једноставан за подешавање и употребу. Има много уграђених библиотека и независних библиотека које се могу користити за стругање и организовање података. Користићемо две Питхон библиотеке „урллиб“ за дохватање веб странице и „БеаутифулСоуп“ за рашчлањивање веб странице за примену операција програмирања.
Како функционише стругање по мрежи?
Шаљемо захтев на веб страницу одакле желите да обришете податке. Веб локација ће одговорити на захтев ХТМЛ садржајем странице. Затим можемо да рашчланимо ову веб страницу на БеаутифулСоуп ради даље обраде. Да бисмо преузели веб страницу, користићемо библиотеку „урллиб“ у Питхону.
Урллиб ће преузети садржај веб странице у ХТМЛ-у. Не можемо применити стринг операције на овој ХТМЛ веб страници за издвајање садржаја и даљу обраду. Користићемо Питхон библиотеку „БеаутифулСоуп“ која ће рашчланити садржај и извући занимљиве податке.
Стругање чланака из Линукхинта.цом
Сад кад имамо идеју о томе како функционише стругање по мрежи, пођимо мало вежбе. Покушаћемо да обришемо наслове чланака и везе са Линукхинта.цом. Дакле, отворите хттпс: // линукхинт.цом / у вашем претраживачу.
Сада притисните ЦРТЛ + У да бисте видели ХТМЛ изворни код веб странице.
Копирајте изворни код и идите на хттпс: // хтмлформаттер.цом / за претварање кода. Након претварања кода лако га је прегледати и пронаћи занимљиве информације.
Сада поново копирајте форматирани код и налепите га у свој омиљени уређивач текста као што је атом, узвишени текст итд. Сада ћемо стругати занимљиве информације користећи Питхон. Откуцајте следеће
// Инсталирајте прелепу библиотеку супа, долази урллибунапред инсталиран у Питхон-у
убунту @ убунту: ~ $ судо пип3 инсталл бс4
убунту @ убунту: ~ $ питхон3
Питхон 3.7.3 (подразумевано, 7. октобар 2019, 12:56:13)
[ОУУ 8.3.0] на Линук-у
Упишите „помоћ“, „ауторска права“, „кредити“ или „лиценца“ за више информација.
// Увоз урллиб-а>>> увоз урллиб.захтев
// Увоз БеаутифулСоуп
>>> из бс4 увози БеаутифулСоуп
// Унесите УРЛ који желите да преузмете
>>> ми_урл = 'хттпс: // линукхинт.цом / '
// Затражите УРЛ страницу помоћу команде урлопен
>>> клијент = урллиб.захтев.урлопен (мој_урл)
// Спремите ХТМЛ веб страницу у променљиву „хтмл_паге“
>>> хтмл_паге = клијент.читати()
// Затворите УРЛ везу након преузимања веб странице
>>> клијент.Близу()
// анализирамо ХТМЛ страницу на БеаутифулСоуп ради стругања
>>> паге_соуп = БеаутифулСоуп (хтмл_паге, "хтмл.парсер ")
Сада погледајмо ХТМЛ изворни код који смо управо копирали и налепили како бисмо пронашли ствари које нас занимају.
Можете видети да је први чланак наведен на Линукхинт-у.цом је назван „74 Басх Операторс Примери“, пронађите ово у изворном коду. Затворен је између заглавља, а његов код је
титле = "Примери 74 Басх оператора"> 74 Басх оператора
Примери
Исти код се понавља изнова и изнова са променом само наслова чланака и веза. Следећи чланак садржи следећи ХТМЛ код
титле = "Како поставити кеш меморију лакова на Убунту 18.04 ">
Како подесити кеш меморију на Убунту 18.04
Можете видети да су сви чланци, укључујући ова два, затворени у исти „
”И користите исту класу„ ентри-титле ”. Можемо да користимо функцију „финдАлл“ у библиотеци Беаутифул Соуп да бисмо пронашли и пописали све „“Који има класу„ ентри-титле “. Укуцајте следеће у своју Питхон конзолу // Ова наредба ће пронаћи све “”Елементи ознаке чији је назив класа
„Унос-наслов“. Излаз ће бити ускладиштен у низу.
>>> чланци = паге_соуп.финдАлл ("х2" ,
"цласс": "ентри-титле")
// Број чланака нађених на насловној страни Линукхинта.цом
>>> лен (чланци)
102
// Прво издвојено “”Елемент ознаке који садржи назив чланка и везу
>>> чланци [0]
титле = "74 Примери басх оператора">
74 Примери басх оператора
// друго издвојено “”Елемент ознаке који садржи назив чланка и везу
>>> чланци [1]
титле = "Како поставити кеш меморију лакова на Убунту 18.04 ">
Како подесити кеш меморију Варнисх на Убунту 18.04
// Приказивање само текста у ХТМЛ таговима помоћу функције текста
>>> чланци [1].текст
'Како подесити кеш меморију на Убунту 18.04 '
”Елементи ознаке чији је назив класа
„Унос-наслов“. Излаз ће бити ускладиштен у низу.
>>> чланци = паге_соуп.финдАлл ("х2" ,
"цласс": "ентри-титле")
// Број чланака нађених на насловној страни Линукхинта.цом
>>> лен (чланци)
102
// Прво издвојено “”Елемент ознаке који садржи назив чланка и везу
>>> чланци [0]
титле = "74 Примери басх оператора">
74 Примери басх оператора
// друго издвојено “”Елемент ознаке који садржи назив чланка и везу
>>> чланци [1]
титле = "Како поставити кеш меморију лакова на Убунту 18.04 ">
Како подесити кеш меморију Варнисх на Убунту 18.04
// Приказивање само текста у ХТМЛ таговима помоћу функције текста
>>> чланци [1].текст
'Како подесити кеш меморију на Убунту 18.04 '
>>> чланци [0]
титле = "74 Примери басх оператора">
74 Примери басх оператора
// друго издвојено “
”Елемент ознаке који садржи назив чланка и везу
>>> чланци [1]
титле = "Како поставити кеш меморију лакова на Убунту 18.04 ">
Како подесити кеш меморију Варнисх на Убунту 18.04
// Приказивање само текста у ХТМЛ таговима помоћу функције текста
>>> чланци [1].текст
'Како подесити кеш меморију на Убунту 18.04 '
титле = "Како поставити кеш меморију лакова на Убунту 18.04 ">
Како подесити кеш меморију Варнисх на Убунту 18.04
Сада када имамо листу свих 102 ХТМЛ “
”Елементи ознаке који садрже везу и наслов чланка. Можемо издвојити везе до чланака и наслове. Да бисте издвојили везе из „”, Можемо користити следећи код // Следећи код ће из прве издвојити везу елемент ознаке
>>> за везу у чланцима [0].финд_алл ('а', хреф = Труе):
… Испис (линк ['хреф'])
…
хттпс: // линукхинт.цом / басх_оператор_екамплес /
Сада можемо написати фор петљу која се понавља кроз сваки „
Елемент ознаке на листи „чланци“ и издвојите везу и наслов чланка. >>> за и у опсегу (0,10):
… Испис (чланци [и].текст)
... за везу у чланцима [и].финд_алл ('а', хреф = Труе):
… Испис (веза ['хреф'] + "\ н")
…
74 Примери басх оператора
хттпс: // линукхинт.цом / басх_оператор_екамплес /
Како подесити кеш меморију Варнисх на Убунту 18.04
хттпс: // линукхинт.цом / варнисх_цацхе_убунту_1804 /
ПинеТиме: Смартватцх прилагођен Линуку
хттпс: // линукхинт.цом / пинетиме_линук_смартватцх /
10 најбољих јефтиних Линук преносних рачунара за куповину по повољним ценама
хттпс: // линукхинт.цом / бест_цхеап_линук_лаптопс /
ХД Ремастеред игре за Линук које никада нису имале Линук издање ..
хттпс: // линукхинт.цом / хд_ремастеред_гамес_линук /
60 ФПС апликација за снимање екрана за Линук
хттпс: // линукхинт.цом / 60_фпс_сцреен_рецординг_аппс_линук /
74 Примери басх оператора
хттпс: // линукхинт.цом / басх_оператор_екамплес /
... снип ..
Слично томе, ове резултате чувате у ЈСОН или ЦСВ датотеци.
Закључак
Ваши свакодневни задаци нису само управљање датотекама или извршавање системских наредби. Такође можете аутоматизовати задатке повезане са Вебом, попут аутоматизације преузимања датотека или издвајања података, стругањем Веба у Питхону. Овај чланак био је ограничен на само једноставно издвајање података, али можете обавити огромну аутоматизацију задатака помоћу „урллиб“ и „БеаутифулСоуп“.
>>> за везу у чланцима [0].финд_алл ('а', хреф = Труе):
… Испис (линк ['хреф'])
…
хттпс: // линукхинт.цом / басх_оператор_екамплес /
… Испис (чланци [и].текст)
... за везу у чланцима [и].финд_алл ('а', хреф = Труе):
… Испис (веза ['хреф'] + "\ н")
…
74 Примери басх оператора
хттпс: // линукхинт.цом / басх_оператор_екамплес /
Како подесити кеш меморију Варнисх на Убунту 18.04
хттпс: // линукхинт.цом / варнисх_цацхе_убунту_1804 /
ПинеТиме: Смартватцх прилагођен Линуку
хттпс: // линукхинт.цом / пинетиме_линук_смартватцх /
10 најбољих јефтиних Линук преносних рачунара за куповину по повољним ценама
хттпс: // линукхинт.цом / бест_цхеап_линук_лаптопс /
ХД Ремастеред игре за Линук које никада нису имале Линук издање ..
хттпс: // линукхинт.цом / хд_ремастеред_гамес_линук /
60 ФПС апликација за снимање екрана за Линук
хттпс: // линукхинт.цом / 60_фпс_сцреен_рецординг_аппс_линук /
74 Примери басх оператора
хттпс: // линукхинт.цом / басх_оператор_екамплес /
... снип ..