Como extrair comentários do Google Maps na Web

Andrei Ogiolan em Abr 21 2023

imagem do blogue

Introdução

O Google Maps é um dos serviços de mapeamento e navegação mais utilizados em todo o 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, críticas, fotografias e muito mais.

A recolha destes 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 de comportamento dos consumidores e para as pessoas encontrarem e explorarem novos locais.

O objetivo deste artigo é fornecer um guia passo-a-passo sobre como extrair comentários do Google Maps com a nossa API utilizando Node.js. Cobriremos tudo, desde a configuração do ambiente de desenvolvimento até a extração de dados relevantes e a discussão de possíveis 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 raspador profissional em vez de construir o seu?

Utilizar um scraper profissional pode ser uma melhor opção do que criar o seu próprio scraper por várias razões. Em primeiro lugar, os scrapers profissionais são construídos para lidar com uma grande variedade de tarefas de scraping e são optimizados para desempenho, fiabilidade e escalabilidade. São concebidos para lidar com grandes quantidades de dados e podem lidar com vários tipos de sítios Web e tecnologias Web. Isto significa que os scrapers profissionais podem frequentemente extrair dados mais rapidamente e com maior precisão do que um scraper personalizado.

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

Outro aspeto importante é o facto de os fornecedores de scrapers profissionais cumprirem as políticas de recolha de dados dos sítios Web que recolhem e poderem fornecer uma utilização legal dos dados, o que é importante ter em conta quando se recolhem dados.

Por fim, no nosso caso específico, para extrair as avaliações do Google Maps, para obter melhores resultados, é necessário passar um parâmetro data_id para o URL do Google. Este parâmetro tem normalmente o seguinte aspeto: 0x87c0ef253b04093f:0xafdfd6dc1d3a2b4e. Sei que isto pode parecer intimidante no início, 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 não é visível na página quando está a pesquisar um local no Google Maps. Mas, felizmente, a utilização de um scraper profissional como o nosso trata disso, encontrando estes dados para si. Nas secções seguintes, falaremos sobre como obter o data_id e como extrair as avaliações do Google Maps utilizando a nossa API.

Definição do nosso objetivo

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

As avaliações do Google Maps são as classificações e os 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.

A recolha de comentários do Google Maps pode ser útil para empresas que pretendam acompanhar e analisar o desempenho das suas localizações, investigadores que pretendam estudar padrões de comportamento dos consumidores e indivíduos que pretendam 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 efetuar melhorias em conformidade. Os investigadores podem estudar o sentimento das críticas e encontrar padrões no comportamento dos consumidores. Os indivíduos também podem utilizar esta informação para tomar decisões sobre onde ir e o que fazer.

Como é que é o nosso objetivo?

imagem do blogue

Configuração

Antes de começar a extrair os comentários do Google Maps, é importante ter as ferramentas necessárias. O principal requisito é o Node.js, um tempo de execução de JavaScript que permite a execução de JavaScript no lado do servidor, que pode ser descarregado do site oficial. Além disso, é necessária uma API KEY, que pode ser obtida criando uma conta aqui e activando o serviço SERP.

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

$ touch scraper.js 

E agora cole a seguinte linha no seu ficheiro:

consola.log("Hello World!")

E, em seguida, execute o seguinte comando:

$ node scraper.js

Se vir a mensagem "Hello World!" apresentada no terminal, isso indica que o Node.js foi instalado com êxito e que está pronto para avançar para o passo final. Este último passo consiste em obter o ID do local em que está interessado em recolher críticas. É aqui que a nossa API é útil, pois é fácil de utilizar e não requer a instalação de quaisquer bibliotecas adicionais.

Em primeiro lugar, num ficheiro js é necessário importar o módulo `https` do Node.js para poder enviar pedidos à nossa API. Isso pode ser feito da seguinte forma:

const https = require("https");

Em segundo lugar, é necessário especificar a sua chave API, um termo de pesquisa e as coordenadas do local em que está interessado:

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"

Sugestão: é assim que obtém as coordenadas de um local no Google Maps:

imagem do blogue

