In questa serie di articoli vediamo come sviluppare il nostro Whatsapp Online Tracker, ovvero una semplice applicazione in Python che ci avverte quando un contatto Whatsapp risulta online.
Nella prima parte presentiamo un approccio possibile per risolvere il problema e cosa è necessario installare per raggiungere l’obiettivo!
Nella seconda parte tratteremo invece più nello specifico come mettere insieme tutti gli ingredienti per avere un tracker funzionante che potrai poi arricchire con funzionalità a piacere.
Whatsapp Online Tracker Course
Cosa imparerai:
- Impara Python con un approccio pratico.
- Usa Selenium per automatizzare applicazioni web.
- Usa XPath per selezionare un nodo specifico in una pagina web.
- Sviluppa il tuo bot Telegram.
- Scrivi la tua libreria Python e sviluppa una completa API Whatapp per le tue applicazioni.
- Sviluppa un Whataspp Online Tracker che può funzionare in diversi sistemi.
- Invia una notifica ogni qual volta un utente accede a Whatsapp.
- Installa tutto su un Raspberry Pi.
Whatsapp Web
Bene, come abbiamo introdotto poco fa quello che vogliamo fare è recuperare le informazioni relative ad un contatto Whatsapp così da ricevere una notifica quando quest’ultimo apre l’applicazione e controlla i suoi messaggi.
Per far ciò è necessario accedere al servizio di messaggistica con uno strumento differente dalla semplice app per smartphone, deve infatti essere possibile automatizzare alcune azioni così da poterle replicare iterativamente in un’applicazione dedicata.
Whatsapp Web è quello che fa al caso nostro in quanto permette di interagire con le nostre chat utilizzando un qualsiasi computer.
Raggiungiamo il sito web del servizio e effettuiamo la registrazione del nostro smartphone attraverso il QRCode visualizzato in pagina.
Se non sapessi come si usa Whatsapp Web, ti consiglio di seguire questa semplice guida.
Una volta fatto, avremo accesso all’interfaccia principale e potremo vedere una schermata simile alla seguente:
Ammettiamo di voler controllare lo stato di un utente, ciò che dobbiamo fare è aprire una Nuova chat cliccando sul pulsante evidenziato in rosso:
successivamente dobbiamo digitare il numero di telefono (o il nome del contatto) con cui vogliamo interagire e cliccare sul primo elemento della lista che compare sotto alla textbox:
così facendo siamo in grado di aprire una conversazione con il contatto specifico e visualizzare lo stato attuale dall’etichetta riportata sotto al nome:
Bene, siamo riusciti a trovare una sequenza di step che ci permette di verificare lo stato di un contatto!
Non ci resta che trovare un modo per automatizzare questi passi!
Selenium per Python
Abbiamo già avuto modo di incontrare Selenium e vedere come installarlo su Raspberry.
Probabilmente quindi sappiamo già che questo framework consente di automatizzare test per applicazioni Web ma può essere usato per molto altro, compreso sviluppare il nostro tracker!
Installare Selenium per Python è molto semplice grazie al gestore di pacchetti del linguaggio.
Do per scontato che il tuo computer abbia già un’installazione attiva di Python con tutto il necessario configurato.
Se così non fosse ti propongo questa guida di html.it dove puoi trovare le istruzioni per Windows, Linux e MacOs!
Se invece volessi installarlo su Raspberry, fai riferimento alla mia guida.
Dal nostro sistema operativo, apriamo un prompt dei comandi con privilegi di amministratore e lanciamo:
in questo modo avremo sia aggiornato il gestore di pacchetti di Python e sia installato l’ultima versione di Selenium.
Installiamo il WebDriver
Per poter funzionare, Selenium necessita di un driver compatibile con il browser installato nel nostro sistema.
Raggiungiamo questa pagina dove, sotto la sezione Drivers, possiamo trovare le ultime versioni dei WebDriver per i tutti i principali browser in circolazione e clicchiamo sul link relativo a quello installato nel nostro sistema.
Come avrai certamente notato a questo punto, esistono diverse versioni per ciascun browser disponibile.
Prima di procedere, dobbiamo essere sicuri di scaricare il driver corretto, altrimenti Selenium non sarà in grado di funzionare correttamente.
Per fare ciò, visita questo sito dal quale puoi visualizzare velocemente la versione del tuo browser internet.
Una volta scaricata la versione compatibile con il tuo sistema, ti ritroverai un archivio con all’interno un eseguibile: scompatta il contenuto in una cartella a scelta.
Hello World!
Adesso abbiamo tutti gli ingredienti per sviluppare il nostro applicativo.
Per cominciare, verifichiamo che tutto sia in ordine e correttamente configurato.
Dal nostro editor di sviluppo preferito, creiamo uno script Python e dopo aver importato Selenium creiamo l’oggetto browser puntando all’eseguibile scaricato e scompattato nel paragrafo precedente.
Terminiamo lo script aprendo una finestra del browser e raggiungendo la homepage di Google.
Ecco il codice appena discusso:
Salviamo tutto in un file chiamato, ad esempio, test.py.
Apriamo un prompt dei comandi nella stessa cartella dove abbiamo salvato lo script ed eseguiamolo con il seguente comando:
Se tutto è andato a buon fine dovremmo vedere aprirsi in automatico una finestra del nostro browser che punta alla homepage di Google.
Selettori XPath
Ok, abbiamo tutto pronto per poter interagire con il nostro browser e automatizzare la visita di pagine web.
Resta soltanto un problema: come facciamo a simulare i clic e la scrittura da tastiera sugli elementi della pagina di nostro interesse?
Selenium, lavorando con applicazioni Web, permette di riferirsi a un elemento in pagina tramite il suo selettore XPath: direi che è perfetto per ciò che dobbiamo andare a realizzare!
Come già discusso in questo articolo, XPath permette di localizzare un elemento preciso in una pagina Web senza ambiguità.
Dalla pagina di Whatsapp Web, utilizzando il tool ChroPath già visto nel nostro precedente articolo, raccogliamo i path assoluti per gli elementi incriminati, ovvero al tempo di scrittura:
Conclusioni
Perfetto, a questo punto abbiamo tutto ciò che ci serve per poter sviluppare il nostro Whatsapp Online Tracker.
Abbiamo capito che per monitorare un contatto è necessario avere un account Whatsapp attivo e, sfruttando il servizio Web, è possibile visualizzare lo stato corrente di un qualsiasi utente salvato in rubrica semplicemente cercandolo e aprendo una chat.
Abbiamo visto poi che con Selenium e XPath è possibile automatizzare tutte queste operazioni attraverso uno script Python.
Nel prossimo articolo andremo a vedere come mettere insieme tutti questi ingredienti per raggiungere il risultato voluto!
Scrivi un commento