Питхон

Пријављивање на веб странице помоћу Питхона

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

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

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

Инсталација

То би се урадило са библиотекама Рекуестс и БеаутифулСоуп Питхон. Поред тих Питхон библиотека, потребан вам је и добар прегледач као што су Гоогле Цхроме или Мозилла Фирефок, јер би они били важни за почетну анализу пре писања кода.

Библиотеке Рекуестс и БеаутифулСоуп могу се инсталирати помоћу наредбе пип са терминала како је приказано доле:

пип инсталациони захтеви
пип инсталирајте БеаутифулСоуп4

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

Затим увезите обе библиотеке:

захтеви за увоз
из бс4 увоза БеаутифулСоуп

Увоз је успешан ако нема грешака.

Процес

Да бисте се пријавили на веб локацију помоћу скрипти, потребно је познавање ХТМЛ-а и идеја о томе како Интернет функционише. Погледајмо укратко како веб функционише.

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

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

Разумевање та два појма било би важно приликом писања наше скрипте.

Преглед веб странице

Да бисмо увежбали концепте овог чланка, користили бисмо веб страницу Куотес То Сцрапе.

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

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

Прво, важно је погледати извор странице, јер би то дало преглед структуре веб странице. То се може учинити десним кликом на веб страницу и кликом на „Прикажи извор странице“. Затим прегледате образац за пријаву. То радите тако што ћете десним кликом кликнути на једно од поља за пријаву и кликнути прегледати елемент. Приликом прегледа елемента, требало би да видите улазни ознаке, а затим родитељ облик означи негде изнад ње. То показује да су пријаве у основи облици ПОШТАед на серверу на веб локацији.

Сада, забележите име атрибут улазних ознака за корисничко име и лозинку, они би били потребни приликом писања кода. За ову веб страницу име атрибут за корисничко име и лозинку су корисничко име и Лозинка редом.

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

Према томе, ако ти токени нису додати захтеву ПОСТ, пријава неће успети. Па како знамо за такве параметре?

Морали бисмо да користимо картицу Мрежа. Да бисте добили ову картицу у Гоогле Цхроме-у или Мозилла Фирефок-у, отворите Девелопер Тоолс и кликните на картицу Нетворк.

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

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

 

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

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

Код

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

из захтева увоз сесије
из бс4 увози БеаутифулСоуп као бс
 
са Сессион () као с:
сите = с.гет ("хттп: // цитати.тосцрапе.цом / логин ")
принт (сите.садржај)

Ово би исписало садржај странице за пријаву пре него што се пријавимо и ако претражите кључну реч „Пријава“. Кључна реч би се нашла у садржају странице, што показује да се тек морамо пријавити.

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

из захтева увоз сесије
из бс4 увози БеаутифулСоуп као бс
 
са Сессион () као с:
сите = с.гет ("хттп: // цитати.тосцрапе.цом / логин ")
бс_цонтент = бс (сите.садржај, "хтмл.парсер ")
токен = бс_цонтент.пронађи ("инпут", "наме": "цсрф_токен") ["валуе"]
логин_дата = "усернаме": "админ", "пассворд": "12345", "цсрф_токен": токен
с.пост ("хттп: // цитати.тосцрапе.цом / логин ", логин_дата)
хоме_паге = с.гет ("хттп: // цитати.тосцрапе.цом ")
принт (хоме_паге.садржај)

То би исписало садржај странице након пријављивања и ако тражите кључну реч „Одјава“. Кључна реч би се нашла у садржају странице што показује да смо се могли успешно пријавити.

Погледајмо сваки ред кода.

из захтева увоз сесије
из бс4 увози БеаутифулСоуп као бс

Горњи редови кода користе се за увоз Сессион објекта из библиотеке захтева и БеаутифулСоуп објекта из бс4 библиотеке користећи алиас од бс.

са Сессион () као с:

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

бс_цонтент = бс (сите.садржај, "хтмл.парсер ")
токен = бс_цонтент.пронађи ("инпут", "наме": "цсрф_токен") ["валуе"]

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

логин_дата = "усернаме": "админ", "пассворд": "12345", "цсрф_токен": токен
с.пост ("хттп: // цитати.тосцрапе.цом / логин ", логин_дата)

Код овде ствара речник параметара који ће се користити за пријављивање. Кључеви речника су име атрибути улазних ознака и вредности су вредност атрибути улазних ознака.

Тхе пошта метода се користи за слање захтева за објаву са параметрима и пријављивање.

хоме_паге = с.гет ("хттп: // цитати.тосцрапе.цом ")
принт (хоме_паге.садржај)

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

Закључак

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

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

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