Sådan opbygges en simpel auto-login bot med python og selen
Automatisering er utvivlsomt en af de mest eftertragtede færdigheder, en programmør kan have. Automatisering bruges typisk til opgaver, der er gentagne, kedelige, tidskrævende, for ellers ineffektiv uden brug af et script.
Med webautomatisering, du kan nemt lav en bot til at udføre forskellige opgaver på nettet, for eksempel at overvåge konkurrerende hotelpriser over internettet og bestemme den bedste pris.
Personligt har jeg altid fundet logger ind på min email temmelig gentagne og kedelige, så af hensyn til et simpelt eksempel for at få jer startede med webautomatisering, lad os gennemføre en automatiseret Python script til log ind med et enkelt klik til en Gmail-konto.
Installation og opsætning
I denne vejledning skal vi bruge følgende værktøjer:
- Python programmeringssprog
- Google Chrome-browser
- Selen-browserautomatiseringsværktøj
- Chrome Driver-webdriver til Chrome
For vores program bruger vi specifikt Python programmeringssprog version 2.7.11. Det er afgørende, at vi installerer en temmelig ny version af Python 2 fordi det kommer med PIP, som gør det muligt for os at installere tredjepartspakker og rammer, som vi skal bruge til at automatisere vores scripts.
En gang installeret, genstart computeren for ændringerne træder i kraft. Brug kommandoen pip installer selen
at tilføje Selen web automation værktøjssæt til python Selen vil give os mulighed for at programmere rulle, kopiere tekst, udfylde formularer og klikke knapper.
Download endelig Selen Chrome Driver eksekverbar, hvilket vil Åbn Google Chrome som nødvendigt for at udføre vores automatiske opgaver. Chrome-driveren er simpelthen en måde at åbne Google Chrome på (som allerede skal installeres) til Få adgang til standard browser operationer programmatisk.
Du skal blot downloade den nyeste ZIP-fil herfra, ekstrakt den chromedriver.exe
eksekverbar, og placer den eksekverbare i enhver mappe. Vær sikker på at gøre opmærksom på, hvor din eksekverbare er, fordi Vi skal bruge det, når vi kommer i gang.
Start af programmet
Som nævnt bruger vi Selen web automation ramme for at log ind programmatisk. Den første rækkefølge er at importere hvert modul Vi vil have brug for fra Selen Python biblioteket, som vi installerede ealier med PIP.
Lad os åbne IDLE eller en anden kode editor, opret en ny python-fil med .py
udvidelse og importere følgende moduler:
fra selen import webdriver fra selenium.webdriver.common.by import By fra selenium.webdriver.support.ui importere WebDriverWait fra selenium.webdriver.support importere expected_conditions som EC
Næste skal vi lav to strenge der repræsenterer vores brugernavn og adgangskode for e-mail-kontoen. Vær opmærksom på kapitalisering, især i din adgangskode streng.
brugernavnStr = 'putYourUsernameHere' passwordStr = 'putYourPasswordHere'
Nu da vi har alt oprettet for at starte loginprocessen, skal vi faktisk instruere et browservindue til Åbn Google Chrome, og navigere til Gmails loginside.
Hvis du ikke allerede har gjort det, skal du sørge for at dit Python script er gemt på samme sted som chromedriver.exe
eksekverbar vi hentede tidligere.
browser = webdriver.Chrome () browser.get (('https://accounts.google.com/ServiceLogin? "service = mail & continue = https: //mail.google" .com / mail / # identifikator "))
Finde vores element
Vi har fået browseren til at åbne Gmail, men nu skal vi find inputfelterne på websiden, som vi kan indtast vores brugernavn og adgangskode.
Det kan vi nemt gøre ved hjælp af de indbyggede Chrome Developer Tools. Vi skal kun højreklikke på inputfelterne, og vælg “Inspicere” menu.
Nu er det bare et spørgsmål om ved hjælp af HTML id
egenskaber at finde elementerne programmatisk.
I koden nedenfor er vi simpelthen søger efter brugernavn indtastningsfeltet af id
, og fylde det med den ønskede tekst. Så er vi søger efter knappen Næste som overgår med en hurtig animation før vi beder os om adgangskoden.
Det send_keys ()
og klik ()
kommandoer gør nøjagtigt som deres navne antyder - send_keys ()
simulerer tastaturer i det ønskede element, og klik ()
simulerer et klik med musen.
# Indtast brugernavn og tryk på den næste knap brugernavn = browser.find_element_by_id ('Email') brugernavn.send_keys (brugernavnStr) nextButton = browser.find_element_by_id ('næste') nextButton.click ()
Vi kan gør det samme for adgangskode indtastningsfeltet, samt til login-knappen. Disse to elementer vises dog på siden kun efter en animeret overgang.
Når det er sagt, har vi brug for programmet til vent et par sekunder inden genoptagelse af dens søgning efter elementer. For det meste er denne fase af kode ikke anderledes end den foregående. Vi skal blot instruere browseren til vent maksimalt 10 sekunder før du indtaster adgangskoden.
# vente på overgang, fortsæt derefter med at udfylde varer password = WebDriverWait (browser, 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 lige færdig skabe en bot der besøger en webside, indtaster dit brugernavn og adgangskode og underskriver dig med succes, automatisering af hele processen til et enkelt klik. Jeg ved, at dette var en simpel demonstration, men mulighederne er uendelige.
På samme note, Vær forsigtig af hvordan du bruger denne færdighed. Nogle mennesker bruger robotter og automatiserede scripts til at deltage i konkurrencer tusindvis af gange, helt undladelse af vilkår og betingelser. Andre bruger dem til mere ondsindede hensigter.
Bare sørg for at bruge automatisering målrettet og omhyggeligt, fordi det virkelig er en tiltrængt færdighed i programmeringssamfundet!
Redaktørens note: Dette er et indlæg skrevet til Hongkiat.com by Malik Brahimi. Malik er udvikler i Greater Boston-området og elsker mad, fodbold og programmering (yndlingssprog Python).
- Download kilde