nl.hideout-lastation.com
Paradijs Voor Ontwerpers En Ontwikkelaars


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 repetitief, saai, tijdrovend of anderszins inefficiënt zijn zonder het gebruik van een script.

Met webautomatisering kunt u gemakkelijk een bot maken om verschillende taken op het web uit te voeren, bijvoorbeeld om concurrerende hoteltarieven op internet te controleren en de beste prijs te bepalen.

Persoonlijk heb ik altijd het loggen in mijn e-mail redelijk repetitief en saai gevonden, dus laten we, omwille van een eenvoudig voorbeeld om jullie op weg te helpen met webautomatisering, een geautomatiseerd Python-script implementeren om in te loggen met een enkele klik naar een Gmail-account.

Installatie en instellingen

In deze tutorial gaan we de volgende hulpmiddelen gebruiken :

  1. Python-programmeertaal
  2. Google Chrome-browser
  3. Selenium browserautomatiseringstoolkit
  4. Chrome Driver webstuurprogramma voor Chrome

Voor ons programma zullen we de programmeertaal Python gebruiken, in het bijzonder versie 2.7.11 . Het is van cruciaal belang dat we een vrij nieuwe versie van Python 2 installeren omdat deze wordt geleverd met PIP, waarmee we pakketten en frameworks van derden kunnen installeren die we nodig hebben om onze scripts te automatiseren.

Na de installatie start u uw computer opnieuw op om de wijzigingen door te voeren. Gebruik de opdracht pip install selenium om de toolkit voor webautomatisering van Selenium aan Python toe te voegen. Met Selenium kunnen we programmatisch scrollen, kopiëren, formulieren invullen en klikken op knoppen.

Download ten slotte het uitvoerbare Selenium Chrome Driver-stuurprogramma, waarmee Google Chrome zo nodig wordt geopend voor het uitvoeren van onze geautomatiseerde taken. De Chrome-driver is gewoon een manier om Google Chrome te openen (die al zou moeten zijn geïnstalleerd) om via programmacode toegang te krijgen tot standaard browserhandelingen .

Download gewoon het meest recente ZIP-bestand van hier, pak het uitvoerbare bestand chromedriver.exe en plaats het uitvoerbare bestand in een willekeurige map. Noteer waar uw uitvoerbaar bestand is, want we hebben het nodig zodra we zijn gestart .

Het programma starten

Zoals eerder vermeld, gebruiken we het Selenium webautomatiseringsraamwerk om zich programmatisch aan te melden . De eerste orde van zaken is het importeren van elke module die we nodig hebben van de Selenium Python-bibliotheek die we met PIP goedkoper hebben geïnstalleerd.

Laten we IDLE of een andere codebewerker openen, een nieuw Python-bestand maken met de extensie .py en de volgende modules importeren :

 van selenium import webdriver van selenium.webdriver.common.by import Door van selenium.webdriver.support.ui import WebDriverWait van selenium.webdriver.support import expected_conditions als EC 

Vervolgens maken we twee strings die onze gebruikersnaam en wachtwoord voor het e-mailaccount vertegenwoordigen. Besteed aandacht aan hoofdletters, vooral in uw wachtwoordreeks.

 usernameStr = 'putYourUsernameHere' passwordStr = 'putYourPasswordHere' 

Nu we alles hebben ingesteld om het aanmeldingsproces te starten, moeten we een browservenster instrueren om Google Chrome te openen en naar de inlogpagina van Gmail te gaan .

Als je dit nog niet hebt gedaan, zorg er dan voor dat je Python-script wordt opgeslagen op dezelfde locatie als het uitvoerbare bestand chromedriver.exe we eerder hebben 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 de invoervelden op de webpagina vinden, waarin we onze gebruikersnaam en wachtwoord kunnen invoeren .

We kunnen dit eenvoudig doen met de ingebouwde Chrome Developer Tools. We hoeven alleen maar met de rechtermuisknop op de invoervelden te klikken en het menu "Inspecteren" te selecteren.

Nu is het gewoon een kwestie van HTML- id kenmerken gebruiken om de elementen programmatisch te vinden.

In de onderstaande code zoeken we eenvoudig naar het invoerveld voor de gebruikersnaam op id en vullen het met de gewenste tekst. Dan zoeken we naar de knop Volgende die overgaat met een snelle animatie voordat we ons om het wachtwoord vragen.

De opdrachten send_keys() en click() doen precies wat hun naam doet vermoeden - send_keys() simuleert keypresses in het gewenste element en click() 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 invoerveld voor wachtwoorden, maar ook voor de knop Aanmelden. Deze twee items verschijnen echter alleen op de pagina na een geanimeerde overgang .

Dat gezegd hebbende, hebben we het programma nodig om een paar seconden te wachten voordat het opnieuw naar elementen zoekt. Voor het grootste deel verschilt deze fase van de code niet van de vorige. We moeten de browser gewoon opdragen maximaal 10 seconden te wachten voordat hij de wachtwoordinvoer kan vinden.

 # wacht op overgang en vul vervolgens items aan 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

U bent net klaar met het maken van een bot die een webpagina bezoekt, uw gebruikersnaam en wachtwoord invoert en u aanmeldt, het hele proces automatiseert tot een enkele klik. Ik weet dat dit een eenvoudige demonstratie was, maar de mogelijkheden zijn eindeloos.

Let op dezelfde opmerking op 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!

Noot van de redactie: dit is een post geschreven voor Malkiat.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

20 gratis tools om instant-facturen eenvoudig te maken

20 gratis tools om instant-facturen eenvoudig te maken

Als eigenaar van een klein bedrijf of een freelancer weet u hoe belangrijk facturering is. Facturen worden verzonden om uw klanten op de hoogte te stellen van de producten en services die u heeft geleverd, zodat u voor uw werk kunt betalen. Facturen geven in de regel aan hoeveel producten of services u hebt geleverd, hoeveel het per eenheid kost en wat de totale prijs is

(Technische en ontwerptips)

10 gratis fotobeheersoftware die u moet kennen

10 gratis fotobeheersoftware die u moet kennen

Met fotomanagers kunt u uw leven organiseren in fotoalbums en zorgen voor uw digitale herinneringen - slim en efficiënt. In deze post presenteren we de beste 13 desktopfotomanagers die je helpen afbeeldingen te bekijken, metadata te beheren en nog veel meer te doen.Beeldbeheertools zijn niets nieuws, maar deze tools bieden functies die in het verleden slechts een fictie gedachte waren .

(Technische en ontwerptips)