返回博客
指南
Andrei OgiolanLast updated on Mar 31, 20261 min read

如何使用 Node.js 抓取 Google 购物中的附近卖家信息

如何使用 Node.js 抓取 Google 购物中的附近卖家信息

本文将指导您使用 Node.js 配合我们的 API 从 Google 购物中提取附近商家。具体步骤包括搭建开发环境、抓取相关数据,以及探讨您可能遇到的问题。完成本教程后,您将掌握必要的知识和工具,能够独立从 Google 购物中抓取附近商家。在深入探讨技术细节之前,了解什么是 Google 购物至关重要。

Google Shopping 是一个允许消费者搜索并比较来自各类在线零售商产品的平台。该平台展示种类繁多的商品及其价格,是用户寻找最优优惠的便捷工具。借助网络爬虫技术,我们可以从 Google Shopping 中提取附近卖家等有价值的数据,从而获得洞察并做出明智的决策。

为何要使用专业的网页抓取工具?

自行开发网络爬虫可能既耗时又复杂。这不仅需要扎实的编程基础,还需对网络爬取技术和相关技术有深入的理解。对于没有网络爬取背景的人来说,这可能是一项艰巨的任务,而构建一个能正常运行的爬虫所需的时间和资源,可能并不值得投入。

另一方面,使用像我们这样的专业爬虫工具则具有多重优势。 首先,专业爬虫由该领域的专家开发和维护,确保其始终采用最新的技术和方法。这意味着它们更有可能应对现代网络的复杂性,例如验证码和动态网页。此外,专业爬虫通常内置自动IP轮换等功能,有助于防止您的IP被所爬取的网站封禁。

使用专业爬虫的另一大优势在于,它能为您节省大量时间和资源。 与其花费数周甚至数月时间自行开发爬虫,您不妨在此注册账号订阅我们的爬虫服务,立即开始抓取。这对需要快速提取数据以做出明智决策的企业,以及希望为个人项目抓取数据但无暇或无力自行开发爬虫的个人用户而言,尤为有益。

什么是 Google 购物“附近卖家”?

Google 购物“附近卖家”是一项允许用户查找销售特定产品的附近零售店的功能。该功能在 Google 购物网站和移动应用上均可使用,用户可通过搜索产品查看销售该产品的附近卖家列表。这些信息包括店铺名称、距离、地址,以及店铺当前的营业状态(营业或关闭)。

对希望深入了解本地零售市场的企业和个人而言,抓取 Google 购物“附近卖家”数据大有裨益。通过抓取这些数据,企业可以更深入地了解所在地区的竞争状况,并据此调整定价和库存策略。 此外,企业还可利用这些数据发掘新的销售机会,例如主动联系目前尚未销售其产品的店铺。对于个人用户而言,抓取Google购物“附近卖家”数据是寻找最优惠商品以及定位最近店铺的实用工具。

我们的目标是什么?

配置

若要使用我们的 API 从 Google 购物抓取附近卖家信息,您需要准备好相应的工具。首先,您必须安装 Node.js。这是一个允许在服务器端运行 JavaScript 的运行时环境,可从 Node.js 官方网站下载。

此外,您还需要一个 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 的方法:

完成 Node.js 安装、获取 API 密钥并获取商品 ID 后,您已准备好开始抓取。接下来,请创建一个新的 JavaScript 文件或使用之前创建的文件,并导入 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 = "4887235756540435899"

接下来,您需要将这些信息作为选项对象传递,以便让我们的 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 nearbySellers = results.sellers_results.online_sellers;

    console.log(nearbySellers)

  });

});

req.end();

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

​​$ node scraper.js

此时您应已收到结果:

