Инсталација селена
Пре употребе СЕЛЕНИУМ модул у питхон-у, морамо га инсталирати. Покрените следећу наредбу у терминалу да бисте је инсталирали.
пип инсталирај селенИЛИ
пип3 инсталирај селенОво ће се инсталирати СЕЛЕНИУМ модул и сада је спреман за употребу.
Веб Дриверс
Пре аутоматизације веб прегледача помоћу СЕЛЕНИУМ модула потребан је веб управљачки програм одабраног претраживача. Да бисмо аутоматизовали Цхроме прегледач, морамо имати Цхроме веб управљачки програм. Путања, где се налази датотека веб управљачког програма, предаје се као аргумент. Веб управљачки програм комуницира са веб прегледачем путем протокола. Идите на следећу везу да бисте преузели веб управљачке програме различитих прегледача.
хттпс: // ввв.селениумхк.орг / довнлоад /
Почетак
Након инсталирања потребних модула, можете отворити питхон ЦЛИ и започети игру са прегледачем. Па хајде да прво увозимо вебдривер и друге модуле, ови модули и класе ће дозволити вашем програму Питхон да шаље притиске тастера и друге информације у ваш прегледач.
Ц: \ Корисници \ Усама Азад> питхонПитхон 3.6.4 (в3.6.4: д48ецеб, 19. децембра 2017., 06:54:40) [МСЦ в.1900 64 бит (АМД64)] на вин32
Унесите „помоћ“, „ауторска права“, „кредити“ или „лиценца“ за више информација.
>>> са селена за увоз вебдривер-а
>>> од селена.вебдривер.заједнички.кључеви увозе кључеве
#патх то иоур цхроме дриверс
>>> дривер = вебдривер.Цхроме ('Ц: \ цхромедривер')
Ово ће вам отворити нови прозор прегледача Цхроме. Сада можете добити селен за одлазак на било коју веб локацију помоћу .гет () метода. Овај метод отвара веб локацију и сачекаће да се учита, а затим можете унети следећу команду.
>>> возач.гет ("хттпс: // ввв.Фејсбук.цом ")
Како пронаћи елементе на веб страници
Следећи метод можемо пронаћи одређени елемент на веб страници.
- Пре свега притисните Ф12 Изворна страница се отвара у десној страни прозора, као што је приказано испод
- Сада притисните 'Цтрл + Схифт + Ц'или кликните на симбол присутан у горњем левом углу изворне странице.
- Померите стрелицу на 'Е-маил или телефон'поље и кликните. Овај елемент ће одабраним, а изворни код овог елемента је истакнут на изворној страници као што је приказано у наставку. То се види да имамо следеће атрибуте за изабрани елемент
- наме = “емаил”
- цласс = “инпуттект логин_форм_инпут_бок”
- ид = “е-пошта”
Можемо лоцирати 'Е-маил или телефон'користећи било који од горе наведених атрибута.
- Ако немамо ниједан од горе поменутих атрибута, онда такође можемо одабрати елемент користећи 'КСПатх'. Да бисте копирали КСПатх, кликните десним тастером миша на истакнути изворни код на изворној страници. Онда идите на 'Копирај> Копирај КСПатх'.
Лоцирање елемената помоћу селена
Да бисмо лоцирали елементе на веб страници користимо 'финд_елемент'метода. Следе „финд_елемент'методе доступне у СЕЛЕНИУМ.
- финд_елемент_би_цласс_наме (име)
- финд_елемент_би_таг_наме (наме)
- финд_елемент_би_линк_тект (текст)
- финд_елемент_би_цсс_селецтор (селектор)
- финд_елемент_би_наме (име)
- финд_елемент_би_ид (ид)
- финд_елемент_би_кпатх (КСПатх)
Коришћењем горе наведених метода можемо пронаћи елемент на веб страници и користити га у нашем коду за аутоматизацију.
Клик на различите елементе веб странице
цлицк () метода у селену се може користити за кликање на различите везе и елементе дугмета које сте пронашли помоћу горе наведених метода. На пример, желите да кликнете на „Заборављени рачун?”На Фацебоок страници
>>> линк_буттон = управљачки програм.финд_елемент_би_линк_тект ('Заборављени рачун?')>>> линк_буттон.клик ()
Пошаљите посебне кључеве
Селениум такође има модул који вам омогућава слање посебних кључева (нпр.г, Ентер, Есцапе, Страница надоле, страница горе итд.) док претражујете Веб. Морате да увезете овај модул помоћу следеће наредбе
>>> од селена.вебдривер.заједнички.кључеви увозе кључевеНа пример, читате чланак на Википедији о историји Сједињених Држава, али сте превише лењи да бисте притиснули стрелицу ДОЛЕ после неког времена. Можете аутоматизовати слањем овог кључа у прегледач помоћу програма Селениум
из селена за увоз вебдривер-аод селена.вебдривер.заједнички.кључеви увозе кључеве
време увоза
дривер = вебдривер.Цхроме ('Ц: \ цхромедривер')
# Отворите везу до чланка помоћу методе гет
возач.гет ("хттпс: // ен.википедиа.орг / вики / Унитед_Статес ")
# Почните од почетка странице
елем = возач.финд_елемент_би_таг_наме ('хтмл')
вхиле Труе:
време.спавање (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', што значи да ће се ова скрипта изводити у 8. сату дана
- Пети унос који је '0' значи да ће се ова команда покренути у 0. минуту.
Дакле, ова команда ће се покретати сваки дан у 8 сати.
Закључак
У овом чланку смо разговарали о томе како можете да користите СЕЛЕНИУМ заједно са Питхоном за аутоматизацију вашег прегледача користећи различите технике. Помоћу ње можете аутоматизовати свој свакодневни посао, попуњавати обрасце, преузимати своје ствари и пуно ствари. Овде смо разговарали о само два примера, али сваку претрагу човек може аутоматизовати ручно.