
MICRODATI CON GOOGLE TRENDS : Come ti analizzo il trend di 100 Keywords in una sola volta con Python e PyTrends
Benvenuto in questa mini-guida a PyTrends!
Ho diviso questo articolo in tre parti:
- Parte uno - Meno chiacchiere e più fatti!
Qui vi presento Trosotrend, un tool didattico per far processare direttamente la richiesta di analisi in Python.
- Parte due - Più chiacchiere e meno fatti
Analisi del codice base di Pytrends
Troverete anche un link al codice presente in Google Colab.
- Parte tre - Il Codice di base Trosotrend ed approfondimenti del codice
In questa sezione analizziamo, nel dettaglio, il codice del programma in Python realizzato.
Troverete anche un link al codice presente in Google Colab
PARTE UNO: Meno chiacchiere e più fatti!
Problema: Google Trends mi permette di confrontare solo 5 parole chiave alla volta e, anche ripetendo l’operazione più volte, non avrei i valori relazionati tra loro in quanto Google mi restituisce ogni volta il confronto basato su sole 5 keywords (ed in valore relativo, non assoluto).
Soluzione: Utilizzare Python e le Api di PyTrends per confrontare anche 100 keywords mantenendo i valori correttamente relazionati tra loro.
Tool (Trosotrend): prima i fatti! Ho creato un piccolo tool online per dare a tutti la possibilità di testare la funzionalità anche se non si hanno le conoscenze di base di Python. Lo so, il nome del tool è osceno.
In questo caso ho utilizzato alcuni strumenti Low-code e No-Code quali Jotform, Pipedream e chiaramente Python per la parte di programmazione.
Link al tool: https://www.lucatroso.it/trosotrend
Ti annoia anche inserire due keywords nel tool di test? Allora te la faccio ancora più semplice con questo esempio:
Keywords da analizzare: pizza margherita,pizza diavola,pizza salsiccia e friarielli,pizza fritta,pizza marinara,pizza salame e provola,calzone al forno,wurstel e patate
File generato dal codice: clicca e scarica
PARTE DUE: Più chiacchiere e meno fatti!
Cos’è Pytrend?
Pytrend è una API non ufficiale per Google Trends e ci permette di velocizzare drasticamente il lavoro di comparazione che viene eseguito solitamente attraverso l’interfaccia web di Google Trends. In pratica, risparmiamo tempo utilizzando questa modalità di lavoro.
Pytrend si può utilizzare con il linguaggio di programmazione Python. In questo caso io utilizzo la versione 3.9.
Quali dati possiamo ottenere con Pytrend? Eccone alcuni:
- Interest Over Time (trend nel tempo)
- Historical Hourly Interest
- Interest by Region (trend per regione)
- Related Topics
- Related Queries
- Trending Searches
- Top Charts
- Keyword Suggestions
Utilizzo spesso "Google Trends", insieme ad altri database, per comprendere la "domanda" digitale di un dato bene / servizio o il trend di crescita di una categoria particolare.
Purtroppo, la versione web, ha un grande limite: può (al momento) confrontare solo 5 parole chiave. Inoltre, effettuare questo lavoro manualmente porta via, spesso, molto tempo.
Nota bene: il limite del numero di keywords si applica anche alle api di Pytrend (che fanno ovviamente una richiesta alle api di Google) ma con qualche workaround, è possibile confrontare anche molte più keywords.
Come possiamo quindi confrontare più di 5 prodotti / servizi / keywords?
Uno dei metodi è sicuramente quello di utilizzare Python e le API (non ufficiali) di PyTrends.
Attenzione: se vuoi mettere in pratica quanto scritto da ora in poi devi poter accedere ad una idle (Python). Se sei a digiuno di Python, ti consiglio prima di comprendere le basi di questo linguaggio.
Codice di base Pytrend (fino a 5 keywords)
Per iniziare, è necessario installare la liberaria di Pytrend con la seguente riga di codice dalla vostra idle preferita (o anche su Google Colab):
Partiamo quindi dall’analisi del codice di base:
In questo caso abbiamo analizzato, attraverso la funzione “Interest by Region (trend per regione)”, il trend di alcune keywords in ogni paese del mondo negli ultimi 30 giorni.
Dopo aver fornito la lista delle keywords (kw_List), queste informazioni sono state passate tramite la costruzione del payload:
dove abbiamo indicato la lista delle keywords (kw_list) ed il range temporale da analizzare (timeframe=’today 1-m’).
Google Colab: per comodità ho creato anche uno spazio Google Colab dove potete testare direttamente il funzionamento di questo codice e copiarlo per eventuali modifiche.
PARTE TRE: Il Codice di base Trosotrend ed approfondimenti del codice (oltre le 5 keywords)
Per il servizio “Trosotrend” il codice risulta leggermente più articolato in quanto lo scopo è inviare a mezzo email un file CSV con il trend delle keywords richieste ed evitare che le API di Google blocchino la nostra analisi dopo 5 keywords.
Di conseguenza il codice dovrà:
- Recuperare le informazioni passate tramite il form di dati
- Creare un file CSV
- Elaborare i dati dei trend delle keywords
- Scrivere i dati sul file CSV
- Salvare il file CSV come file temporaneo
- Inviare il file a mezzo mail
Problemi da tenere in considerazione:
- Evitare di passare troppe richieste contemporaneamente al sistema Google (che potrebbe bannarci) così da poter analizzare più di 5 keywords
- Recuperare le Keywords dinamicamente da un software esterno
Vediamo insieme il codice completo:
Vediamo il codice nel dettaglio:
1 - Nella prima parte del codice abbiamo importato tutte le librerie necessarie al corretto funzionamento del sistema.
Qui abbiamo importato le librerie:
Pandas: che ci permette di lavorare con il dataframe pandas relativo alla visualizzazione in tabella dei dati.
Pytrends: è la libreria che ci permette di collegarci alle API di Google
Pipedream: è la funzione che mi permette di utilizzare la funzione della piattaforma pipedream per la gestione delle variabili (ovvero le keywords che ho inserito tramite il form)
Csv: libreria necessaria per la gestione dei file CSV
Os: necessario per la scrittura / lettura di file
Re: necessario la gestione delle espressioni regolari
Time: libreria per la gestione del “tempo”
2 - Recupero dei dati dal database e configurazione generale
In questa fase abbiamo recuperato le keywords fornite tramite modulo (2 rigo) e trasformato queste informazioni in un unica “lista” separata da virgola [lista = keywords.split(",")]
3 - Imposto il “Timing” di lavoro ed il dataset
Qui ho inserito due timer, uno da 2 secondi ed uno da 60 secondi. Questi timer mi serviranno per non sovraccaricare di richieste le API di Google (ed evitare di essere bannato). Creo inoltre il dataset dove saranno “conservati” temporaneamente le ricerche.
4 - Inizio le query
Questa è la parte del codice più “interessante”. Inizio il ciclo di “query” per ogni parola chiave precedentemente passata tramite il form e mi fermo per 60 secondi ogni 30 keywords analizzate.
Il numero 30 è stato scelto sulla base di diversi “stress-test”.
Oltre le impostazioni di sicurezza qui vengono effettuate anche le seguenti operazioni:
- Timeframe: Viene passato il range di date da analizzare
- data: viene specificato il tipo di informazione che vogliamo estrarre, in questo caso, “interest_over_time” che analizza il trend nel tempo di una singola parola chiave.
- Data.empty: qui evitiamo di “scrivere” colonne vuote. Se non vengono trovati risultati, la keywords saranno saltate.
- Data (generale): qui catturiamo le informazioni e le scriviamo nel file temporaneo creato precedentemente.
5 - Scrivo i risultati
In questo caso salvo tutti i dati salvati (result), creo un file CSV (with open) e scrivo i risultati (f.write).
Successivamente, un secondo codice in Python invia una email con, in allegato, il file CSV prodotto.
Il codice che abbiamo visto è la base di partenza per costruire software più articolati.
Google Colab: anche per questo codice ho creato del codice su Colab così da darvi la possibilità di copiarlo e modificarlo a vostro piacimento.