[

  {

    position: 1,

    name: 'Gamestop',

    link: 'https://www.google.com/url?q=https://www.gamestop.com/consoles-hardware/playstation-5/consoles/products/sony-playstation-5-digital-edition-console/225171.html%3Futm_source%3Dgoogle%26utm_medium%3Dfeeds%26utm_campaign%3Dunpaid_listings&sa=U&ved=0ahUKEwi27suDvtP8AhVkk2oFHXzfDeMQ2ykIZg&usg=AOvVaw3ZevYyiKByTyo_THSF1qUJ',

    additional_details: '460.5 mi · In stock at EulessToday: 10:00 AM - 9:00 PM',

    base_price: '$399.99',

    additional_price: { shipping: 'See website' },

    total_price: '$399.99',

    trusted: true

  },

  {

    position: 2,

    name: 'Gamestop',

    link: 'https://www.google.com/url?q=https://www.gamestop.com/consoles-hardware/playstation-5/consoles/products/sony-playstation-5-digital-edition-console/225171.html%3Futm_source%3Dgoogle%26utm_medium%3Dfeeds%26utm_campaign%3Dunpaid_listings&sa=U&ved=0ahUKEwi27suDvtP8AhVkk2oFHXzfDeMQ2ykIcw&usg=AOvVaw1QiXFtHB6-CApj-HDvbNxl',

    additional_details: '462.6 mi · In stock at ArlingtonToday: 11:00 AM - 8:00 PM',

    base_price: '',

    trusted: false

  },

  {

    position: 3,

    name: 'Gamestop',

    link: 'https://www.google.com/url?q=https://www.gamestop.com/consoles-hardware/playstation-5/consoles/products/sony-playstation-5-digital-edition-console/225171.html%3Futm_source%3Dgoogle%26utm_medium%3Dfeeds%26utm_campaign%3Dunpaid_listings&sa=U&ved=0ahUKEwi27suDvtP8AhVkk2oFHXzfDeMQ2ykIdg&usg=AOvVaw0CxoqlJzdEZ93B-6U-Jmuf',

    additional_details: '557.6 mi · In stock at HoustonToday: 12:00 PM - 9:00 PM',

    base_price: '',

    trusted: false

  },

  {

    position: 4,

    name: 'Gamestop',

    link: 'https://www.google.com/url?q=https://www.gamestop.com/consoles-hardware/playstation-5/consoles/products/sony-playstation-5-digital-edition-console/225171.html%3Futm_source%3Dgoogle%26utm_medium%3Dfeeds%26utm_campaign%3Dunpaid_listings&sa=U&ved=0ahUKEwi27suDvtP8AhVkk2oFHXzfDeMQ2ykIeQ&usg=AOvVaw2BAlgtL85g1mvOonMQK14U',

    additional_details: '568.6 mi · In stock at PasadenaToday: 12:00 PM - 9:00 PM',

    base_price: '',

    trusted: false

  },

  {

    position: 5,

    name: 'Gamestop',

    link: 'https://www.google.com/url?q=https://www.gamestop.com/consoles-hardware/playstation-5/consoles/products/sony-playstation-5-digital-edition-console/225171.html%3Futm_source%3Dgoogle%26utm_medium%3Dfeeds%26utm_campaign%3Dunpaid_listings&sa=U&ved=0ahUKEwi27suDvtP8AhVkk2oFHXzfDeMQ2ykIfA&usg=AOvVaw3mi7jMt3aMSJde0sQb9yjR',

    additional_details: '591.2 mi · In stock at San AntonioToday: 12:00 PM - 9:00 PM',

    base_price: '',

    trusted: false

  },

... 

]

您现已成功通过我们的 API 抓取了 Google 产品“附近卖家”数据。您可以将获取的数据用于价格比较、市场调研、SEO 优化等多种用途。如需了解更多信息以及其他六种编程语言的代码示例,欢迎查阅我们的 Google 产品 API 文档

Google 购物“附近商家”功能的局限性

抓取 Google 购物“附近商家”数据,是收集特定商品本地零售商信息的一种有效方式。但该功能也存在一些局限性。其中之一是,该功能返回的结果未必总是准确或最新的。 例如,某家被列为销售该产品的商店可能已售罄或不再销售该商品。此外,该功能可能未涵盖所有销售该产品的本地零售商,导致用户可选范围受限。最后,Google 购物“附近商家”栏目仅适用于部分产品和类别,因此用户可能无法为所有感兴趣的产品找到本地卖家。

结论

希望本文能为您提供有用的参考,助您开始使用 Node.js 配合我们的 API 抓取 Google 购物“附近卖家”数据。只需配置好 Node.js、获取我们的服务 API 密钥并输入商品 ID,您就能立即获取价格和库存信息。这对希望在定价上保持竞争力的企业,以及希望找到最优惠价格的消费者而言,都特别有用。

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

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

开始构建

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

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