Hvordan bygge en enkel Auto-Login Bot med Python og Selen
Automasjon er utvilsomt en av de mest ettertraktede ferdighetene en programmerer kan ha. Automatisering brukes vanligvis til oppgaver som er repeterende, kjedelig, tidkrevende, hvis ikke ineffektiv uten bruk av et skript.
Med webautomatisering, du kan enkelt lag en bot for å utføre forskjellige oppgaver på nettet, for eksempel å overvåke konkurrerende hotellpriser over Internett og bestemme den beste prisen.
Personlig har jeg alltid funnet logger inn på e-posten min ganske repeterende og kjedelig, så for et enkelt eksempel for å få dere startet med webautomatisering, la oss implementere en automatisert Python script til logg inn med et enkelt klikk til en Gmail-konto.
Installasjon og oppsett
I denne opplæringen skal vi bruke følgende verktøy:
- Python programmeringsspråk
- Google Chrome-nettleser
- Selen-nettleserens automatiseringsverktøy
- Chrome Driver-nettdriver for Chrome
For vårt program bruker vi spesielt Python programmeringsspråket versjon 2.7.11. Det er viktig at vi installerer en ganske ny versjon av Python 2 fordi det kommer med PIP, som tillater oss å installere pakker og rammer fra tredjepart som vi må automatisere våre skript.
En gang installert, start datamaskinen på nytt for endringene skal tre i kraft. Bruk kommandoen pip installer selen
å legge til Selenet web automatisering verktøykasse til python Selen vil tillate oss å programmatisk bla, kopiere tekst, fylle skjemaer og klikke knapper.
Last ned endelig Selenium Chrome Driver kjørbar, som vil åpne Google Chrome som nødvendig for å utføre våre automatiserte oppgaver. Chrome-driveren er rett og slett en måte å åpne Google Chrome på (som allerede skal installeres) til Få tilgang til standard nettleser operasjoner programmatisk.
Bare last ned den nyeste ZIP-filen herfra, trekk ut chromedriver.exe
kjørbar, og plasser kjørbar i hvilken som helst katalog. Pass på å merke deg hvor kjørbar er, fordi Vi trenger det når vi kommer i gang.
Starte programmet
Som nevnt skal vi bruke Selenet web automasjon rammeverk for å logg inn programmatisk. Den første rekkefølge er å importere alle moduler Vi trenger fra Selen Python biblioteket som vi installerte ealier med PIP.
La oss åpne IDLE eller en annen kodeditor, lag en ny Python-fil med .py
forlengelse og importere følgende moduler:
fra selenimport webdriver fra selenium.webdriver.common.by import By fra selenium.webdriver.support.ui importerer WebDriverWait fra selenium.webdriver.support importerte forventede betingelser som EC
Neste, vil vi lag to strenger som representerer vår brukernavn og passord for e-postkontoen. Vær oppmerksom på kapitalisering, spesielt i passordstrengen.
brukernavnStr = 'putYourUsernameHere' passordStr = 'putYourPasswordHere'
Nå som vi har alt satt opp for å starte påloggingsprosessen, må vi faktisk instruere et nettleservindu til åpne Google Chrome, og naviger til Gmail påloggingssiden.
Hvis du ikke allerede har gjort det, må du sørge for at Python-skriptet er lagret på samme sted som chromedriver.exe
kjørbar vi hentet tidligere.
browser = webdriver.Chrome () browser.get (('https://accounts.google.com/ServiceLogin? "service = mail & continue = https: //mail.google" .com / mail / # identifiserer "))
Finne vårt element
Vi har fått nettleseren til å åpne Gmail, men nå må vi finn inntastingsfeltene på nettsiden, som vi kan skriv inn brukernavnet og passordet vårt.
Vi kan gjøre dette enkelt ved hjelp av de innebygde verktøylinjene for Chrome. Vi trenger bare å høyreklikke på inntastingsfeltene, og velg “Undersøke” Meny.
Nå er det bare et spørsmål om bruker HTML id
egenskaper å finne elementene programmatisk.
I koden nedenfor er vi ganske enkelt søker etter brukernavnetes innfelt av id
, og fyller den med ønsket tekst. Så er vi søker etter neste knapp som overgår med en rask animasjon før du ber oss om passordet.
De send_keys ()
og Klikk ()
kommandoer gjør akkurat som navnene deres antyder - send_keys ()
simulerer tastetrykk i ønsket element, og Klikk ()
simulerer et museklikk.
# fyll inn brukernavn og trykk på neste knapp brukernavn = browser.find_element_by_id ('Email') brukernavn.send_keys (brukernavnStr) nextButton = browser.find_element_by_id ('next') nextButton.click ()
Vi kan gjør det samme for inntastingsfeltet for passord, samt for påloggingsknappen. Disse to elementene vises imidlertid på siden bare etter en animert overgang.
Når det er sagt, trenger vi programmet til vent noen sekunder før du fortsetter å søke etter elementer. For det meste er denne fasen av koden ikke forskjellig fra den forrige. Vi må bare instruere nettleseren til vent i maksimalt 10 sekunder før du finner passordoppføringen.
# vente på overgang, fortsett å fylle ut passord = WebDriverWait (nettleser, 10) .until (EC.presence_of_element_located ((By.ID, 'Passwd'))) password.send_keys (passwordStr) signInButton = browser.find_element_by_id ('signIn' ) signInButton.click ()
Endelige ord
Du er nettopp ferdig skaper en bot som besøker en nettside, går inn i brukernavnet og passordet ditt, og registrerer deg med hell, automatiserer hele prosessen til et enkelt klikk. Jeg vet at dette var en enkel demonstrasjon, men mulighetene er uendelige.
På samme notat, vær forsiktig av hvordan du bruker denne ferdigheten. Noen bruker bots og automatiserte skript for å delta i konkurranser tusenvis av ganger, helt uten å måtte se på vilkårene. Andre bruker dem til mer ondsinnede intensjoner.
Bare vær sikker på å bruke automatisering målrettet og forsiktig, fordi det virkelig er en mye trengte ferdigheter i programmeringssamfunnet!
Redaktørens notat: Dette er et innlegg skrevet for Hongkiat.com av Malik Brahimi. Malik er en utvikler i Greater Boston-området, og elsker mat, fotball og programmering (favorittsprog Python).
- Last ned kilde