Come costruire un semplice bot di accesso automatico con Python e selenio
Automazione è indubbiamente una delle più ambite abilità che un programmatore possa possedere. L'automazione viene in genere utilizzata per attività che lo sono ripetitivo, noioso, che richiede tempo, o altrimenti inefficiente senza l'uso di una sceneggiatura.
Con automazione web, puoi facilmente creare un bot per eseguire diversi compiti sul web, ad esempio per monitorare le tariffe alberghiere concorrenti su Internet e determinare il prezzo migliore.
Personalmente, l'ho sempre trovato accedendo alla mia email abbastanza ripetitivo e noioso, quindi per il semplice esempio di farti ragazzi iniziato con l'automazione del web, implementiamo un script Python automatizzato a accedi con un solo clic a un account Gmail.
Installazione e configurazione
In questo tutorial useremo il seguenti strumenti:
- Linguaggio di programmazione Python
- Browser Google Chrome
- Toolkit per l'automazione del browser del selenio
- Driver web driver Chrome per Chrome
Per il nostro programma, utilizzeremo specificamente il linguaggio di programmazione Python versione 2.7.11. È fondamentale installare un versione abbastanza nuova di Python 2 perché viene fornito PIP, che ci permetterà di installare pacchetti e framework di terze parti di cui avremo bisogno per automatizzare i nostri script.
Una volta installato, riavvia il tuo computer affinchè le modifiche abbiano effetto Usa il comando pip installa selenio
aggiungere il Toolkit per l'automazione del web del selenio a Python. Il selenio ci consentirà di scorrere, copiare testo, moduli di compilazione e pulsanti di scelta.
Finalmente scarica il Eseguibile del driver Chrome Selenium, quale volontà apri Google Chrome come necessario per eseguire le nostre attività automatizzate. Il Chrome Driver è semplicemente un modo per aprire Google Chrome (che dovrebbe essere già installato) su accedere alle operazioni standard del browser a livello di codice.
Basta scaricare il file ZIP più recente da qui, estrarre il file chromedriver.exe
eseguibile e posizionare l'eseguibile in qualsiasi directory. Assicurati di prendere nota di dove è il tuo eseguibile, perché ne avremo bisogno una volta iniziato.
Avvio del programma
Come accennato, useremo il Quadro di automazione del selenio in modo da accedi in modo programmatico. Il primo ordine del business è quello di importa ogni modulo avremo bisogno della libreria Selenium Python che abbiamo installato prima con PIP.
Apriamo IDLE o un altro editor di codice, crea un nuovo file Python con .py
estensione, e importare i seguenti moduli:
da selenium import webdriver da selenium.webdriver.common.by import Da selenium.webdriver.support.ui import WebDriverWait da selenium.webdriver.support importate condizioni_aspettive come EC
Avanti, lo faremo crea due stringhe quello rappresenta il nostro nome utente e password per l'account di posta elettronica. Presta attenzione alle lettere maiuscole, in particolare nella stringa della password.
usernameStr = 'putYourUsernameHere' passwordStr = 'putYourPasswordHere'
Ora che abbiamo tutto pronto per iniziare il processo di login, dobbiamo effettivamente istruire una finestra del browser su apri Google Chrome, e vai alla pagina di accesso di Gmail.
Se non lo hai già fatto, assicurati che il tuo script Python sia salvato nella stessa posizione del chromedriver.exe
eseguibile abbiamo estratto in precedenza.
browser = webdriver.Chrome () browser.get (('' https://accounts.google.com/ServiceLogin? "service = mail & continue = https: //mail.google" .com / mail / # identificatore "))
Trovare il nostro elemento
Abbiamo ottenuto con successo il browser per aprire Gmail, ma ora è necessario trova i campi di input sulla pagina web, nella quale possiamo inserisci il nostro nome utente e password.
Possiamo farlo facilmente utilizzando gli strumenti di sviluppo Chrome integrati. Basta fare clic con il pulsante destro del mouse sui campi di input e selezionare “Ispezionare” menu.
Ora è solo una questione di usando HTML id
attributi per trovare gli elementi a livello di codice.
Nel codice qui sotto, siamo semplicemente cercando il campo di inserimento del nome utente da id
, e riempiendolo con il testo desiderato. Allora siamo cercando il pulsante Avanti quali transizioni con un'animazione rapida prima di richiedere la password.
Il send_keys ()
e clic()
i comandi fanno esattamente come suggeriscono i loro nomi - send_keys ()
simula i tasti premuti nell'elemento desiderato, e clic()
simula un clic del mouse.
# riempire il nome utente e premere il pulsante successivo nomeutente = browser.find_element_by_id ('Email') nomeutente.send_keys (usernameStr) nextButton = browser.find_element_by_id ('next') nextButton.click ()
Noi possiamo fare la stessa cosa per il campo di inserimento della password, nonché per il pulsante Accedi. Tuttavia, questi due elementi appaiono sulla pagina solo dopo una transizione animata.
Detto questo, abbiamo bisogno del programma per aspetta qualche secondo prima di riprendere la ricerca di elementi. Per la maggior parte, questa fase del codice non è diversa dalla precedente. Dobbiamo solo istruire il browser su attendere un massimo di 10 secondi prima di localizzare la password.
# attendere la transizione quindi continuare a riempire elementi 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 ()
Parole finali
Hai appena finito creando un bot che visita una pagina web, inserisce il nome utente e la password e ti ha registrato con successo, automatizzando l'intero processo con un solo clic. So che questa è stata una semplice dimostrazione, ma le possibilità sono infinite.
Sulla stessa nota, stai attento di come usi questa abilità. Alcune persone usano bot e script automatici per partecipare alle lotterie migliaia di volte, ignorando completamente i termini e le condizioni. Altri li usano per intenzioni più dannose.
Assicurati di utilizzare l'automazione in modo mirato e attento, perché è davvero un abilità tanto necessaria nella comunità di programmazione!
Nota dell'editore: Questo è un post scritto per Hongkiat.com da Malik Brahimi. Malik è uno sviluppatore situato nella zona di Greater Boston, e ama il cibo, il calcio e la programmazione (lingua preferita Python).
- Scarica fonte