Hoe een eenvoudige Auto-Login Bot met Python en Selenium te bouwen
Automatisering is ongetwijfeld een van de meest begeerde vaardigheden die een programmeur kan bezitten. Automatisering wordt meestal gebruikt voor taken die dat wel zijn repetitief, saai, tijdrovend, of anders inefficiënt zonder het gebruik van een script.
Met webautomatisering, je kunt het gemakkelijk maak een bot om verschillende taken uit te voeren op internet, bijvoorbeeld om concurrerende hoteltarieven op internet te controleren en de beste prijs te bepalen.
Persoonlijk heb ik dat altijd gevonden inloggen op mijn e-mail vrij repetitief en saai, dus ter wille van een eenvoudig voorbeeld om jullie te krijgen begonnen met webautomatisering, laten we een implementeren geautomatiseerd Python-script naar log in met een enkele klik naar een Gmail-account.
Installatie en instellingen
In deze tutorial gaan we de gebruiken volgende hulpmiddelen:
- Python-programmeertaal
- Google Chrome-browser
- Selenium browserautomatiseringstoolkit
- Chrome Driver webstuurprogramma voor Chrome
Voor ons programma zullen we specifiek de programmeertaal Python gebruiken versie 2.7.11. Het is van cruciaal belang dat we een vrij nieuwe versie van Python 2 omdat het komt met PIP, waarmee we pakketten en frameworks van derden kunnen installeren die we nodig hebben om onze scripts te automatiseren.
Eenmaal geïnstalleerd, start je computer opnieuw op om de wijzigingen door te voeren. Gebruik de opdracht pip installeer selenium
om de. toe te voegen Selenium webautomatisering toolkit naar Python. Selenium stelt ons in staat om op programmatische wijze te scrollen, tekst te kopiëren, formulieren in te vullen en op knoppen te klikken.
Download ten slotte de Selenium Chrome Driver uitvoerbaar, welke zal open Google Chrome zoals nodig om onze geautomatiseerde taken uit te voeren. De Chrome-driver is gewoon een manier om Google Chrome (dat al zou moeten zijn geïnstalleerd) te openen toegang krijgen tot standaard browserbewerkingen programmatisch.
Download gewoon het meest recente ZIP-bestand van hier, pak het chromedriver.exe
uitvoerbaar en plaats het uitvoerbare bestand in elke map. Zorg ervoor dat u noteert waar uw uitvoerbare bestand is, want we hebben het nodig zodra we zijn begonnen.
Het programma starten
Zoals eerder vermeld, gebruiken we de Selenium webautomatiseringsraamwerk om te log programmeerbaar in. De eerste orde van zaken is om importeer elke module we hebben de Selenium Python-bibliotheek nodig die we met PIP hebben geïnstalleerd.
Laten we IDLE of een andere code-editor openen, maak een nieuw Python-bestand aan met .py
extensie, en importeer de volgende modules:
van selenium import webdriver van selenium.webdriver.common.by import By van selenium.webdriver.support.ui import WebDriverWait van selenium.webdriver.support import expected_conditions als EC
Vervolgens zullen we maak twee strings die onze vertegenwoordigen gebruikersnaam en wachtwoord voor het e-mailaccount. Besteed aandacht aan hoofdletters, vooral in uw wachtwoordreeks.
usernameStr = 'putYourUsernameHere' passwordStr = 'putYourPasswordHere'
Nu we alles hebben ingesteld om het inlogproces te starten, moeten we een browser-venster daadwerkelijk instrueren open Google Chrome, en ga naar de inlogpagina van Gmail.
Als je dit nog niet hebt gedaan, zorg dan dat je het Python-script gebruikt opgeslagen op dezelfde locatie als de chromedriver.exe
uitvoerbaar we hebben eerder geëxtraheerd.
browser = webdriver.Chrome () browser.get ((https://accounts.google.com/ServiceLogin? "service = mail & continue = https: //mail.google" .com / mail / # identifier '))
Ons element vinden
We hebben met succes de browser geopend om Gmail te openen, maar nu moeten we dit doen zoek de invoervelden op de webpagina, waar we kunnen voer onze gebruikersnaam en wachtwoord in.
We kunnen dit eenvoudig doen met de ingebouwde Chrome Developer Tools. We hoeven alleen maar met de rechtermuisknop op de invoervelden te klikken en de. Te selecteren “Inspecteren” menu.
Nu is het gewoon een kwestie van met behulp van HTML ID kaart
attributen om de elementen programmatisch te vinden.
In de onderstaande code zijn we gewoon zoeken naar het gebruikersnaam invoerveld met ID kaart
, en vullen met de gewenste tekst. Dan zijn we dat zoeken naar de knop Volgende die overgaat met een snelle animatie voordat we ons om het wachtwoord vragen.
De send_keys ()
en Klik()
commando's doen precies wat hun naam doet vermoeden - send_keys ()
simuleert toetsaanslagen in het gewenste element, en Klik()
simuleert een muisklik.
# vul gebruikersnaam in en druk op de volgende knop gebruikersnaam = browser.find_element_by_id ('Email') gebruikersnaam.send_keys (gebruikersnaamStr) nextButton = browser.find_element_by_id ('volgende') nextButton.click ()
We kunnen hetzelfde doen voor het wachtwoordinvoerveld, evenals voor de knop Aanmelden. Deze twee items verschijnen echter op de pagina enkel en alleen na een geanimeerde overgang.
Dat gezegd hebbende, we hebben het programma nodig om wacht een paar seconden voordat hij zijn zoektocht naar elementen hervat. Voor het grootste deel verschilt deze fase van de code niet van de vorige. We moeten gewoon de browser instrueren wacht een maximum van 10 seconden voordat u het wachtwoord invoert.
# wacht op overgang en vul vervolgens items in wachtwoord = 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 ()
Laatste woorden
Je bent net klaar een bot maken die een webpagina bezoekt, uw gebruikersnaam en wachtwoord invoert en u met succes aanmeldt, automatisering van het hele proces tot een enkele klik. Ik weet dat dit een eenvoudige demonstratie was, maar de mogelijkheden zijn eindeloos.
Op dezelfde toon, doe voorzichtig van hoe je deze vaardigheid gebruikt. Sommige mensen gebruiken bots en geautomatiseerde scripts om duizenden keren sweepstakes in te voeren, volledig zonder rekening te houden met de algemene voorwaarden. Anderen gebruiken ze voor kwaadwilligere intenties.
Zorg er wel voor dat u doelgericht en zorgvuldig met automatisering omgaat, want het is echt een broodnodige vaardigheid in de programmeergemeenschap!
Opmerking van de uitgever: Dit is een bericht geschreven voor Hongkiat.com door Malik Brahimi. Malik is een ontwikkelaar gevestigd in Greater Boston en houdt van eten, voetbal en programmeren (favoriete taal Python).
- Download de bron