Automatizando Google Trends com Python

Matheus Buniotto
4 min readMar 23, 2022

--

Nesse artigo, vamos utilizar a biblioteca PyTrends para automatizar a coleta dos dados de interesse no Google Trends. Além disso, vamos utilizar a integração com o Google Sheets para gerar o relatório com os dados coletados.

A ferramenta Google Trends informa o “nível” de interesse por um determinado assunto em um dado período, podendo variar de 0 a 100, sendo o pico de interesse representado pelo valor 100.

1. Criando o arquivo com as palavras-chave (assuntos) e período

Primeiro é necessário criar uma planilha com as palavras-chave e período que serão usados para gerar os dados de interesse no Google Trends. Nesse exemplo, vou utilizar as palavras “covid” e “omicron”. Para o período, vamos utilizar a data de início “2020–01–01” e data final de “2022–01–22”. Você pode utilizar outros períodos ou palavras como desejar.

Exemplo — Palavras-chave e período

2. Instalando e importando as bibliotecas necessários no Google Collab

Após configurar nossa planilha, vamos instalar e importar as bibliotecas necessárias no Google Collab.

Vamos usar:

  • Pytrends
  • Pandas
  • Google-auth
  • Gspread
!pip install pytrendsfrom pytrends.request import TrendReqimport pandas as pd

Além de importar as bibliotecas é preciso autenticar a conexão entre Google Collab e nossa planilha criada no Spreadsheets. Vamos utilizar o Google-auth e o Gspread para isso.

from google.colab import auth
auth.authenticate_user()
import gspread
from oauth2client.client import GoogleCredentials
gc = gspread.authorize(GoogleCredentials.get_application_default())

3. Coletando os dados do Google Trends

Agora, vamos criar o script que irá coletar os dados do Google Trends através da biblioteca PyTrends. A biblioteca permite várias configurações diferentes, incluindo buscar por assuntos relacionados a palavra-chave e até mesmo selecionar local da busca. Nesse caso, vamos utilizar a linguagem como pt-BR e a geolocalização como BR . Para maiores informações você pode consultar a documentação da API Pytrends.

pytrend = TrendReq(hl='pt-BR')df = wb = gc.open_by_url('#url da sua planilha')sheet = wb.sheet1df2 = sheet.col_values(1)d_inicio = sheet.acell('B1').valued_fim = sheet.acell('B2').valuedataset = []for x in range(0,len(df2)):  keywords = [df2[x]]  pytrend.build_payload(  kw_list=keywords,  cat=0,  timeframe= str(d_inicio + " " + d_fim),  geo='BR')
data = pytrend.interest_over_time() if not data.empty: data = data.drop(labels=['isPartial'],axis='columns') dataset.append(data)resultado = pd.concat(dataset, axis=1)

Utilizando as funções head e tailpodemos ver como ficou nosso dataset:

resultado.head()
resultado.tail()
resultado.tail()

4. Enviar os dados para o spreadsheets

Agora que já temos nossos dados em um dataset, vamos enviar esses dados para uma planilha, onde poderão ser acessados de forma mais fácil. Para isso, vamos usar a biblioteca Gspread. Nesse exemplo estou usando a mesma planilha utilizada para informar as palavras-chave e criei uma nova aba com o nome de “Resultado” para onde serão enviados os dados.

#Abrindo a planilha e especificando a aba "Resultado"
worksheet = gc.open('PyTrends').worksheet('Resultado')
#resetando o index e mudando a coluna data para string.resultado['data'] = resultado.indexresultado['data'] = resultado['data'].astype(str)

Para enviar esses dados a planilha que abrimos é preciso transformar o dataset em lista. Para isso, usaremos o código abaixo que faz essa transformação nos valores e envia para a aba “Resultado”. A função upload faz o envio desses dados e a função tolist faz a transformação desses dados em lista.

worksheet.update([resultado.columns.values.tolist()] + resultado.values.tolist())

Já podemos acessar o resultado na nossa planilha:

Output do script na planilha

Conclusão

Pronto, agora você já pode partir para as análises dos dados! Com os dados no Spreadsheets, você poderá criar gráficos ou dashboards no Data Studio facilitando a visualização das tendências dos assuntos que você escolheu. Além disso, você também pode fazer uma análise mais profunda desses dados através do python.

Gráfico gerado no Spreadsheets
plt.figure(figsize=(15,10))plt.plot('covid', data=df, marker='', color='gray', linewidth=2)plt.plot('omicron', data=df, color = 'red', linewidth=2)plt.title('Google Trends - Omicron x Covid', fontdict={'size' : 26, 'color':'#565656'})plt.legend(prop={'size': 16})plt.show()
Gráfico com matplot

Algumas sugestões de como utilizar esses dados:

  • Dashboard de Tendências de assuntos — Data Studio ou Streamlit
  • Gerar gráficos e análises no spreadsheets
  • Análise exploratória desses dados com Python
  • Análises avançadas de tendências, sazonalidades e forecast com Python

--

--

Matheus Buniotto

Compartilho um pouco dos meus estudos e projetos com dados! Atualmente trabalho como analista de Dados e BI com foco em marketing e produto.