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.