Automatizando Google Trends com Python
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.
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 tail
podemos ver como ficou nosso dataset:
resultado.head()
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:
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.
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()
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