Voltar ao blogue
Guias
Andrei OgiolanLast updated on Mar 31, 20267 min read

Como extrair comentários do Google Maps

Como extrair comentários do Google Maps

Introdução

O Google Maps é um dos serviços de mapas e navegação mais utilizados no mundo, proporcionando aos utilizadores uma forma fácil de encontrar e explorar locais, empresas e pontos de interesse. Uma das principais funcionalidades do Google Maps é a capacidade de pesquisar locais e visualizar informações detalhadas sobre os mesmos, tais como a sua localização, avaliações, fotografias e muito mais.

Extrair estes dados do Google Maps pode ser útil para as empresas acompanharem e analisarem o desempenho das suas localizações, para os investigadores estudarem padrões no comportamento dos consumidores e para os indivíduos encontrarem e explorarem novos locais.

O objetivo deste artigo é fornecer um guia passo a passo sobre como extrair as avaliações do Google Maps com a nossa API utilizando Node.js. Abordaremos tudo, desde a configuração do ambiente de desenvolvimento até à extração de dados relevantes e à discussão de potenciais problemas. No final deste artigo, terá o conhecimento e as ferramentas necessárias para extrair os resultados de locais do Google Maps por conta própria.

Por que razão deve utilizar um scraper profissional em vez de criar o seu próprio?

Utilizar um scraper profissional pode ser uma opção melhor do que criar o seu próprio por várias razões. Em primeiro lugar, os scrapers profissionais são concebidos para lidar com uma grande variedade de tarefas de scraping e estão otimizados para desempenho, fiabilidade e escalabilidade. São projetados para lidar com grandes quantidades de dados e podem lidar com vários tipos de websites e tecnologias web. Isto significa que os scrapers profissionais podem frequentemente extrair dados de forma mais rápida e precisa do que um scraper personalizado.

Além disso, os scrapers profissionais vêm frequentemente com funcionalidades integradas, tais como resolução de CAPTCHA, rotação de IP e tratamento de erros, o que pode tornar o processo de scraping mais eficiente e menos propenso a erros. Oferecem também suporte e documentação, o que pode ser útil quando se depara com algum problema.

Outro aspeto importante é que os fornecedores de scrapers profissionais cumprem as políticas de scraping dos sites que rastreiam e podem garantir a utilização legal dos dados, o que é importante ter em conta ao extrair dados.

Por fim, no nosso caso específico, para extrair as avaliações do Google Maps e obter os melhores resultados, é necessário passar um parâmetro data_id para a sua URL do Google. Este parâmetro tem normalmente um aspeto semelhante a este: 0x87c0ef253b04093f:0xafdfd6dc1d3a2b4e. Sei que isto pode parecer intimidante à primeira vista, pois pode não ter ideia de como obter a propriedade data_id para um local específico, e tem razão, porque o Google oculta esta informação e ela não é visível na página quando procura um local no Google Maps. Mas, felizmente, utilizar um scraper profissional como o nosso resolve isso, encontrando esses dados por si. Falaremos nas secções seguintes sobre como obter o data_id e como extrair as avaliações do Google Maps utilizando a nossa API.

Definir o nosso alvo

O que são as avaliações do Google Maps?

As avaliações do Google Maps são as classificações e comentários deixados pelos utilizadores no Google Maps sobre um local específico. Estas avaliações incluem informações como o nome do utilizador, a data em que a avaliação foi deixada, a classificação atribuída e o texto da avaliação.

Extrair avaliações do Google Maps pode ser útil para empresas que desejam acompanhar e analisar o desempenho das suas localizações, investigadores que desejam estudar padrões no comportamento do consumidor e indivíduos que desejam encontrar e explorar novos locais. Ao extrair os dados das avaliações, as empresas podem identificar os pontos fortes e fracos das suas localizações e fazer melhorias em conformidade. Os investigadores podem estudar o sentimento das avaliações e identificar padrões no comportamento dos consumidores. Os particulares também podem utilizar esta informação para tomar decisões sobre onde ir e o que fazer.

Como é o nosso alvo?

Configuração

Antes de começar a extrair as avaliações do Google Maps, é importante ter as ferramentas necessárias instaladas. O requisito principal é o Node.js, um ambiente de execução de JavaScript que permite a execução de JavaScript no lado do servidor, que pode ser descarregado a partir do seu site oficial. Além disso, é necessária uma chave API, que pode ser obtida criando uma conta aqui e ativando o serviço SERP.

Depois de configurar o Node.js e obter uma chave API, o próximo passo é criar um ficheiro de script Node.js. Isto pode ser feito executando o seguinte comando:

$ touch scraper.js

E agora cole a seguinte linha no seu ficheiro:

console.log("Hello World!")

E execute o seguinte comando:

$ node scraper.js

Se vir a mensagem «Hello World!» exibida no terminal, isso indica que o Node.js foi instalado com sucesso e que está pronto para avançar para o passo final. Este passo final consiste em obter o Place ID do local cujas avaliações pretende extrair. É aqui que a nossa API se torna útil, pois é fácil de usar e não requer a instalação de quaisquer bibliotecas adicionais.

Em primeiro lugar, num ficheiro js, precisa de importar o módulo integrado `https` do Node.js para poder enviar pedidos à nossa API. Isto pode ser feito da seguinte forma:

​​const https = require("https");

Em segundo lugar, tem de especificar a sua chave API, um termo de pesquisa e as coordenadas do local que lhe interessa:

const API_KEY = "<YOUR-API-KEY-HERE>" // You can get by creating an account - https://app.webscrapingapi.com/register

const query = "Waldo%20Pizza"

const coords = "@38.99313451901278,-94.59368586441806"

Dica: É assim que obtém as coordenadas de um local no Google Maps:

O próximo passo é incluir o ID do local obtido num objeto de opções, para que a nossa API saiba quais as avaliações de que local pretende extrair:

const options = {

  "method": "GET",

  "hostname": "serpapi.webscrapingapi.com",

  "port": null,

  "path": `/v1?engine=google_maps&api_key=${API_KEY}&type=search&q=${query}&ll=${coords}`,

  "headers": {}

};

Em seguida, tem agora de configurar uma chamada à nossa API com toda esta informação:

const req = https.request(options, function (res) {

 const chunks = [];

 res.on("data", function (chunk) {

   chunks.push(chunk);

 });

 res.on("end", function () {

   const body = Buffer.concat(chunks);

   const response = JSON.parse(body.toString());

   const data_id = response.place_results.data_id;

   if (data_id) {

       console.log(data_id);

   }

   else {

       console.log('We could not find a data_id property for your query. Please try using another query')

   }

 });

});

req.end();

Por último, pode executar o script que acabou de criar e aguardar que os resultados sejam devolvidos:

​​$ node scraper.js

E deverá ver a propriedade data_id a ser apresentada no ecrã:

$ ​​0x87c0ef253b04093f:0xafdfd6dc1d3a2b4es

Isso conclui o processo de configuração. Com a propriedade data_id, agora tem todas as informações necessárias para criar um scraper para as avaliações do Google Maps utilizando a nossa API com o Node.js.

Vamos começar a extrair as avaliações do Google

Com o ambiente configurado, está pronto para começar a extrair as avaliações do Google Maps com a nossa API. Para prosseguir, precisa de configurar o parâmetro data, tal como mencionado anteriormente. Com todas as informações necessárias disponíveis, pode configurar o parâmetro data_id da seguinte forma:

const data_id = "0x87c0ef253b04093f:0xafdfd6dc1d3a2b4e" // the data_id we retrieved earlier

Agora, a única coisa que resta fazer é modificar o objeto options, indicando assim à nossa API que pretende extrair avaliações do Google Maps:

const options = {

  "method": "GET",

  "hostname": "serpapi.webscrapingapi.com",

  "port": null,

  "path": `/v1?engine=google_maps_reviews&api_key=${API_KEY}&data_id=${data_id}`, // there is no need in having a query anymore, data_id is enough to identify a place

  "headers": {}

};

E isto é tudo o que precisa de fazer. O seu script deverá agora ter este aspeto:

const http = require("https");

const API_KEY = "<YOUR-API-KEY-HERE>"

const data_id = "0x87c0ef253b04093f:0xafdfd6dc1d3a2b4e" // the data_id we retrieved earlier

const options = {

  "method": "GET",

  "hostname": "serpapi.webscrapingapi.com",

  "port": null,

  "path": `/v1?engine=google_maps_reviews&api_key=${API_KEY}&data_id=${data_id}`, // there is no need in having a query anymore, data_id is enough to identify a place

  "headers": {}

};

const req = http.request(options, function (res) {

  const chunks = [];

  res.on("data", function (chunk) {

    chunks.push(chunk);

  });

  res.on("end", function () {

    const body = Buffer.concat(chunks);

    const response = JSON.parse(body.toString())

    console.log(response);

  });

});

req.end();

Após executar este script, deverá receber uma resposta semelhante a esta:

