Како пратити везе на вебу помоћу Питхон -а

Преглед садржаја

Данас ћу вас научити прођите кроз везе на страници са Питхоном (мрежно стругање), ово може бити веома корисно за аутоматско праћење садржаја на веб локацији и не морате то радити ручно. У програму који доносим, ​​свака веза се добија читањем хтмл -а, а програм можете изменити тако да тражи одређени садржај и приказује само везе за које сте заинтересовани.

Такође можете да извршите стругање веб -а помоћу датотеке роботс.ткт или мапа веб локација које веб локације имају.

БелешкаПриказани код ради у Питхону 3.к, ако желите да га покренете у верзији 2.к мораћете да направите мале измене.

Ево кода:

 увоз редослед увоз урллиб.рекуест увоз ре из урллиб.парсе увоз урљоин деф преузимање (страница): три: рекуест = урллиб.рекуест.Рекуест (паге) хтмл = урллиб.рекуест.урлопен (рекуест) .реад () принт ("[ *] Преузмите ОК >> ", страница) осим: принт ('[!] Грешка при преузимању', страница) ретурн Ноне ретурн хтмл деф цравлЛинкс (паге): сеарцхЛинкс = ре.цомпиле ('] + хреф = ["'] ( . *?) ["']', ре.ИГНОРЕЦАСЕ) ред = куеуе.Куеуе () куеуе.пут (страница) посећено = [паге] принт (" Тражење веза у ", страница) вхиле (куеуе.ксизе () > 0): хтмл = довнлоад (куеуе.гет ()) иф хтмл == Ноне: цонтинуе линкс = сеарцхЛинкс.финдалл (стр (хтмл)) за везу у везама: линк = урљоин (страница, стр (веза)) иф ( веза није у посети): куеуе.пут (веза) висит.аппенд (линк) иф __наме__ == "__маин__": цравлЛинкс ("хттп://ввв.солветиц.цом") 
Прво што радимо је И.увести потребне библиотеке, за регуларне изразе (ре), за коришћење реда (ред), за постављање захтева и читање странице (урллиб.рекуест) и за конструисање апсолутних УРЛ -ова са основне УРЛ адресе и друге УРЛ адресе (урљоин).

Код подељен на 2 функције
за преузимањеПомаже нам да преузмемо хтмл странице. Не треба много објашњења, једино што ради је захтев на жељену страницу, чита њен хтмл, ако све прође добро приказује поруку Довнлоад ОК, а ако не показује да је дошло до грешке (Овде смо може приказати информације о грешци), на крају враћа хтмл прочитано или Ништа.
трацк ЛинксТо је главна функција и проћи ће кроз сваку везу. Хајде да то мало објаснимо:

  • Креирамо променљиву са регуларним изразом, која нам помаже да пронађемо везе у хтмл -у.
  • Покрећемо променљиву типа таил са почетне странице, то ће нам помоћи да сачувамо везе у "редоследу" по којем смо их открили. Такође започињемо променљиву типа листе која се назива посећена коју ћемо користити да сачувамо везе док су посећене, то се ради како би се избегла бесконачна петља, замислите да се страница к односи на страницу и, а ово заузврат на страницу к, све док ћемо ове везе бесконачно уметати.
  • Језгро функције је вхиле петља, која ће се извршавати све док ред има везе, па проверавамо да ли је величина већа од 0. У сваком пролазу уклањамо везу из реда и шаљемо је функцији за преузимање , то ће нам вратити хтмл, затим тражимо везе и проверавамо да ли смо га већ посетили, ако не, додајемо га у ред и на листу.

БелешкаМожда се чини да је листа сувишна, али ми ћемо уклонити и избрисати везе из реда, тако да провера не би била тачна, можда линк који смо малопре посетили и више није у реду, али биће на листи.

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

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

У случају да желите код, ево поштански број:

ТраверсеЛинкс.зип 646 бајтова 493 преузимања

Да ли вам се допао и помогао овај водич?Можете наградити аутора притиском на ово дугме да бисте му дали позитиван поен
wave wave wave wave wave