Como extrair dados do Google Trends com Python?

Senior Web Scraping Engineer
O Que é o Google Trends?
O Google Trends é uma ferramenta online gratuita fornecida pelo Google que analisa a popularidade de palavras-chave ou termos de pesquisa específicos no mecanismo de pesquisa do Google ao longo do tempo.
Ele apresenta dados na forma de gráficos para ajudar os usuários a entender a popularidade da pesquisa de um determinado tópico ou palavra-chave e identifica padrões, como flutuações sazonais, tendências emergentes ou declínio do interesse. O Google Trends não apenas suporta a análise de dados globais, mas também pode ser refinado para regiões específicas e fornecer recomendações para termos e tópicos de pesquisa relacionados.
O Google Trends é amplamente utilizado em pesquisas de mercado, planejamento de conteúdo, otimização de SEO e análise de comportamento do usuário, ajudando os usuários a tomar decisões mais informadas com base em dados.
Como Extrair Dados do Google Trends com Python - Guia Passo a Passo
Por exemplo: Neste artigo, vamos extrair as tendências de pesquisa do Google de 'DOGE' do mês anterior.

Passo 1: Pré-requisitos
Instalar Python
No Windows
Usando o Instalador Oficial do Python
-
Baixe o Instalador do Python:
- Acesse o site oficial do Python.
- O site deve sugerir automaticamente a versão mais recente para Windows. Clique no botão Download Python para baixar o instalador.
-
Execute o Instalador:
- Abra o arquivo
.exe
baixado para iniciar o processo de instalação.
- Abra o arquivo
-
Personalize a Instalação (opcional):
- Certifique-se de marcar a caixa que diz "Adicionar Python ao PATH" no início da janela de instalação. Isso torna o Python acessível a partir da linha de comando (
cmd
ou PowerShell). - Você também pode clicar em "Personalizar instalação" para escolher recursos adicionais como
pip
,IDLE
oudocumentação
.
- Certifique-se de marcar a caixa que diz "Adicionar Python ao PATH" no início da janela de instalação. Isso torna o Python acessível a partir da linha de comando (
-
Instale o Python:
- Clique em Instalar Agora para instalar o Python com as configurações padrão.
- Após a instalação, você pode verificá-la abrindo o Prompt de Comando (
cmd
) e digitando:bashpython --version
-
Instalando pip (se necessário):
- O pip, o gerenciador de pacotes Python, é instalado por padrão em versões modernas do Python. Você pode verificar se o pip está instalado digitando:
bash
pip --version
- O pip, o gerenciador de pacotes Python, é instalado por padrão em versões modernas do Python. Você pode verificar se o pip está instalado digitando:
Você também pode instalar o Python diretamente na Windows Store (disponível no Windows 10/11). Basta pesquisar "Python" no aplicativo Microsoft Store e escolher a versão que você precisa.
No macOS
Método 1. Usando o Homebrew (Recomendado)
-
Instale o Homebrew (se ainda não estiver instalado):
- Abra o aplicativo Terminal.
- Cole o seguinte comando para instalar o Homebrew (gerenciador de pacotes para macOS):
bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
-
Instale o Python com o Homebrew:
- Depois que o Homebrew estiver instalado, você pode instalar o Python com este comando:
bash
brew install python
- Depois que o Homebrew estiver instalado, você pode instalar o Python com este comando:
-
Verifique a Instalação:
- Após a instalação, você pode verificar as versões do Python e pip com os seguintes comandos:
bash
python3 --version pip3 --version
- Após a instalação, você pode verificar as versões do Python e pip com os seguintes comandos:
Método 2. Usando o Instalador Oficial do Python
-
Baixe o Instalador do macOS:
- Acesse a Página de Downloads do Python.
- Baixe o instalador mais recente do macOS para Python.
-
Execute o Instalador:
- Abra o arquivo
.pkg
para iniciar o processo de instalação e siga as instruções.
- Abra o arquivo
-
Verifique a Instalação:
- Após a instalação, abra o Terminal e verifique a versão do Python:
bash
python3 --version pip3 --version
- Após a instalação, abra o Terminal e verifique a versão do Python:
No Linux
Para Distribuições baseadas em Debian/Ubuntu
-
Atualize a Lista de Pacotes:
- Abra um terminal e execute o seguinte comando para atualizar a lista de pacotes:
bash
sudo apt update
- Abra um terminal e execute o seguinte comando para atualizar a lista de pacotes:
-
Instale o Python:
- Para instalar o Python 3 (geralmente a versão mais recente do Python 3.x), execute:
bash
sudo apt install python3
- Para instalar o Python 3 (geralmente a versão mais recente do Python 3.x), execute:
-
Instale o pip (se não estiver instalado):
- Se o pip não estiver instalado, você pode instalá-lo com:
bash
sudo apt install python3-pip
- Se o pip não estiver instalado, você pode instalá-lo com:
-
Verifique a Instalação:
- Para verificar a versão do Python instalada:
bash
python3 --version pip3 --version
- Para verificar a versão do Python instalada:
Para Distribuições baseadas em Red Hat/Fedora
-
Instale o Python 3:
- Abra um terminal e execute:
bash
sudo dnf install python3
- Abra um terminal e execute:
-
Instale o pip (se necessário):
- Se o
pip
não estiver instalado por padrão, você pode instalá-lo com:bashsudo dnf install python3-pip
- Se o
-
Verifique a Instalação:
- Para verificar a versão do Python instalada:
bash
python3 --version pip3 --version
- Para verificar a versão do Python instalada:
Para Arch Linux e Distros baseadas em Arch
-
Instale o Python 3:
- Execute o seguinte comando:
bash
sudo pacman -S python
- Execute o seguinte comando:
-
Instale o pip:
- O Pip deve ser instalado com o Python, mas se não for, você pode instalá-lo com:
bash
sudo pacman -S python-pip
- O Pip deve ser instalado com o Python, mas se não for, você pode instalá-lo com:
-
Verifique a Instalação:
- Para verificar as versões do Python e pip:
bash
python --version pip --version
- Para verificar as versões do Python e pip:
Usando Python via Anaconda (Multiplataforma)
Anaconda é uma distribuição popular para computação científica e vem com Python, bibliotecas e o gerenciador de pacotes conda
.
-
Baixe o Anaconda:
- Visite a Página de Downloads do Anaconda e baixe a versão apropriada para sua plataforma.
-
Instale o Anaconda:
- Siga as instruções de instalação com base em seu sistema operacional. O Anaconda fornece um instalador gráfico para Windows e macOS, além de instaladores de linha de comando para todas as plataformas.
-
Verifique a Instalação:
-
Após a instalação, abra um terminal (ou Anaconda Prompt no Windows) e verifique se o Python está funcionando:
bashpython --version
-
Você também pode verificar o
conda
(o gerenciador de pacotes para Anaconda):bashconda --version
-
Gerenciando Versões do Python (opcional)
Se você precisar gerenciar várias versões do Python na mesma máquina, poderá usar gerenciadores de versão:
-
pyenv: Um gerenciador de versão Python popular que funciona no Linux e macOS.
- Instale via Homebrew ou GitHub (para Linux e macOS).
- No Windows, você pode usar o pyenv-win.
bashpyenv install 3.9.0 pyenv global 3.9.0
Acesso à API Scrapeless e ao Google Trends
Como ainda não desenvolvemos uma biblioteca de terceiros para uso, você só precisa instalar solicitações para experimentar o serviço de API Scrapeless
Shell
pip install requests
Passo 2: Configurar os campos de código necessários

Em seguida, precisamos saber como obter os dados de que precisamos por meio da configuração:
- Palavra-chave: Neste exemplo, nossa palavra-chave é 'DOGE' (também suportamos a coleta de dados de comparação de várias palavras-chave)
- Configuração de dados:
- País: País de consulta, o padrão é 'Global'
- Tempo: Período de tempo
- Categoria: Tipo
- Propriedade: Fonte
Passo 3: Extraindo dados
Agora, vamos obter os dados de destino usando código Python:
Python
import json
import requests
class Payload:
def __init__(self, actor, input_data, proxy):
self.actor = actor
self.input = input_data
self.proxy = proxy
def send_request(data_type, search_term):
host = "api.scrapeless.com"
url = f"https://{host}/api/v1/scraper/request"
token = "scrapeless-api-key" # TODO:use your api key
headers = {"x-api-token": token}
input_data = {
"q": search_term,
"date": "today 1-m",
"data_type": data_type,
"hl": "en-sg",
"tz": "-480",
"geo": "",
"cat": "",
"property": "",
}
proxy = {
"country": "ANY",
}
payload = Payload("scraper.google.trends", input_data, proxy)
json_payload = json.dumps(payload.__dict__)
response = requests.post(url, headers=headers, data=json_payload)
if response.status_code != 200:
print("Erro:", response.status_code, response.text)
return
print("body", response.text)
if __name__ == "__main__":
send_request(data_type="interest_over_time", search_term="DOGE")
- Saída:
JSON
{"interest_over_time":{"averages":[],"timelineData":[{"formattedAxisTime":"24 Nov","formattedTime":"24 Nov 2024","formattedValue":["85"],"hasData":[true],"time":"1732406400","value":[85]},{"formattedAxisTime":"25 Nov","formattedTime":"25 Nov 2024","formattedValue":["89"],"hasData":[true],"time":"1732492800","value":[89]},{"formattedAxisTime":"26 Nov","formattedTime":"26 Nov 2024","formattedValue":["68"],"hasData":[true],"time":"1732579200","value":[68]},{"formattedAxisTime":"27 Nov","formattedTime":"27 Nov 2024","formattedValue":["60"],"hasData":[true],"time":"1732665600","value":[60]},{"formattedAxisTime":"28 Nov","formattedTime":"28 Nov 2024","formattedValue":["49"],"hasData":[true],"time":"1732752000","value":[49]},{"formattedAxisTime":"29 Nov","formattedTime":"29 Nov 2024","formattedValue":["55"],"hasData":[true],"time":"1732838400","value":[55]},{"formattedAxisTime":"30 Nov","formattedTime":"30 Nov 2024","formattedValue":["54"],"hasData":[true],"time":"1732924800","value":[54]},{"formattedAxisTime":"1 Dec","formattedTime":"1 Dec 2024","formattedValue":["55"],"hasData":[true],"time":"1733011200","value":[55]},{"formattedAxisTime":"2 Dec","formattedTime":"2 Dec 2024","formattedValue":["64"],"hasData":[true],"time":"1733097600","value":[64]},{"formattedAxisTime":"3 Dec","formattedTime":"3 Dec 2024","formattedValue":["57"],"hasData":[true],"time":"1733184000","value":[57]},{"formattedAxisTime":"4 Dec","formattedTime":"4 Dec 2024","formattedValue":["61"],"hasData":[true],"time":"1733270400","value":[61]},{"formattedAxisTime":"5 Dec","formattedTime":"5 Dec 2024","formattedValue":["100"],"hasData":[true],"time":"1733356800","value":[100]},{"formattedAxisTime":"6 Dec","formattedTime":"6 Dec 2024","formattedValue":["84"],"hasData":[true],"time":"1733443200","value":[84]},{"formattedAxisTime":"7 Dec","formattedTime":"7 Dec 2024","formattedValue":["79"],"hasData":[true],"time":"1733529600","value":[79]},{"formattedAxisTime":"8 Dec","formattedTime":"8 Dec 2024","formattedValue":["72"],"hasData":[true],"time":"1733616000","value":[72]},{"formattedAxisTime":"9 Dec","formattedTime":"9 Dec 2024","formattedValue":["64"],"hasData":[true],"time":"1733702400","value":[64]},{"formattedAxisTime":"10 Dec","formattedTime":"10 Dec 2024","formattedValue":["64"],"hasData":[true],"time":"1733788800","value":[64]},{"formattedAxisTime":"11 Dec","formattedTime":"11 Dec 2024","formattedValue":["63"],"hasData":[true],"time":"1733875200","value":[63]},{"formattedAxisTime":"12 Dec","formattedTime":"12 Dec 2024","formattedValue":["59"],"hasData":[true],"time":"1733961600","value":[59]},{"formattedAxisTime":"13 Dec","formattedTime":"13 Dec 2024","formattedValue":["54"],"hasData":[true],"time":"1734048000","value":[54]},{"formattedAxisTime":"14 Dec","formattedTime":"14 Dec 2024","formattedValue":["48"],"hasData":[true],"time":"1734134400","value":[48]},{"formattedAxisTime":"15 Dec","formattedTime":"15 Dec 2024","formattedValue":["43"],"hasData":[true],"time":"1734220800","value":[43]},{"formattedAxisTime":"16 Dec","formattedTime":"16 Dec 2024","formattedValue":["48"],"hasData":[true],"time":"1734307200","value":[48]},{"formattedAxisTime":"17 Dec","formattedTime":"17 Dec 2024","formattedValue":["55"],"hasData":[true],"time":"1734393600","value":[55]},{"formattedAxisTime":"18 Dec","formattedTime":"18 Dec 2024","formattedValue":["52"],"hasData":[true],"time":"1734480000","value":[52]},{"formattedAxisTime":"19 Dec","formattedTime":"19 Dec 2024","formattedValue":["63"],"hasData":[true],"time":"1734566400","value":[63]},{"formattedAxisTime":"20 Dec","formattedTime":"20 Dec 2024","formattedValue":["64"],"hasData":[true],"time":"1734652800","value":[64]},{"formattedAxisTime":"21 Dec","formattedTime":"21 Dec 2024","formattedValue":["47"],"hasData":[true],"time":"1734739200","value":[47]},{"formattedAxisTime":"22 Dec","formattedTime":"22 Dec 2024","formattedValue":["44"],"hasData":[true],"time":"1734825600","value":[44]},{"formattedAxisTime":"23 Dec","formattedTime":"23 Dec 2024","formattedValue":["44"],"hasData":[true],"time":"1734912000","value":[44]},{"formattedAxisTime":"24 Dec","formattedTime":"24 Dec 2024","formattedValue":["46"],"hasData":[true],"isPartial":true,"time":"1734998400","value":[46]}]}}
Passo 4: Otimizar o código
- Configurar vários países
Python
country_map = {
"Global": "",
"Afeganistão":"AF",
"Ilhas Aland":"AX",
"Albânia":"AL",
#...
}
- Configurar vários períodos de tempo
Python
time_map = {
"Última hora":"now 1-H",
"Últimas 4 horas":"now 4-H",
"Últimos 7 dias":"now 7-d",
"Últimos 30 dias":"today 1-m",
# ...
}
- Configurar várias categorias
Python
category_map = {
"Todas as categorias": "",
"Artes e Entretenimento": "3",
"Automóveis e Veículos": "47",
# ...
}
- Configurar várias fontes
Python
property_map = {
"Pesquisa na Web":"",
"Pesquisa de Imagens":"images",
"Google Shopping":"froogle",
# ...
}
- Código aprimorado:
Python
import json
import requests
country_map = {
"Global": "",
"Afeganistão": "AF",
"Ilhas Aland": "AX",
"Albânia": "AL",
# ...
}
time_map = {
"Última hora": "now 1-H",
"Últimas 4 horas": "now 4-H",
"Últimos 7 dias": "now 7-d",
"Últimos 30 dias": "today 1-m",
# ...
}
category_map = {
"Todas as categorias": "",
"Artes e Entretenimento": "3",
"Automóveis e Veículos": "47",
# ...
}
property_map = {
"Pesquisa na Web": "",
"Pesquisa de Imagens": "images",
"Google Shopping": "froogle",
# ...
}
class Payload:
def __init__(self, actor, input_data, proxy):
self.actor = actor
self.input = input_data
self.proxy = proxy
def send_request(data_type, search_term, country, time, category, property):
host = "api.scrapeless.com"
url = f"https://{host}/api/v1/scraper/request"
token = "scrapeless-api-key" # TODO:use your api key
headers = {"x-api-token": token}
input_data = {
"q": search_term, # termo de busca
"geo": country,
"date": time,
"cat": category,
"property": property,
"hl": "en-sg",
"tz": "-480",
"data_type": data_type
}
proxy = {
"country": "ANY",
}
payload = Payload("scraper.google.trends", input_data, proxy)
json_payload = json.dumps(payload.__dict__)
response = requests.post(url, headers=headers, data=json_payload, verify=False)
if response.status_code != 200:
print("Erro:", response.status_code, response.text)
return
print("body", response.text)
if __name__ == "__main__":
# um termo de busca
send_request(
data_type="interest_over_time",
search_term="DOGE",
country=country_map["Global"],
time=time_map["Últimos 30 dias"],
category=category_map["Artes e Entretenimento"],
property=property_map["Pesquisa na Web"],
)
# dois termos de busca
send_request(
data_type="interest_over_time",
search_term="DOGE,python",
country=country_map["Global"],
time=time_map["Últimos 30 dias"],
category=category_map["Artes e Entretenimento"],
property=property_map["Pesquisa na Web"],
)
Problemas no processo de extração
- Precisamos fazer julgamentos sobre alguns erros de rede para evitar que erros causem desligamentos;
- Adicionar um certo mecanismo de repetição pode evitar que interrupções no processo de extração causem aquisição de dados duplicados/inválidos.
Testando com a API de extração Scrapeless - o melhor extrator do Google Trends
- Passo 1. Faça login no Scrapeless
- Passo 2. Clique em "API de Extração"

- Passo 3. Encontre nosso painel "Google Trends" e entre nele:

- Passo 4. Configure seus dados no painel de operação esquerdo:

- Passo 5. Clique no botão "Iniciar Extração" e você poderá obter o resultado:

Além disso, você também pode consultar nossos códigos de exemplo.
API do Google Trends Scrapeless: Compreensão Completa
Scrapeless é uma solução inovadora projetada para simplificar o processo de extração de dados de sites. Nossa API foi projetada para navegar pelos ambientes web mais complexos e gerenciar efetivamente o conteúdo dinâmico e a renderização de JavaScript.
Por que o Scrapeless funciona bem para extrair dados do Google Trends?
Se usarmos a codificação Python para extrair dados do Google Trends sozinhos, encontraremos facilmente o sistema de verificação reCAPTHCA. Isso traz grandes desafios para nosso processo de extração.
No entanto, a API de Extração do Google Trends Scrapeless integra o resolvedor de CAPTCHA e a rotação inteligente de IP, portanto, não há necessidade de se preocupar em ser monitorado e identificado pelo site. O Scrapeless garante uma taxa de sucesso de extração de sites de 99,9%, fornecendo um ambiente de extração de dados completamente estável e seguro.
4 vantagens típicas do Scrapeless
- Preço competitivo
O Scrapeless não é apenas poderoso, mas também garante um preço de mercado mais competitivo. O preço da chamada do serviço da API de extração do Google Trends Scrapeless começa em US$ 2 por 1 mil solicitações bem-sucedidas. - Estabilidade
Ampla experiência e sistemas robustos garantem extração confiável e ininterrupta com recursos avançados de resolução de CAPTCHA. - Velocidade
Um grande pool de proxies garante extração eficiente em larga escala sem bloqueios de IP ou atrasos. - Custo-efetivo
A tecnologia proprietária minimiza os custos, permitindo que ofereçamos preços competitivos sem comprometer a qualidade. - Garantia SLAS
Os acordos de nível de serviço garantem desempenho e confiabilidade consistentes para as necessidades empresariais.
FAQs
É legal extrair dados do Google Trends?
Sim, é totalmente legal extrair os dados globais do Google Trends publicamente disponíveis. No entanto, por favor, não danifique seu site enviando muitas solicitações em um curto período de tempo.
O Google Trends é enganoso?
O Google Trends não é um reflexo completo da atividade de pesquisa. O Google Trends filtra certos tipos de pesquisas, como pesquisas realizadas por pouquíssimas pessoas. As tendências mostram dados apenas para termos populares, portanto, termos com baixo volume de pesquisa serão exibidos como "0".
O Google Trends fornece uma API?
Não, o Google Trends ainda não fornece uma API pública. No entanto, você pode acessar os dados do Google Trends por meio de APIs privadas em ferramentas de desenvolvedor de terceiros, como o Scrapeless.
Considerações Finais
O Google Trends é uma ferramenta valiosa de integração de dados que fornece análise de palavras-chave e tópicos de pesquisa populares analisando consultas de pesquisa em mecanismos de pesquisa. Neste artigo, mostramos em detalhes como extrair dados do Google Trends usando Python.
No entanto, a extração de dados do Google Trends usando codificação Python sempre encontra o obstáculo do CAPTCHA. Isso torna sua extração de dados particularmente difícil. Embora a API do Google Trends não esteja disponível, a API do Google Trends Scrapeless será sua ferramenta ideal!
Cadastre-se agora para obter uma poderosa ferramenta de extração do Google Trends!
Na Scrapeless, acessamos apenas dados disponíveis publicamente, cumprindo rigorosamente as leis, regulamentos e políticas de privacidade do site aplicáveis. O conteúdo deste blog é apenas para fins de demonstração e não envolve quaisquer atividades ilegais ou infratoras. Não oferecemos garantias e nos isentamos de qualquer responsabilidade pelo uso de informações deste blog ou de links de terceiros. Antes de se envolver em qualquer atividade de scraping, consulte seu consultor jurídico e revise os termos de serviço do site de destino ou obtenha as permissões necessárias.