Scaricare i dati di Google Trends con Python

Google Trends Python

Google Trends è uno strumento che serve a scoprire l’interesse degli utenti e il traffico di ricerca inerente un argomento o una specifica parola chiave.

Lo svantaggio di questo tool è che permette di effettuare una ricerca alla volta e, per quanto questa comprenda grafici e mappe di gradevolezza/interesse degli argomenti oltre ad una serie di keywords e argomenti correlati, si tratta di un metodo lento.

Dal punto di vista del consulente SEO che utilizza Google Trends per comprendere la natura di un mercato e/o applicare le conoscenze alla creazione di contenuti, c’è bisogno di aggregare i dati in un modo differente.

Proprio per questo motivo si tendono ad utilizzare strumenti che utilizzino linguaggi di programmazione, come Python, che si occupano di aggregare al meglio i dati.

Per questo motivo nascono le API di Google Trends per Python, o PyTrends.

Cos’è Pytrends?

Si tratta di un’interfaccia per scaricare i dati di Google Trends e generare reports in formato CSV (grazie alla presenza della libreria Pandas).

Non essendo API ufficiali (ma fornendo in ogni caso un servizio utilissimo) purtroppo la documentazione risulta piuttosto sparpagliata.

In realtà le funzioni principali che riguardano installazione e implementazione su una piattaforma si possono trovare nella/e pagina/e GitHub di Pytrends (ne esistono molte ma tutte abbastanza valide).

Il primo impatto con il codice è ben regolamentato, per questo il problema si presenta quando bisogna decidere come estrarre i dati, dato che viene data scontata la conoscenza di Python e delle librerie utilizzate.

Il vero scoglio da affrontare riguarda quindi la creazione di uno spazio utilizzabile e una serie di routine ripetibili e facili da scaricare.

Proprio per questo ho scelto di fornire una guida e lo sviluppo del codice su Google Colab.

Cos’è Google Colab? (Colaboratory)

Google Colab o Colaboratory è una piattaforma su cui è possibile eseguire del codice. L’accesso avviene online, si tratta di un servizio in cloud che ha bisogno di un account Google per permettere l’accesso.

Il lavoro all’interno viene sviluppato sotto forma di Jupiter Netbook, di documenti interattivi sui quali è possibile programare e contemporaneamente scrivere del testo e inserire immagini.

Google Colab non è l’unico Jupiter Netbook esistente, ma si tratta sicuramente di uno strumento comodo, che permette di salvare i file direttamente su Google Drive.

Per la precisione il lavoro dentro la piattaforma viene organizzato in celle, che possono contenere codice o altro, formattato in Markdown (è un editor).

Google Colab
File recenti di Colab

Installare i moduli

Per far funzionare Pytrends e poter caricare dati da Google Trends occorre caricare alcuni moduli, per la precisione Requests, lxml, Pandas:

  • Requests mette a disposizione una libreria per semplificare le richieste HTTP
  • lxml permette di lavorare con file XML e generare HTML
  • Pandas serve per incasellare meglio dati di varia natura, soprattutto se si parla di elenchi o comunque operazioni che producono molte informazioni.

Tutte queste librerie e in generale i moduli installabili richiedono una linea di codice che li attivi (in Google Colab, altrove potrebbero richiedere il download di un file da installare successivamente), sempre simile alla seguente:

pip install <module>

E sostituire a <module> il nome o la sigla del modulo da installare.

Connessione a Google

Questa operazione su Colab è presupposta, ma negli altri casi è necessaria. Si tratta di inserire una stringa di codice di questo tipo:

from pytrends.request import TrendReq

pytrends = TrendReq(hl='en-US', tz=360)

dove tz sta per timezone. A questo punto è possibile anche dare un’occhiata alla piattaforma, per poi tornare a inserire del codice valido.

Funzioni basilari

Colaboratory permette di salvare e segnalare la revisione, sia che le informazioni vengano inviate a Google Drive, sia che vengano inviate ad un repository di GitHub.

Prima di iniziare a lavorare è buona norma controllare la voce di menu runtime per comprendere quale sezione di codice attivare, quali documenti attivare e quali no.

All’inizio questa procedura non ha un senso reale, perché avremo sicuramente a disposizione tutta la potenza dell’account a nostra disposizione, successivamente ci si renderà conto dei limiti della struttura che stiamo utilizzando.

Purtroppo infatti gli account fuori dagli Stati Uniti non possono effettuare un upgrade della propria installazione.

Importante: gennaio 2020 la versione di Python accetatta è solo la 3, non più la 2.

Interessi regionali

Per controllare quali nazioni hanno più interesse in un determinato argomento o keyword basta inserire le stringhe di codice indicate di seguito, e variare la ricerca inserendo i termini nella kw_list.

pytrend.build_payload(kw_list=['SEO'])
# Interest by Region
df = pytrend.interest_by_region()
df.head(10)

Per modificare il numero di risultati visibili, basta cambiare il valore presente dentro il codice df.head(10).

Per visualizzare le informazioni con una rappresentazione grafica basta aggiungere la stringa:

df.reset_index().plot(x='geoName', y='keywords', figsize=(120, 10), kind ='bar') 

Trends giornalieri

# Get Google Hot Trends data
df = pytrend.trending_searches(pn='united_states')
df.head()

In evidenza

# Get Google Top Charts
df = pytrend.top_charts(2019, hl='en-US', tz=300, geo='GLOBAL')
df.head()

Google Keyword Suggestions

Si tratta forse dell’opzione più apprezzata a livello SEO ed è indipendente dalle precedenti. E’ infatti possibile aggiungere i risultati

# Get Google Keyword Suggestions
keywords = pytrend.suggestions(keyword='SEO')
df = pd.DataFrame(keywords)
df.drop(columns= 'mid')   # This column makes no sense

Queries correlate

pytrend.build_payload(kw_list=['SEO'])
# Related Queries, returns a dictionary of dataframes related_queries = pytrend.related_queries() related_queries.values()

ma è anche possibile selezionate i topics correlati, invece delle queries (o entrambe):

# Related Topics, returns a dictionary of dataframes
related_topic = pytrend.related_topics()
related_topic.values()

Scaricare le informazioni

Ci sono diverse opzioni di download, la più semplice delle quali è il download del file di Colab, che viene salvato su Google Drive.

In modo altrettanto semplice si possono salvare le informazioni su GitHub o GitHub Gist, oppure salvarli in formato .py o .ipynb.

Tutte queste opzioni sono attivabili dal menu File.

Nel caso in cui si voglia invece salvare in file .csv bisogna utilizzare del codice, tipo:

df = pytrends.trend(payload, return_type='dataframe')
df.to_csv(<YOUR_FILEPATH>)

Il cui funzionamento risulta più chiaro leggendo la wiki di Pandas sull’esportazione in CSV.

Related Posts

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.