返回博客
指南
Andrei Ogiolan2023年2月23日阅读时间:6分钟

学习如何使用 Node.js 抓取 Google 购物的产品规格

学习如何使用 Node.js 抓取 Google 购物的产品规格

为何应使用专业爬虫工具而非自行开发?

在进行网页抓取时,许多人会想自己开发抓取方案。然而,使用专业的抓取工具通常是更好的选择。专业的抓取工具由经验丰富的开发人员构建和维护,他们深谙网页抓取的复杂性。这些工具专为应对抓取过程中的挑战而设计,例如验证码、IP封禁以及网站改版。此外,它们还内置了定时任务、数据导出和错误处理等功能。

另一个重要方面是,专业爬虫服务商严格遵守目标网站的抓取政策,并能确保数据使用的合法性——这一点在进行数据抓取时至关重要。

使用专业爬虫工具可节省时间、精力和成本。此外,专业爬虫工具配备了丰富功能,支持大规模爬取、任务排程,甚至可通过代理和VPN进行爬取以规避IP封禁。总而言之,使用专业爬虫工具不仅能节省时间和精力,还能提供更准确可靠的数据,是满足任何网页爬取需求的明智之选。

最后,就我们的具体情况而言,Google Shopping 经常更改其 CSS 类,这要求您进行大量手动更新,尤其在构建更复杂的爬虫时,这会非常耗时。幸运的是,像我们这样的专业爬虫可以解决这个问题,您无需再进行这些更新即可正确获取数据。

什么是 Google 购物产品规格?

Google 购物产品规格指的是在 Google 购物上所列产品的技术细节和信息。这包括产品名称、价格、品牌、图片、描述等详细信息。这些规格可以提供有关产品功能和特性的宝贵见解,可用于就购买或销售该产品做出明智的决策。例如,通过比较类似产品的规格,消费者可以做出明智的选择,确定哪款产品最符合他们的需求。

从 Google 购物抓取产品规格数据可应用于多种场景。例如,电子商务企业可利用这些数据分析竞争对手,并就定价、产品组合及营销活动制定战略决策。零售商也可利用这些信息识别产品线中的缺口,并据此决定应进货哪些产品。此外,研究人员和分析师可利用这些数据研究消费者行为和市场趋势。

我们的目标是什么?

Google Shopping compare buying options table with multiple sellers and visit site buttons

环境搭建

在使用我们的 API 开始抓取 Google 购物产品规格之前,必须确保已正确配置相关工具。主要要求是安装 Node.js——这是一种允许在服务器端执行 JavaScript 的运行时环境,可从其官方网站下载。

此外,还需要一个 API 密钥,您可通过在此处创建账户并激活 SERP 服务来获取。

配置好 Node.js 并获取 API 密钥后,下一步是创建一个 Node.js 脚本文件。可通过运行以下命令实现:

$ touch scraper.js 

现在将以下内容粘贴到文件中:

console.log("Hello World!")

然后运行以下命令:

$ node scraper.js

如果终端上显示“Hello World!”消息,则表示 Node.js 已成功安装,现在您可以继续进行实际的抓取操作了。

开始抓取 Google 购物产品规格

环境配置完成后,您就可以使用我们的 API 开始抓取 Google 购物产品详情了。这是一个简单的过程,除了上述内容外,您只需获取您感兴趣的产品的产品 ID 即可。

提示:以下是从 Google 购物中获取商品 ID 的方法:

Google Shopping product page with highlighted URL and a smart TV listing with price comparison panel

现在 Node.js、API 密钥和商品 ID 均已准备就绪,您可以开始抓取数据了。要立即开始,请创建一个 js 文件(或使用上一节中创建的文件),并导入 Node.js 内置的 `https` 模块,该模块可让您向我们的 API 发送请求。具体操作如下:

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

其次,您需要指定您的 API 密钥以及目标商品的 `product_id` 属性:

const API_KEY = "YOUR-API-KEY-HERE" // You can obtain one by registering here

const PRODUCT_ID = "11607214845071611155"

接下来,您需要将这些信息封装在 options 对象中,以便让我们的 API 知道您要抓取的是哪款产品:

const options = {

 "method": "GET",

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

 "port": null,

 "path": `/v1?engine=google_product&api_key=${API_KEY}&product_id=${PRODUCT_ID}`,

 "headers": {}

};

最后,您需要使用所有这些信息设置对我们 API 的调用:

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 results = JSON.parse(body.toString());

   const product_specs = results.specs_results;

   console.log(product_specs)

 });

});

req.end();

现在您只需执行创建的脚本并等待结果即可:

​​$ node scraper.js

此时您应已收到结果:

{

  display: {

    native_aspect_ratio: '16:9',

    screen_shape: 'Flat',

    led_backlighting_type: 'Direct-LED',

    display_technology: 'LCD',

    display_resolution: '1920 x 1080 pixels'

  }

}

就这样!您已成功通过我们的 API 抓取了 Google 购物的产品规格,现在可以将获取的数据用于价格比较、市场调研、SEO 优化等多种用途。如需进一步参考资料以及其他六种编程语言的代码示例,请查阅我们的 Google 产品 API 文档

Google 产品规格的局限性

使用 Google 购物产品规格时的一个局限性在于,数据未必总是完整或最新的。并非所有零售商和制造商都会在 Google 购物上列出其产品,或者他们可能未提供所有必要的信息。 此外,部分数据可能存在不准确或过时的情况。这会导致抓取数据出现不一致和不准确之处,进而对基于这些数据进行的任何分析或研究结果产生负面影响。此外,Google 一直在致力于检测和阻止抓取行为,因此随着时间的推移,抓取过程可能会失败或变得更加困难,但使用像我们这样的专业抓取工具可以帮助您克服这一问题。

结论

综上所述,利用 Node.js 抓取 Google 购物的产品规格数据,对于希望深入了解特定市场产品及趋势的企业和研究人员而言,是一项强大的工具。通过使用 Node.js、API 密钥和产品 ID,可以轻松快速地从 Google 购物中收集大量产品规格数据。

关于作者
Andrei Ogiolan, 全栈开发工程师 @ WebScrapingAPI
Andrei Ogiolan全栈开发工程师

安德烈·奥吉奥兰(Andrei Ogiolan)是 WebScrapingAPI 的全栈开发工程师,他在产品各领域均有贡献,并协助为该平台构建可靠的工具和功能。

开始构建

准备好扩展您的数据收集规模了吗?

加入2,000多家企业,使用WebScrapingAPI在无需任何基础设施开销的情况下,以企业级规模提取网络数据。