reviews: [

    {

      link: 'https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sChZDSUhNMG9nS0VJQ0FnSUMyem9pOEdBEAE!2m1!1s0x0:0xafdfd6dc1d3a2b4e!3m1!1s2@1:CIHM0ogKEICAgIC2zoi8GA%7CCgwI1vuBkwYQiKeWyQE%7C?hl=en-US',

      date: '8 months ago',

      rating: 5,

      snippet: 'Wow, if you have dietary restrictions this is absolutely the place to go! Both for the variety of restrictions they cater to as well as the taste of the dishes.The good: great tasting food. Very conscious of dietary restrictions which include multiple types of vegan cheeses as well as gluten free. Decent drink selection.The meh: service is nice but a touch slow. Maybe understaffed? Prices are average for pizzas.The bad: noneFeatures: Did not see any masks on anyone inside. Unsure of cleaning practices so I cannot speak to that.Dine in: Yes\n' +

        'Takeout: Yes\n' +

        'Curbside pickup: YesWow, if you have dietary restrictions this is absolutely the place to go! Both for the variety of restrictions they cater to as well as the taste of the dishes. ...More',

      likes: 3,

      user: [Object],

      images: [Array]

    },

    {

      link: 'https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sChZDSUhNMG9nS0VJQ0FnSURXOUxHSUl3EAE!2m1!1s0x0:0xafdfd6dc1d3a2b4e!3m1!1s2@1:CIHM0ogKEICAgIDW9LGIIw%7CCgwI3OnIkQYQwLGL1gM%7C?hl=en-US',

      date: '9 months ago',

      rating: 5,

      snippet: "We love Waldo Pizza! We have dairy allergies and Waldo offers a wide range of vegan cheeses as well as a ton of different toppings. The vegan dessert here is always excellent as well, super rich in flavor. Of course the traditional pizza, pasta and dessert are also amazing! It's great to have both options under one roof!Dine in: Yes\n" +

        'Outdoor seating: No ...More',

      likes: 1,

      user: [Object],

      images: [Array]

    }

    . . . 

]    

E é isso! Conseguiu extrair com sucesso as avaliações do Google Maps utilizando a nossa API e agora pode utilizar os dados obtidos para vários fins, tais como análise de dados, análise de negócios, aprendizagem automática e muito mais. Para mais informações e exemplos de código em outras 6 linguagens de programação, pode consultar a nossa documentação sobre avaliações do Google Maps.

Limitações das avaliações do Google Maps

Embora a utilização de um scraper profissional para extrair avaliações do Google Maps possa ser mais eficiente e precisa do que criar o seu próprio scraper, existem ainda algumas limitações a ter em conta. Uma limitação é que alguns scrapers profissionais podem ter limites de utilização, o que significa que só pode extrair um determinado número de avaliações por dia ou por mês. Outra limitação é que alguns scrapers profissionais podem não ser capazes de contornar bloqueios de IP ou CAPTCHAs, o que pode dificultar a extração de grandes quantidades de dados sem encontrar erros. Felizmente, na WebScrapingAPI, temos proxies residenciais que alternam os endereços IP, garantindo assim a sua proteção e eliminando a preocupação de ser banido ou ter a sua taxa limitada. Uma coisa que deve ter em mente é que as avaliações do Google Maps são geralmente em linguagem natural, o que pode torná-las difíceis de analisar e interpretar sem o uso de técnicas de processamento de linguagem natural.

Conclusão

Em conclusão, a extração de comentários do Google Maps pode ser uma ferramenta valiosa para empresas, investigadores e particulares. Permite-lhe recolher dados em grande escala e analisá-los para diversos fins. No entanto, é importante ter em mente que existem limitações à extração de comentários do Google Maps, incluindo limites de utilização, CAPTCHAs, bloqueios de IP e o processamento de linguagem natural. A utilização de um scraper profissional pode tornar o processo mais eficiente e preciso e pode livrá-lo de algumas dessas limitações. Em geral, a extração de avaliações do Google Maps pode fornecer informações úteis, mas é importante abordá-la com cautela e cuidado.

Sobre o autor
Andrei Ogiolan, Desenvolvedor Full Stack @ WebScrapingAPI
Andrei OgiolanDesenvolvedor Full Stack

Andrei Ogiolan é um programador Full Stack na WebScrapingAPI, contribuindo em todas as áreas do produto e ajudando a criar ferramentas e funcionalidades fiáveis para a plataforma.

Comece a construir

Pronto para expandir a sua recolha de dados?

Junte-se a mais de 2.000 empresas que utilizam a WebScrapingAPI para extrair dados da Web à escala empresarial, sem quaisquer custos de infraestrutura.