L’analisi è alla base di qualunque attività di business e proprio per questo trovo fondamentale, ad esempio per un e-commerce, valutare la possibilità di analizzare costantemente i prezzi di mercato online di prodotti identici o comunque similari ai nostri.
Immaginate di poter scaricare automaticamente i contenuti che effettivamente ci interessano da centinaia di pagine di Amazon o Ebay e trasferire il tutto in un bel file csv pronto per l’uso, non sarebbe fantastico?
Tale tecnica viene chiamata Web Scraping, cioè l’estrazione automatizzata attraverso software che riproduce esattamente il processo di navigazione umana, estrapolando quello che ci interessa da un determinato sito web.
Per poterlo fare in maniera quasi del tutto automatizzata ho utilizzato il software UiPath, che mi ha permesso di estrarre informazioni da un sito ed esportarli in formato csv.
Vi riporto di seguito un esempio pratico passo passo, sviluppato su amazon per la chiave di ricerca “smart watch”.
Dal WEB al CSV passando per il web scraping
Prima di partire dobbiamo installare sul nostro pc un paio di prerequisiti software.
Partiamo da UiPath, che per il nostro obiettivo, va benissimo la versione gratuita, attivando la licenza free. Una volta installato ed attivato, creiamo un nuovo progetto di esempio e procediamo subito con l’installazione di alcuni suoi pacchetti aggiuntivi:
Prima di partire ci serve un’altra cosa fondamentale, l’estensione ad esempio per Google Chrome, per permettergli di interagire con il browser:
Fatto questo, dovremo aprire il browser sulla pagina da analizzare e successivamente cliccare dentro UiPath sul pulsante Data Scraping. Si aprirà una finestra che ci chiederà di selezionare l’elemento che ci interessa.
Per questo esempio ho voluto mostrarvi come estrapolare tutti i nomi dei prodotti ed i relativi prezzi, quindi quello che dobbiamo fare e seguire il semplice wizard andando a selezionare prima il primo nominativo, successivamente il secondo nominativo (questo procedimento serve al software per interpretare la sequenza).
Selezioniamo “Extract Text” ed inseriamo come “Text Column Name”, ad esempio: ProductName. Se insieme al nominativo volessimo estrarre anche l’url associata, basterebbe selezionare anche “Extract URL”.
Fatto questo passaggio, ci verrà mostrato subito la preview del risultato dell’estrazione parziale, chiedendoci, se vogliamo aggiungere altri campi di dati correlati a quello estratto.
Dovendo noi estrarre anche il prezzo, cliccheremo su: “Extract Correlated Data” ed andremo a selezionare i primi due prezzi in lista, ripetendo gli stessi passaggi precedenti.
A questo punto il software ci chiederà: “Is data spanning multiple pages?”, ovviamente in questo caso dovremo cliccare su “Yes”, per scaricare i dati delle diverse pagine di Amazon. Prima di cliccare vi consiglio di scendere giù nella pagina di Amazon e posizionarvi già dove c’è il link “Pagina successiva”.
Ci siamo quasi, abbiamo predisposto tutto il processo di base per l’estrazione dei dati dal sito web, a questo punto configuriamo gli ultimi passaggi prima dell’avvio dello scraping.
Colleghiamo il nostro pulstantone “Start” al nostro “Data scraping”, nel seguente modo:
Impostiamo infine, la scrittura su un file CSV, nel seguente modo:
Finito! Potete cliccare sul triangolone in alto a sinistra ed avviare il processo di estrazioni di tutti i dati dal sito web, che verranno scaricati e trasformati in un fantastico CSV, pronto per essere analizzato ed utilizzato come vogliamo.
Attenzione: Noterete, in questo esempio, ma sicuramente anche in altri test che farete, che a volte potrebbero esserci problemi durante l’estrazione, perché per i diversi elementi della stessa lista, potrebbero cambiare alcuni parametri, ad esempio per i prodotti prime. Il mio consiglio è quello di filtrare il più possibile già da interfaccia web, quello che effettivamente ci interessa estrarre, in alternativa, bisogna lavorare sul diagramma di flusso di UiPath, per fargli capire cosa fare in determinati casi particolari. Per questo forse farò un secondo articolo più avanzato, se ci sarà interesse a riguardo.