导言
谷歌地图是世界上使用最广泛的地图和导航服务之一,为用户提供了查找和探索地点、企业和兴趣点的简便方法。谷歌地图的主要功能之一是搜索地点并查看其详细信息,如位置、评论、照片等。
从谷歌地图抓取这些数据,有助于企业追踪和分析其各门店的运营情况,有助于研究人员研究消费者行为模式,也有助于个人发现和探索新去处。
本文旨在提供一份分步指南,介绍如何使用 Node.js通过我们的 API抓取 Google 地图上的评论。我们将涵盖从搭建开发环境到提取相关数据,以及讨论潜在问题等所有内容。读完本文后,您将掌握独立抓取 Google 地图地点结果所需的知识和工具。
为什么要使用专业铲运机而不是自制铲运机?
出于以下几个原因,使用专业搜索器可能比创建自己的搜索器更好。首先,专业搜刮工具是为处理各种搜刮任务而设计的,并针对性能、可靠性和可扩展性进行了优化。它们专为处理大量数据而设计,可以处理各种类型的网站和网络技术。这意味着,专业的刮擦工具通常能比定制的刮擦工具更快、更准确地提取数据。
此外,专业的搜索工具通常具有验证码解锁、IP 轮换和错误处理等内置功能,可以使搜索过程更高效、更不易出错。它们还提供支持和文档,在您遇到任何问题时都会有所帮助。
另一个重要方面是,专业的搜刮工具提供商必须遵守其搜刮网站的搜刮政策,并能合法使用数据,这一点在搜刮数据时必须牢记。
最后,就我们这个具体案例而言,为了从 Google 地图评论中抓取数据并获得最佳效果,您需要在 Google URL 中传入一个 data_id 参数。该参数通常如下所示:0x87c0ef253b04093f:0xafdfd6dc1d3a2b4e。 我知道这听起来可能让人望而生畏,因为您可能不知道如何获取特定地点的 data_id 属性,而您的担忧确实有道理——Google 隐藏了这一信息,当您在 Google 地图中搜索地点时,页面上并不会显示该信息。但幸运的是,使用像我们这样的专业爬虫工具可以为您解决这个问题,它会自动为您找到这些数据。 在后续章节中,我们将详细讲解如何获取 data_id,以及如何利用我们的 API 抓取 Google 地图上的评论。
确定我们的目标
什么是谷歌地图评论?
Google 地图上的评论是指用户在 Google 地图上针对特定地点留下的评分和评论。这些评论包含用户姓名、评论日期、给出的评分以及评论内容等信息。
抓取谷歌地图上的评论对希望追踪和分析门店表现的企业、希望研究消费者行为模式的研究人员,以及希望寻找和探索新去处的个人而言都大有裨益。通过提取评论数据,企业可以识别门店的优缺点,并据此进行改进。 研究人员可以分析评论的情感倾向,并从中发现消费者行为的规律。个人用户也可以利用这些信息来决定去哪里以及做什么。
我们的目标是什么样子的?

设置
在开始抓取谷歌地图评论之前,务必确保已准备好必要的工具。首要条件是安装 Node.js——这是一种支持在服务器端执行 JavaScript 的运行时环境,可从其官方网站下载。此外,还需要一个 API 密钥,您可通过在此处注册账户并激活 SERP 服务来获取。
设置好 Node.js 并获得 API KEY 后,下一步就是创建 Node.js 脚本文件。运行以下命令即可完成:
$ touch scraper.js
然后将下面一行粘贴到文件中:
console.log("Hello World!")
然后运行以下命令
$ node scraper.js
如果终端上显示了“Hello World!”这条消息,说明 Node.js 已成功安装,您可以继续进行最后一步。最后一步是获取您想抓取评论的场所的场所 ID。这时我们的 API 就派上用场了,它使用简单,且无需安装任何额外的库。
首先,您需要在 js 文件中导入 Node.js `https` 内置模块,以便能够向我们的 API 发送请求。具体方法如下:
const https = require("https");
其次,您需要指定您的 API 密钥、搜索词和您感兴趣的地点的坐标:
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"
提示:以下是在谷歌地图上获取地点坐标的方法:

下一步是将获取到的地点 ID 添加到 options 对象中,以便让我们的 API 知道您想要抓取哪个地点的评论:
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": {}
};
接下来,您需要将所有这些信息调用到我们的应用程序接口:
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();
最后,您可以运行刚刚创建的脚本,并等待结果返回:
$ node scraper.js
然后,屏幕上就会打印出 data_id 属性:
$ 0x87c0ef253b04093f:0xafdfd6dc1d3a2b4es
至此,设置过程已完成。有了 data_id 属性,您现在已具备所有必要信息,可以使用 Node.js 通过我们的 API创建一个用于抓取 Google 地图评论的爬虫。
让我们开始抓取谷歌评论吧
环境配置完成后,您就可以开始使用我们的 API 抓取 Google 地图评论了。接下来,您需要按照之前提到的方法设置 data 参数。在准备好所有必要信息后,您可以按以下方式设置 data_id 参数:
const data_id = "0x87c0ef253b04093f:0xafdfd6dc1d3a2b4e" // 之前获取的 data_id
现在,唯一需要做的就是修改选项对象,从而告知我们的 API 您希望从 Google 地图抓取评论:
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 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();
执行此脚本后,您应收到类似于以下的响应:
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]
}
. . .
]
就这样!您已成功通过我们的API抓取了 Google 地图上的评论,现在可以将获取的数据用于数据分析、商业分析、机器学习等多种用途。如需进一步参考或查看其他 6 种编程语言的代码示例,请查阅我们的 Google 地图评论文档。
Google 地图评论的局限性
尽管使用专业的爬虫工具来提取谷歌地图上的评论,比自行开发爬虫工具更高效、更准确,但仍需注意一些局限性。其中一个局限是,某些专业爬虫工具可能设有使用限制,这意味着您每天或每月只能抓取一定数量的评论。 另一个限制是,部分专业爬虫可能无法绕过IP封禁或验证码(CAPTCHA),这会导致在提取大量数据时难以避免错误。幸运的是,WebScrapingAPI提供可轮换IP地址的住宅代理,从而为您提供全面保障,免除被封禁或受速率限制的担忧。 您需要注意的一点是,Google 地图上的评论通常采用自然语言撰写,若不借助自然语言处理技术,将难以对其进行分析和解读。
结论
总而言之,抓取谷歌地图评论对企业、研究人员和个人而言都是一种有价值的工具。它能帮助您大规模收集数据,并针对不同目的进行分析。不过,需要注意的是,抓取谷歌地图评论存在一些限制,包括使用限制、验证码、IP封禁以及自然语言处理等问题。 使用专业的爬虫工具可以提高操作效率和准确性,并帮助您克服部分限制。总体而言,抓取谷歌地图评论虽能提供有用的信息,但操作时务必谨慎小心。




