Селен

Аутоматизација прегледача помоћу селена (Питхон)

Аутоматизација прегледача помоћу селена (Питхон)
СЕЛЕНИУМ је веб алатка са отвореним кодом која се користи за контролу веб прегледача кроз многе програмске језике. То је независни алат и доступан је за многе програмске језике (нпр.г. Јава, Питхон, Ц #, ПХП итд.). Има подршку за готово све прегледаче. У овом упутству ћемо погледати како користити Селениум са Питхоном јер Питхон пружа угодно окружење за употребу овог алата. АПИ Селениум за Питхон омогућава вашем програму да директно контролише ваш претраживач на сличан начин као и човек. Може вам отворити нове картице, попунити ваше податке, послати обрасце, кликнути на различите везе и друге сличне акције. Овде ћемо видети како аутоматизујемо свој веб прегледач користећи селен са Питхоном.

Инсталација селена

Пре употребе СЕЛЕНИУМ модул у питхон-у, морамо га инсталирати. Покрените следећу наредбу у терминалу да бисте је инсталирали.

пип инсталирај селен

ИЛИ

пип3 инсталирај селен

Ово ће се инсталирати СЕЛЕНИУМ модул и сада је спреман за употребу.

Веб Дриверс

Пре аутоматизације веб прегледача помоћу СЕЛЕНИУМ модула потребан је веб управљачки програм одабраног претраживача. Да бисмо аутоматизовали Цхроме прегледач, морамо имати Цхроме веб управљачки програм. Путања, где се налази датотека веб управљачког програма, предаје се као аргумент. Веб управљачки програм комуницира са веб прегледачем путем протокола. Идите на следећу везу да бисте преузели веб управљачке програме различитих прегледача.

хттпс: // ввв.селениумхк.орг / довнлоад /

Почетак

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

Ц: \ Корисници \ Усама Азад> питхон
Питхон 3.6.4 (в3.6.4: д48ецеб, 19. децембра 2017., 06:54:40) [МСЦ в.1900 64 бит (АМД64)] на вин32
Унесите „помоћ“, „ауторска права“, „кредити“ или „лиценца“ за више информација.
>>> са селена за увоз вебдривер-а
>>> од селена.вебдривер.заједнички.кључеви увозе кључеве
#патх то иоур цхроме дриверс
>>> дривер = вебдривер.Цхроме ('Ц: \ цхромедривер')

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

>>> возач.гет ("хттпс: // ввв.Фејсбук.цом ")

Како пронаћи елементе на веб страници

Следећи метод можемо пронаћи одређени елемент на веб страници.

Лоцирање елемената помоћу селена

Да бисмо лоцирали елементе на веб страници користимо 'финд_елемент'метода. Следе „финд_елемент'методе доступне у СЕЛЕНИУМ.

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

Клик на различите елементе веб странице

цлицк () метода у селену се може користити за кликање на различите везе и елементе дугмета које сте пронашли помоћу горе наведених метода. На пример, желите да кликнете на „Заборављени рачун?”На Фацебоок страници

>>> линк_буттон = управљачки програм.финд_елемент_би_линк_тект ('Заборављени рачун?')
>>> линк_буттон.клик ()

Пошаљите посебне кључеве

Селениум такође има модул који вам омогућава слање посебних кључева (нпр.г, Ентер, Есцапе, Страница надоле, страница горе итд.) док претражујете Веб. Морате да увезете овај модул помоћу следеће наредбе

>>> од селена.вебдривер.заједнички.кључеви увозе кључеве

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

из селена за увоз вебдривер-а
од селена.вебдривер.заједнички.кључеви увозе кључеве
време увоза
дривер = вебдривер.Цхроме ('Ц: \ цхромедривер')
# Отворите везу до чланка помоћу методе гет
возач.гет ("хттпс: // ен.википедиа.орг / вики / Унитед_Статес ")
# Почните од почетка странице
елем = возач.финд_елемент_би_таг_наме ('хтмл')
вхиле Труе:
 
време.спавање (5)
елем.сенд_кеис (Тастери.ДОЉЕ)

Како аутоматизовати прегледач

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

Аутоматски се пријавите на веб локације друштвених медија

Помоћу аутоматизације на мрежи лако можете да направите аутоматско пријављивање. Ако редовно проверавате веб локације на друштвеним мрежама (рецимо у 20 сати), добро је аутоматизовати овај процес. Следи код за аутоматизацију евидентирања у процесу коришћења две странице на друштвеним мрежама „фацебоок“ и „твиттер“ СЕЛЕНИУМ модул у Питхон-у.

# увоз вебдривера из селеновог модула
из селена за увоз вебдривер-а
 
# увоз посебних кључева из селена
од селена.вебдривер.заједнички.кључеви увозе кључеве
 
# стварање објекта „дривер“ за „Гоогле-Цхроме“
дривер = вебдривер.Цхроме („путања до Цхроме управљачког програма“)
 
# максимизирање прозора
возач.макимизе_виндов ()
 
# отварање фацебоока
возач.добити('хттп: // ввв.Фејсбук.цом')
 
# лоцирање елемента 'Емаил или Пхоне' помоћу атрибута 'ид'
усерНаме = управљачки програм.финд_елемент_би_ид ('емаил')
 
# Унос корисничког имена или адресе е-поште за фацебоок
корисничко име.сенд_кеис ('Унесите корисничко име / е-маил')
 
# лоцирање елемента 'Пассворд' помоћу атрибута 'ид'
пассВорд = покретачки програм.финд_елемент_би_ид ('пасс')
 
# унос лозинке за фацебоок
Лозинка.сенд_кеис ("Унеси лозинку")
 
# проналажење елемента „дугме за пријаву“ помоћу атрибута „ид“ и притиском на „Ентер“
возач.финд_елемент_би_ид ('у_0_б').сенд_кеис (Тастери.ЕНТЕР)
 
# отварање нове картице за Твиттер
возач.екецуте_сцрипт ("прозор.опен ('хттп: // ввв.твиттер.цом ',' таб2 '); ")
 
# прелазак на нову картицу
возач.свитцх_то_виндов ('таб2')
 
#лоцатинг 'лог ин' елемент и кликнути на њега
возач.финд_елемент_би_кпатх ('// * [@ ид = "доц"] / див / див [1] / див [1] / див [2] / див [1]').клик ()
 
# лоцирање елемента „Телефон, е-пошта или корисничко име“
усерНаме = управљачки програм.финд_елемент_би_кпатх ('// * [@ ид = "паге-цонтаинер"] / див / див [1] / форм /
фиелдсет / див [1] / инпут ')
 
# унос корисничког имена за твиттер
корисничко име.сенд_кеис ('Унесите корисничко име')
 
# лоцирање елемента „Лозинка“
пассВорд = покретачки програм.финд_елемент_би_кпатх ('// * [@ ид = "паге-цонтаинер"] / див / див [1] / форм /
фиелдсет / див [2] / инпут ')
# унос лозинке за твиттер
Лозинка.сенд_кеис ('Унеси лозинку')
# проналажење дугмета „пријава“ и кликтање на њега
возач.финд_елемент_би_кпатх ('// * [@ ид = "паге-цонтаинер"] / див / див [1] / форм / див [2] / буттон')
.клик ()

Изнад кода аутоматизује прегледач да се пријави на веб локације друштвених медија. Пре свега створили смо објекат нашег омиљеног прегледача. У овом случају коришћења узели смо „Цхроме“ као прегледач. Да бисмо креирали објекат, као аргумент смо прошли пут нашег „хромедривера“. Затим смо унели урл фацебоок-а и пријавили се на Фацебоок одабиром елемената и прослеђивањем корисничког имена и лозинке.

После овога отворили смо нову картицу и унели УРЛ твиттер-а. Након тога прешли смо на нову картицу, јер је контрола кода и даље била на првој картици, иако је друга картица била отворена. Затим смо се пријавили на твиттер одабиром елемената и прослеђивањем корисничког имена и лозинке.

Аутоматизација на мрежи

Још један добар пример аутоматизације прегледача може бити куповина на мрежи. На пример, желите да купите камеру на мрежи, али цене су превисоке. Свакодневно проверавате да ли је цена у вашем опсегу или не. Овај задатак се може аутоматизовати помоћу СЕЛЕНИУМ и можете избећи свакодневну проверу цене. Сљедећи код ће вас путем поште обавијестити да ли је цијена жељеног производа приступачна или не. Ако се ваш жељени производ продаје, програм ће вас о томе обавестити е-поштом.

# увоз вебдривера из селеновог модула
из селена за увоз вебдривер-а
 
# увоз модула смтплиб за слање поште
импорт смтплиб
 
# дефинисање функције поште за обавештавање путем е-поште
деф маил ():
 
# успостављање везе са гмаил сервером са именом домена и бројем порта. 
Ово се разликује код сваког добављача е-поште
веза = смтплиб.СМТП ('смтп.Гмаил.цом ', 587)
 
# поздрави сервер
веза.ехло ()
 
# покретање шифроване ТЛС везе
веза.старттлс ()
 
# пријавите се на гмаил сервер са главном адресом и лозинком
веза.пријава ('адреса пошиљаоца', 'лозинка')
 
# слање поште себи обавештавајући вас о цени камере
веза.сендмаил ('адреса пошиљаоца', 'адреса поште примаоца',
„Предмет: Можете купити камеру“)
 
# завршава везу
веза.одустати()
Функција # маил се овде завршава
 
# покретање гоогле цхроме пружањем путање цхромедривер као аргумента
дривер = вебдривер.Цхроме ('пут до хромедривера')
 
# минимизирање хромираног прозора
возач.минимизе_виндов ()
 
# отварање драж.пк сајт
возач.добити('хттпс: // ввв.дараз.пк /')
 
# лоцирање елемента траке за претрагу помоћу атрибута ид за тражење камере
сеарцхБар = управљачки програм.финд_елемент_би_ид ('к')
 
#вритинг цамера у траци за претрагу
сеарцхБар.сенд_кеис ('камера')
 
#лоцирање елемента дугмета за претрагу помоћу кпатх елемента
сеарцх = дривер.финд_елемент_би_кпатх ('// * [@ ид = "топАцтионХеадер"] / див / див [2] / див / див [2]
/ форм / див / див [2] / дугме ')
 
#клик на дугме за претрагу
Претрага.клик ()
 
# лоцирање елемента жељеног производа помоћу атрибута кпатх
производ = покретачки програм.финд_елемент_би_кпатх ('// * [@ ид = "роот"] / див / див [3] / див [1] / див / див [1]
/ див [2] / див [1] / див / див / див [2] / див [2] / а ')
 
# кликом на жељени производ
производа.клик ()
 
# лоцирање елемента цене помоћу атрибута кпатх
цена = возач.финд_елемент_би_кпатх ('// * [@ ид = "модуле_продуцт_прице_1"] / див / див / спан')
 
# издвајање текста из елемента цене. То даје цену производа попут 'Рс. 24.500 '
цена = цена.текст
 
# претварање цене у стринг
Цена = стр (цена)
 
# дефинисање празног низа. Ово ће се користити за издвајање цифара из цене као што је '24500'
образац 'Рс. 24.500 '
нум = []
 
# читање свих уноса низа цена један по један помоћу фор петље
за к у цени:
 
# провера да ли је унос цифран или не, јер желимо само цифре у цени
ако је х.исдигит ():
 
# додавање само цифара на нумеричку листу
нум.додати (к)
 
# спајање свих уноса нум листе. Сада је цена низ који садржи само цифре
прице = ".придружи се (нум)
 
# претварање низа цене у цео број
цена = инт (цена)
 
# провера да ли је цена приступачна или не
ако цена <= 25000:
 
# позивање функције е-поште да вас обавести о цени
Пошта()
 
# затварање прегледача
возач.одустати()

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

Након тога отворили смо Цхроме претраживач помоћу цхромедривера и тражили 'дараз.пк '. Тада лоцирамо жељени производ користећи елементе и њихове атрибуте. Како су елементи пронађени и лоцирани, горе је описано. Цена коју смо добили била је низ, па смо претворили овај низ у цео број, а затим проверили да ли је цена приступачна или не. Ако је цена приступачна, позовите функцију „пошта“.

Стварање Црон посла

Изнад две скрипте за аутоматизацију морају се покретати једном дневно у одређено време. Ово можемо да решимо користећи црон посао. Задаци који се додају у цронтаб могу се изводити у одређено време више пута. Да бисте додали горе наведене задатке у цронтаб, прво покрените следећу команду у Линук Терминалу.

[емаил заштићен]: ~ $ цронтаб -е

Изнад наредбе отвориће се датотека цронтаб за уређивање. На крају датотеке унесите следећу команду.

0 8 * * * питхон / патх / то / питхон / сцрипт

Видимо уносе пре команде с десна на лево.

Дакле, ова команда ће се покретати сваки дан у 8 сати.

Закључак

У овом чланку смо разговарали о томе како можете да користите СЕЛЕНИУМ заједно са Питхоном за аутоматизацију вашег прегледача користећи различите технике. Помоћу ње можете аутоматизовати свој свакодневни посао, попуњавати обрасце, преузимати своје ствари и пуно ствари. Овде смо разговарали о само два примера, али сваку претрагу човек може аутоматизовати ручно.

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