Szelén

Böngésző automatizálása szelén (Python) használatával

Böngésző automatizálása szelén (Python) használatával
SZELÉN egy webalapú és nyílt forráskódú eszköz, amelyet a webböngésző vezérléséhez használnak számos programozási nyelven. Ez egy harmadik féltől származó eszköz, és számos programozási nyelv számára elérhető (pl.g. Java, Python, C #, PHP stb.). Szinte az összes böngésző támogatása. Ebben az oktatóanyagban megvizsgáljuk, hogyan használhatjuk a Seleniumot a Pythonnal, mert a Python kényelmes környezetet biztosít az eszköz használatához. A Selenium API for Python lehetővé teszi, hogy a program közvetlenül vezérelje a böngészőt hasonló módon, mint egy ember. Új lapokat nyithat meg Önnek, kitöltheti adatait, beküldheti űrlapokat, kattinthat a különböző linkekre és más hasonló műveletekre. Itt láthatjuk, hogyan automatizáljuk webböngészőnket a szelén és a Python segítségével.

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ént

VAGY

pip3 telepítse a szelént

Ez 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> python
Python 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.

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.

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 kulcsok

Pé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ól
szelé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ól
a 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ól
a 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 -e

A 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 / script

A parancs előtti bejegyzéseket jobbról balra látjuk.

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.

Csata a Wesnothért 1.13.6 Megjelent a fejlesztés
Csata a Wesnothért 1.13.A múlt hónapban megjelent 6 a hatodik fejlesztési kiadás az 1-ben.13.x sorozat, és számos fejlesztést hajt végre, nevezetesen ...
A League of Legends telepítése az Ubuntu 14-re.04
Ha rajongsz a League of Legendsért, akkor ez egy lehetőség arra, hogy teszteld a League of Legends játékot. Ne feledje, hogy a LOL a PlayOnLinux rends...
Telepítse a legújabb OpenRA stratégiai játékot az Ubuntu Linux rendszerre
Az OpenRA egy ingyenes / ingyenes valós idejű stratégiai játékmotor, amely újjáépíti a korai Westwood játékokat, mint például a klasszikus Command & C...