O passo seguinte consiste em incluir o ID do local obtido num objeto de opções, para que a nossa API saiba quais as avaliações do local que pretende recolher:

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": {}

};

De seguida, é necessário configurar uma chamada para a nossa API com todas estas informações:

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 fim, pode executar o script que acabou de criar e aguardar que os resultados sejam devolvidos:

$ node scraper.js

A propriedade data_id deve ser impressa no ecrã:

$ ​​0x87c0ef253b04093f:0xafdfd6dc1d3a2b4es

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

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

Com o ambiente configurado, está pronto para começar a extrair comentários do Google Maps com a nossa API. Para prosseguir, é necessário configurar o parâmetro de dados conforme mencionado anteriormente. Com todas as informações necessárias disponíveis, é possível configurar o parâmetro data_id da seguinte forma:

const data_id = "0x87c0ef253b04093f:0xafdfd6dc1d3a2b4e" // o data_id que obtivemos anteriormente

Agora, a única coisa que falta fazer é modificar o objeto options, informando assim a nossa API de que gostaria de recolher críticas 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 teu guião deve agora ter o seguinte 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();

Depois de executar este script, deve 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 já está! Conseguiu extrair com sucesso as avaliações do Google Maps utilizando a nossa API e pode agora utilizar os dados obtidos para vários fins, tais como análise de dados, análise empresarial, aprendizagem automática e muito mais. Para mais referências e exemplos de código noutras 6 linguagens de programação, pode consultar a nossa documentação sobre as avaliações do Google Maps.

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

Apesar de a utilização de um raspador profissional para extrair críticas do Google Maps poder ser mais eficiente e precisa do que criar o seu próprio raspador, existem ainda algumas limitações a ter em conta. Uma limitação é o facto de alguns scrapers profissionais poderem ter limites de utilização, o que significa que só pode extrair um determinado número de comentários 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 dispomos de proxies residenciais que rodam os endereços IP, dando-lhe assim cobertura e eliminando a preocupação de ser banido ou de ter uma taxa limitada. Uma coisa que você 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 recolha de comentários do Google Maps pode ser uma ferramenta valiosa para empresas, investigadores e indivíduos. Permite-lhe recolher dados em grande escala e analisá-los para vários fins. No entanto, é importante ter em conta que existem limitações à recolha de comentários do Google Maps, incluindo limites de utilização, CAPTCHAs e bloqueios de IP e processamento de linguagem natural. A utilização de um raspador profissional pode tornar o processo mais eficiente e preciso e pode livrá-lo de algumas das limitações. De um modo geral, o raspagem de comentários do Google Maps pode fornecer informações úteis, mas é importante abordá-lo com cautela e cuidado.

Notícias e actualizações

Mantenha-se atualizado com os mais recentes guias e notícias sobre raspagem da Web, subscrevendo a nossa newsletter.

We care about the protection of your data. Read our <l>Privacy Policy</l>.Privacy Policy.

Artigos relacionados

miniatura
GuiasAPI SERP Scraping - Guia de início

Recolha sem esforço dados em tempo real dos motores de busca utilizando a API SERP Scraping. Melhore a análise de mercado, SEO e pesquisa de tópicos com facilidade. Comece hoje mesmo!

WebscrapingAPI
avatar do autor
WebscrapingAPI
7 min. de leitura
miniatura
GuiasAs 7 melhores APIs SERP do Google (gratuitas e pagas)

As 7 principais APIs SERP do Google comparadas: WebScrapingAPI, Apify, Serp API e mais - Melhor relação custo-benefício, recursos, prós e contras

Andrei Ogiolan
avatar do autor
Andrei Ogiolan
10 min. de leitura
miniatura
GuiasComo usar um proxy com o Node Fetch e criar um Web Scraper

Saiba como usar proxies com node-fetch, um cliente HTTP JavaScript popular, para criar raspadores da Web. Entenda como os proxies funcionam na raspagem da Web, integre proxies com node-fetch e crie um raspador da Web com suporte a proxy.

Mihnea-Octavian Manolache
avatar do autor
Mihnea-Octavian Manolache
8 min. de leitura