Szelén telepítése
Használat előtt SZELÉN modult a pythonban, telepítenünk kell. A telepítéshez futtassa a következő parancsot a terminálban.
pip telepítse a szeléntVAGY
pip3 telepítse a szeléntEz települ SZELÉN modul és most már használatra kész.
Web-illesztőprogramok
A webböngésző SELENIUM modul segítségével történő automatizálása előtt a kiválasztott böngésző web-illesztőprogramjára van szükség. A Chrome böngésző automatizálásához rendelkeznünk kell a Chrome internetes illesztőprogrammal. A webes illesztőprogram fájljának elérési útja argumentumként kerül átadásra. A webes illesztőprogram protokollon keresztül lép kapcsolatba a webböngészővel. Az alábbi linkre kattintva letöltheti a különböző böngészők web-illesztőprogramjait.
https: // www.szelénhq.org / letöltés /
Elkezdeni
A szükséges modulok telepítése után megnyithatja a python CLI-t, és elkezdhet játszani a böngészővel. Tehát először importáljuk a webdrivert és más modulokat, ezek a modulok és osztályok lehetővé teszik a Python program számára, hogy billentyűleütéseket és egyéb információkat küldjön a böngészőbe.
C: \ Users \ Usama Azad> pythonPython 3.6.4 (v3.6.4: d48eceb, 2017. december 19., 06:54:40) [MSC v.1900 64 bites (AMD64)] Win32 rendszeren
Írja be a "help", a "copyright", a "credit" vagy a "license" szót további információkért.
>>> a szelén import webdriver-től
>>> szelénből.web meghajtó.gyakori.kulcsok importálása kulcsok
#path a chrome illesztőprogramjaihoz
>>> illesztőprogram = web meghajtó.Króm ('C: \ chromedriver')
Ezzel új Chrome böngészőablak nyílik meg az Ön számára. Most már kaphat szelént, amellyel bármely webhelyre eljuthat .get () metódus. Ez a módszer megnyitja a webhelyet, és megvárja, amíg betöltődik, majd megadhatja a következő parancsot.
>>> vezető.get ("https: // www.Facebook.com ")
Hogyan találhatunk elemeket egy weboldalon
A következő módszerrel megtalálhatunk egy adott elemet egy weboldalon.
- Először nyomja meg a gombot F12 A forrásoldal megnyílik az ablak jobb oldalán, az alábbiak szerint
- Most nyomja meg a 'Ctrl + Shift + Cvagy kattintson a forrásoldal bal felső sarkában található szimbólumra.
- A nyíl mozgatása a következőn:Mailben vagy telefonon'mezőbe és kattintson. Ezt az elemet kiválasztott módon és az elem forráskódja kiemeli a forrásoldalon, az alábbiak szerint. Látható, hogy a következő tulajdonságokkal rendelkezünk a kiválasztott elemhez
- név = „e-mail”
- class = “inputtext login_form_input_box”
- id = “email”
Megtalálhatjuk 'Mailben vagy telefonon'elemet a fenti attribútumok bármelyikének használatával.
- Ha a fenti tulajdonságok egyikével sem rendelkezünk, akkor a 'XPath". Az XPath másolásához kattintson a jobb gombbal a kiemelt forráskódra a forrás oldalon. Majd menj aMásolás> Másolás XPath".
Elemek megkeresése szelén segítségével
Az általunk használt weboldalak elemeinek megkereséséhezfind_elementmódszer. Az alábbiakfind_elementban elérhető módszerek SZELÉN.
- find_element_by_ class_name (név)
- find_element_by_tag_name (név)
- find_element_by_link_text (szöveg)
- find_element_by_css_selector (választó)
- find_element_by_name (név)
- find_element_by_id (id)
- find_element_by_xpath (XPath)
A fenti módszerek segítségével megkereshetünk egy elemet egy weboldalon, és felhasználhatjuk azt az automatizálási kódunkban.
Kattintson a különböző weboldalelemekre
A szelénben található click () metódus segítségével kattintani lehet különböző linkekre és gombelemekre, amelyeket a fenti módszerekkel talált. Kattintson például az „Elfelejtett fiók?”A Facebook oldalon
>>> link_gomb = illesztőprogram.find_element_by_link_text ('Elfelejtett fiók?')>>> link_gomb.kattintson ()
Küldjön speciális kulcsokat
A Selenium rendelkezik egy modullal is, amely lehetővé teszi speciális kulcsok (pl.g, Enter, Escape, Page down, page up stb.) böngészés közben. Ezt a modult a következő paranccsal kell importálnia
>>> szelénből.web meghajtó.gyakori.kulcsok importálása kulcsokPéldául olvasol egy cikket a Wikipédián az Egyesült Államok történetéről, de lusta vagy egy idő után megnyomni a LE nyíl billentyűt. Automatizálhatja ezt a kulcsot a Selenium használatával a böngészőbe küldve
a szelénimport-meghajtórólszelénből.web meghajtó.gyakori.kulcsok importálása kulcsok
import idő
driver = webdriver.Chrome ('C: \ chromedriver')
# Nyissa meg a cikk linkjét a get módszer segítségével
sofőr.get ("https: // hu.wikipédia.org / wiki / United_States ")
# Kezdje az oldal elejétől
elem = sofőr.find_element_by_tag_name ('html')
míg True:
idő.alvás (5)
elem.send_keys (Kulcsok.LE)
A böngésző automatizálása
Ebben a részben megtudhatjuk, hogyan automatizálhatjuk webböngészőnket néhány felhasználási eset segítségével.
Automatikusan jelentkezzen be a közösségi média webhelyeire
A webautomatizálás segítségével egyszerűen automatikusan elvégezheti bejelentkezési folyamatát. Ha rendszeresen ellenőrzi a közösségi média webhelyeit meghatározott időpontban (például este 8 órakor), akkor jó automatizálni ezt a folyamatot. Az alábbiakban bemutatjuk a két közösségi média oldal, a facebook és a twitter használatának naplózási folyamatának automatizálására szolgáló kódot SZELÉN modul a Pythonban.
# webdriver importálása a szelén modulbóla szelénimport-meghajtóról
# speciális kulcsok importálása a szelénből
szelénből.web meghajtó.gyakori.kulcsok importálása kulcsok
# "driver" objektum létrehozása a "Google-Chrome" számára
driver = webdriver.Chrome ("útvonal a Chrome illesztőprogramhoz")
# az ablak maximalizálása
sofőr.maximize_window ()
# nyitó facebook
sofőr.kap('http: // www.Facebook.com')
# keresse meg az "E-mail vagy telefon" elemet az "id" attribútummal
userName = illesztőprogram.find_element_by_id ('e-mail')
# Felhasználónév vagy e-mail megadása a facebook számára
felhasználónév.send_keys ('Felhasználónév / e-mail megadása')
# a 'Jelszó' elem megkeresése az 'id' attribútum használatával
passWord = meghajtó.find_element_by_id ('átadás')
# a facebook jelszavának megadása
Jelszó.send_keys ("Jelszó megadása")
# a 'login button' elem megkeresése az 'id' attribútum használatával és az 'Enter' megnyomása
sofőr.find_element_by_id ('u_0_b').send_keys (Kulcsok.BELÉP)
# új lap megnyitása a twitter számára
sofőr.execute_script ("ablak.nyitott ('http: // www.twitter.com ',' tab2 '); ")
# váltás új fülre
sofőr.switch_to_window ('tab2')
#locating 'log in' elemet és kattintson rá
sofőr.find_element_by_xpath ('// * [@ id = "doc"] / div / div [1] / div [1] / div [2] / div [1]').kattintson ()
# keresse meg a "Telefon, e-mail vagy felhasználónév" elemet
userName = illesztőprogram.find_element_by_xpath ('// * [@ id = "page-container"] / div / div [1] / form /
fieldset / div [1] / input ')
# felhasználónevének megadása a twitterhez
felhasználónév.send_keys ('Felhasználónév megadása')
# a 'Jelszó' elem megkeresése
passWord = meghajtó.find_element_by_xpath ('// * [@ id = "page-container"] / div / div [1] / form /
fieldset / div [2] / input ')
# jelszó megadása a twitterhez
Jelszó.send_keys ('Jelszó megadása')
# keresse meg a 'bejelentkezés' gombot és kattintson rá
sofőr.find_element_by_xpath ('// * [@ id = "page-container"] / div / div [1] / form / div [2] / gomb')
.kattintson ()
A fenti kód automatizálja a böngészőt, hogy bejelentkezzen a közösségi média webhelyeire. Először létrehoztunk egy objektumot a kedvenc böngészőnkből. Ebben a használati esetben a „Chrome” -t böngészőként vettük figyelembe. Az objektum létrehozásához argumentumként haladtunk a „chromedriver” útján. Ezután megadtuk a facebook URL-jét, és az elemek kiválasztásával, valamint a felhasználónév és jelszó átadásával beléptünk a Facebook-ba.
Ezek után új lapot nyitottunk, és megadtuk a twitter URL-jét. Ezek után átálltunk az új fülre, mivel a kód vezérlése még mindig az első fülön volt, bár a második fül nyitva volt. Ezután bejelentkeztünk a twitterbe az elemek kiválasztásával, valamint a felhasználónév és jelszó átadásával.
Online vásárlás automatizálás
A böngésző automatizálásának másik jó példája lehet az online vásárlás. Például online fényképezőgépet szeretne vásárolni, de az árak túl magasak. Minden nap ellenőrzi, hogy az ár az Ön tartományában van-e vagy sem. Ez a feladat a SZELÉN és elkerülheti az ár mindennapos ellenőrzését. A következő kód levélben tájékoztatja Önt arról, hogy a kívánt termék ára megfizethető-e vagy sem. Ha a kívánt termék eladó, a program e-mailben értesíti Önt.
# webdriver importálása a szelén modulbóla szelénimport-meghajtóról
# smtplib modul importálása levelek küldéséhez
import smtplib
# e-mail funkcióval kapcsolatos e-mailes tájékoztatás
def mail ():
# kapcsolat létrehozása a gmail szerverhez domain névvel és portszámmal.
Ez minden e-mail szolgáltatónként eltér
kapcsolat = smtplib.SMTP ('smtp.gmail.com ”, 587)
# köszönj a szervernek
kapcsolat.ehlo ()
# titkosított TLS-kapcsolat indítása
kapcsolat.starttls ()
# jelentkezzen be a gmail szerverre a fő címével és jelszavával
kapcsolat.bejelentkezés ('feladó e-mail címe', 'jelszó')
# levelet küld magának, tájékoztatva a kamera áráról
kapcsolat.sendmail ('feladó e-mail címe', 'vevő e-mail címe',
„Tárgy: Megvásárolhatja a fényképezőgépet”)
# kapcsolat befejezése
kapcsolat.Kilépés()
# levelezési funkció itt ér véget
# a google chrome elindítása a chromedriver elérési útjának argumentumként történő megadásával
driver = webdriver.Chrome ('chromedriver elérési útja')
# minimalizálja a króm ablakot
sofőr.minimalize_window ()
# nyitó draz.pk site
sofőr.kap('https: // www.daraz.pk /')
# a keresősáv elemének megkeresése az id attribútum használatával a kamera kereséséhez
searchBar = illesztőprogram.find_element_by_id ('q')
# írókamera a keresősávban
kereső sáv.send_keys ('kamera')
# keresési gomb elemének elhelyezése az xpath elem használatával
keresés = illesztőprogram.find_element_by_xpath ('// * [@ id = "topActionHeader"] / div / div [2] / div / div [2]
/ form / div / div [2] / gomb ')
#kattintás a keresés gombra
keresés.kattintson ()
# a kívánt termék elemének megkeresése az xpath attribútummal
termék = meghajtó.find_element_by_xpath ('// * [@ id = "root"] / div / div [3] / div [1] / div / div [1]
/ div [2] / div [1] / div / div / div [2] / div [2] / a ')
# kattintva a kívánt termékre
termék.kattintson ()
# az ár elemének meghatározása az xpath attribútum használatával
ár = driver.find_element_by_xpath ('// * [@ id = "module_product_price_1"] / div / div / span')
# szöveg kivonása az árelemből. Ez megadja a termék árát, mint az 'Rs. 24,500 ”
ár = ár.szöveg
# ár átalakítása karakterláncra
Ár = str (ár)
# üres tömb definiálása. Ezt fogják használni a számjegyek kinyerésében, például „24500” áron
formája „Rs. 24,500 ”
szám = []
# egyenként olvassa el az árlánc összes bejegyzését a ciklus használatával
x-re az árban:
# annak ellenőrzése, hogy a bejegyzés számjegyes-e vagy sem, mivel csak számjegyeket akarunk az árban
ha x.isdigit ():
# csak számjegyek hozzáadása a számlistához
szám.függelék (x)
# a számlista összes bejegyzéséhez csatlakozás. Most az ár egy karakterlánc, amely csak számjegyeket tartalmaz
ár = ".csatlakozás (szám)
# az ár sztringjének konvertálása egész számra
ár = int (ár)
# annak ellenőrzése, hogy az ár megfizethető-e vagy sem
ha ár <= 25000:
# hívó levelezési funkció, hogy tájékoztassa Önt az árról
levél()
# bezáró böngésző
sofőr.Kilépés()
A kód felett megnyílik a daraz.pk webhely, és keresi a kamerát, és e-mailben tájékoztatja Önt, ha az ár megfizethető. Először is importáltunk SZELÉN és SMTPLIB modulok. Ezután meghatároztuk a 'mail' funkciót, amely e-mailt küld, amelyben tájékoztatja Önt arról, hogy az ár megfizethető, amikor hívják.
Ezt követően megnyitottuk a chrome böngészőt a chromedriver használatával, és kerestük a 'daraz szót.pk '. Ezután elemekkel és azok attribútumaival keressük meg a kívánt terméket. Az elemek megtalálását és elhelyezkedését a fentiekben ismertettük. A kapott ár karakterlánc volt, ezért ezt a karakterláncot egész számra konvertáltuk, majd ellenőriztük, hogy az ár megfizethető-e vagy sem. Ha az ár megfizethető, akkor hívja meg a "mail" funkciót.
Cron-feladat létrehozása
Két fenti automatizálási parancsfájlnak naponta egyszer, meghatározott időben kell futnia. Ezt a cron job segítségével kezelhetjük. A crontab-hoz hozzáadott feladatok egy adott időpontban többször is futtathatók. A fenti feladatok hozzáadásához a crontab-ba először futtassa a következő parancsot a Linux Terminalban.
[e-mail védett]: ~ $ crontab -eA fenti parancs megnyitja a crontab fájlt a szerkesztéshez. A fájl végén írja be a következő parancsot.
0 8 * * * python / path / to / python / scriptA parancs előtti bejegyzéseket jobbról balra látjuk.
- Az első csillag jobbról azt jelenti, hogy ez a parancs a hét minden napján fut.
- A második csillag azt jelenti, hogy ez a parancs havonta fut
- A harmadik csillag azt mutatja, hogy ez a parancs a hónap minden napján fut
- A negyedik bejegyzés „8”, ami azt jelenti, hogy ez a szkript a nap 8. órájában fog futni
- Az ötödik bejegyzés, amely „0”, azt jelenti, hogy ez a parancs a 0. percben fog futni.
Tehát ez a parancs minden nap 8 órakor fog futni.
Következtetés
Ebben a cikkben megvitattuk, hogyan használhatja SZELÉN a Pythonnal együtt a böngésző automatizálásához különböző technikák segítségével. Automatizálhatja napi rutinmunkáját, kitölthet űrlapokat, letöltheti a dolgait és sok más dolgot. Csak két példát tárgyaltunk itt, de a böngészővel manuálisan automatizálhat minden olyan dolgot, amelyet egy ember végezhet.