谷歌购物 成为数据最丰富的电子商务平台之一。其丰富的产品、价格和零售商使其成为公司和数据爱好者的金矿。

Google Shopping 对在线买家和卖家来说都发挥着至关重要的作用。到 2024 年,它将提供来自全球众多零售商的数百万件商品,为购物者提供广泛的选择和优惠。当您从 Google Shopping 中提取数据时,您可以深入了解产品成本、库存水平和竞争对手的产品,这有助于您根据事实做出选择。

这篇文章将向您展示如何使用 Python 抓取 Google Shopping 数据。我们将使用 爬虫库 Crawling API 绕过限制并收集信息。

以下是我们分步计划的细目。

表中的内容

  1. 为什么要抓取 Google 购物?
  • 抓取 Google 购物数据的好处
  • Google购物的关键数据点
  1. 使用 Crawlbase 绕过限制 Crawling API
  2. 先决条件
  • 设置 Python 环境
  • 安装所需的库
  1. Google购物SERP结构
  • Google购物SERP的关键要素
  1. 抓取 Google 购物 SERP
  • 检查 HTML 结构
  • 编写 Google Shopping SERP 抓取工具
  • 处理分页
  • 将数据保存到 JSON 文件
  • 完整的代码
  1. Google购物产品页面结构
  • Google 购物产品页面的关键元素
  1. 抓取 Google 购物产品页面
  • 检查 HTML 结构
  • 编写 Google 购物产品页面抓取工具
  • 将数据保存到 JSON 文件
  • 完整的代码
  1. 总结
  2. 常见问题

为什么要抓取 Google 购物?

通过抓取 Google 购物,您可以获得有用的见解。这些见解有助于制定您的商业计划、改善您的产品并设定合适的价格。在本部分中,我们将介绍从 Google 购物获取数据的好处以及您可以提取的关键信息。

抓取 Google 购物数据的好处

抓取 Google Shipping 数据的好处

竞争定价分析

定价是影响客户决策的关键因素之一。通过抓取 Google 购物,您可以实时查看竞争对手的价格并相应地调整定价。这可确保您的价格具有竞争力并吸引更多客户和销售。

产品可用性监控

产品供应情况是库存管理和满足客户需求的关键。通过抓取 Google 购物,您可以查看哪些产品有货、缺货或正在促销。这将帮助您优化库存,以便在合适的时间获得合适的产品。

趋势分析和市场洞察

对于任何电子商务企业来说,掌握最新趋势都至关重要。通过抓取 Google 购物,您可以看到新兴趋势、热门产品和不断变化的客户行为。这将有助于您的产品开发、营销策略和业务决策。

改进产品列表

详细而美观的产品列表是将浏览者转化为买家的关键。通过查看 Google 购物上的成功列表,您可以获得产品描述、图片和关键字的灵感。这将有助于提高您的排名和知名度。

Google购物的关键数据点

抓取 Google Shopping 数据时,你可以提取以下数据点:

  • 产品标题和描述:了解竞争对手如何展示他们的产品并优化您的产品列表以吸引更多的客户。
  • 价格和折扣:提取有关价格的有用信息,包括折扣和特价,以监控竞争对手的定价策略。您可以使用这些数据来调整价格以保持竞争力并提高销量。
  • 产品评分和评论:客户评分和评论可以深入了解客户满意度和产品质量。您可以分析他们的反馈,了解产品的优势和劣势。
  • 零售商信息:提取有关销售类似产品的零售商的信息,以了解您所在市场的主要参与者和潜在合作伙伴是谁。
  • 产品类别和标签:了解产品的分类和标记方式,以改善您的产品组织和搜索引擎优化 (SEO),让客户能够找到您的产品。
  • 图像和视觉内容:图片对于吸引客户兴趣至关重要。通过检查表现最佳的商品的视觉内容,您可以提高产品图片的质量,从而提高参与度。

收集和分析这些数据点可让您做出明智的决策,推动业务发展。在下一节中,我们将讨论如何使用 Crawlbase 克服网页抓取中的挑战 Crawling API.

使用 Crawlbase 绕过限制 Crawling API

Web 抓取是一种强大的数据收集工具,但它也面临着 IP 阻止、速率限制、动态内容和区域差异等挑战。 爬虫库 Crawling API 有助于克服这些问题,使得抓取过程更加顺畅和有效。

使用 Crawlbase 绕过限制 Crawling API

IP 阻止和速率限制

网站可能会屏蔽快速发送过多请求的 IP 地址,这种问题称为速率限制。Crawlbase Crawling API 通过轮换 IP 地址和控制请求速度来提供帮助,使您能够不间断地抓取数据。

动态内容和 JavaScript

许多网站在页面首次加载后使用 JavaScript 加载内容。传统的抓取方法可能会错过这些动态数据。Crawlbase Crawling API 可以处理 JavaScript,确保您获取页面上的所有内容,甚至是稍后出现的元素。

CAPTCHA 和反机器人措施

为了防止自动抓取,网站经常使用验证码和其他反机器人措施。Crawlbase Crawling API 可以突破这些障碍,让您继续收集数据而不会遇到这些障碍。

地理位置和国家特定数据

网站有时会根据用户的位置显示不同的内容。Crawlbase Crawling API 让您根据请求选择国家/地区,以便您可以获取特定区域的特定数据,这有助于本地化产品信息和定价。

爬虫库 Crawling API 有效地处理这些共享的网页抓取挑战,并顺利地从 Google Shopping 收集有价值的数据。在下一节中,我们将讨论设置 Python 环境进行抓取所需的条件。

先决条件

在开始抓取 Google 购物数据之前,您需要设置 Python 环境并安装必要的库。本节将引导您完成为网页抓取项目做好一切准备的基本步骤。

设置 Python 环境

安装Python

确保计算机上安装了 Python。Python 是一种流行的编程语言,用于网页抓取和数据分析。如果你没有安装 Python,请从 Python官方网站. 按照您的操作系统的安装说明进行操作。

创建虚拟环境

创建虚拟环境是一种很好的做法,可以让项目依赖项井然有序,避免与其他项目发生冲突。要创建虚拟环境,请打开命令行或终端并运行:

1
python -m venv myenv

将 myenv 替换为您的环境名称。要激活虚拟环境,请使用以下命令:

  • 在Windows上:

    1
    myenv\Scripts\activate
  • 在macOS和Linux上:

    1
    资源 myenv/bin/激活

安装所需的库

设置虚拟环境后,您需要安装以下用于网页抓取和数据处理的库:

美汤4

这款 BeautifulSoup4 库有助于解析 HTML 和提取数据。它与 Crawlbase 库配合使用效果很好,可高效提取数据。运行以下命令安装它:

1
点安装beautifulsoup4

爬虫库

这款 Crawlbase 该库允许您与 Crawlbase 产品进行交互。它有助于处理 IP 阻止和动态内容等挑战。通过运行以下命令安装它:

1
点安装爬虫库

备注:访问 Crawlbase Crawling API,您需要一个令牌。您可以通过在 爬虫库。Crawlbase 提供两种类型的令牌:用于静态网站的普通令牌和用于处理动态或基于浏览器的请求的 JavaScript (JS) 令牌。对于 Google Shopping,您需要普通令牌。前 1,000 个请求可免费开始使用,无需信用卡。

安装这些库后,您就可以开始抓取 Google Shopping 数据了。在下一节中,我们将深入探讨 Google Shopping 搜索结果页面的结构以及如何识别需要提取的数据。

Google购物SERP结构

了解 Google 购物搜索引擎结果页面 (SERP) 的结构是网页抓取的关键。这有助于您找到并提取所需的数据。

Google购物SERP的关键要素

谷歌购物SERP

1. 产品列表

每个产品列表都有:

  • 产品名称:商品名称。
  • 产品图片:商品图像。
  • 价格:商品的价格。
  • 零售商名称:销售该产品的商店或零售商。
  • 评分和评论:如果有的话,请查看客户评论。

2. 分页

Google 购物结果通常分布在多个页面上。分页链接可让您获得更多产品列表,因此您需要从所有页面抓取数据才能获得完整结果。

3. 筛选器和排序选项

用户可以通过应用价格范围、品牌或类别等筛选条件来优化搜索结果。这些筛选条件会改变显示的内容,对于有针对性地收集数据非常重要。

4. 赞助商列表

有些产品被标记为赞助或广告,并在页面上突出显示。如果您只想要非赞助产品,您需要能够区分赞助列表和自然列表。

接下来,我们将向您展示如何为 Google Shopping SERP 编写抓取工具并将数据保存为 JSON。

抓取 Google 购物 SERP

在本节中,我们将介绍如何从 Google 购物搜索引擎结果页面 (SERP) 中抓取产品数据。我们将介绍如何检查 HTML、编写抓取工具、分页以及将数据保存到 JSON 文件。

检查 HTML 结构

在编写抓取工具之前,请使用浏览器的开发人员工具检查 Google Shopping SERP。

Google 购物 SERP 检查
  • 右键单击产品列表并选择“检查”以打开开发人员工具。
  • 将鼠标悬停在“元素”选项卡中的元素上,可以查看它们对应页面的哪个部分。
  • 识别产品标题、价格和零售商名称等元素的 CSS 选择器。

编写 Google Shopping SERP 抓取工具

要开始抓取,我们将使用 Crawlbase Crawling API 获取 HTML 内容。以下是如何针对搜索查询“louis vuitton bags”设置抓取工具的示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 爬行基地 进口 抓取API
bs4 进口 美丽汤
进口 JSON

# 使用你的访问令牌初始化 CrawlingAPI
爬行 API = 爬行 API({'令牌': 'CRAWLBASE_TOKEN'})

# 设置请求的选项
选项= {
'国家': '我们', # 根据需要调整国家代码
'用户代理': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, 如 Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0',
'页面等待': 5000
}

# 抓取 Google Shopping SERP 的功能
DEF scrape_google_shopping(网址):
响应=crawling_api.get(url,选项)
if 回复[“标题”]['pc_status'] == '200':
html_内容=响应['身体']。解码('utf-8')
汤 = BeautifulSoup(html_content, 'html.parser')

产品 = []
项目 in 汤.选择(‘.sh-dgr__grid-result’):
标题 = 项目.select_one(‘h3.tAxDx’).text.strip() if item.select_one(‘h3.tAxDx’) 其他 没有
价格 = item.select_one('span.a8Pemb.OFFNJ').text.strip() if item.select_one('span.a8Pemb.OFFNJ') 其他 没有
图像 = 项目.select_one('div.FM6uVc > div.ArOc1c > img')['源代码'] if item.select_one('div.FM6uVc > div.ArOc1c > img') 其他 没有
零售商 = item.select_one('.aULzUe.IuHnof').text.strip() if item.select_one('.aULzUe.IuHnof') 其他 没有
产品网址 = 'https://www.google.com' +项目.选择一个(‘a.Lq5OHe’)['href'] if item.select_one(‘a.Lq5OHe’) 其他 没有

产品.附加({
'标题': 标题,
'价格': 价格,
'图片': 图像,
'零售商': 零售商,
‘产品网址’:产品网址
})
回报 产品及技术
其他:
打印(f"无法获取页面。状态代码: {回复[“标题”]['pc_status']}")
回报 []

# 抓取示例 URL
网址= 'https://www.google.com/search?q=louis+vuitton+bags&tbm=shop&start=0&num=20'

处理分页

要抓取多个页面,您需要修改 start URL 中的参数。此参数控制结果的起始索引。例如,要抓取第二页,请设置 start=20,第三页 start=40,等等。

1
2
3
4
5
6
7
8
9
10
11
DEF scrape_multiple_pages(base_url,页面=3):
所有产品 = []
in 范围(页数):
起始索引 = 页面 * 20
分页网址 = f"{base_url}&开始={起始索引}"
产品 = scrape_google_shopping(paginated_url)
all_products.extend(产品)
回报 所有产品

# 抓取多个页面
all_products = scrape_multiple_pages(url,页面=3)

将数据保存到 JSON 文件

提取数据后,可以将其保存为 JSON 文件以进行进一步分析或处理:

1
2
3
4
5
6
7
DEF 保存到json(数据,文件名='产品.json'):
- 打开(文件名, 'w', 编码='utf-8') as f:
json.dump(数据,f,ensure_ascii=, 缩进=4)

# 将产品保存为 JSON
if 所有产品:
保存到json(所有产品)

完整的代码

以下是抓取 Google Shopping SERP、处理分页并将数据保存到 JSON 文件的完整代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
 爬行基地 进口 抓取API
bs4 进口 美丽汤
进口 JSON

# 使用你的访问令牌初始化 CrawlingAPI
爬行 API = 爬行 API({'令牌': 'CRAWLBASE_TOKEN'})

选项= {
'国家': '我们', # 根据需要调整国家代码
'用户代理': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, 如 Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0',
'页面等待': 5000
}

DEF scrape_google_shopping(网址):
响应=crawling_api.get(url,选项)
if 回复[“标题”]['pc_status'] == '200':
html_内容=响应['身体']。解码('utf-8')
汤 = BeautifulSoup(html_content, 'html.parser')

产品 = []
项目 in 汤.选择(‘.sh-dgr__grid-result’):
标题 = 项目.select_one(‘h3.tAxDx’).text.strip() if item.select_one(‘h3.tAxDx’) 其他 没有
价格 = item.select_one('span.a8Pemb.OFFNJ').text.strip() if item.select_one('span.a8Pemb.OFFNJ') 其他 没有
图像 = 项目.select_one('div.FM6uVc > div.ArOc1c > img')['源代码'] if item.select_one('div.FM6uVc > div.ArOc1c > img') 其他 没有
零售商 = item.select_one('.aULzUe.IuHnof').text.strip() if item.select_one('.aULzUe.IuHnof') 其他 没有
产品网址 = 'https://www.google.com' +项目.选择一个(‘a.Lq5OHe’)['href'] if item.select_one(‘a.Lq5OHe’) 其他 没有

产品.附加({
'标题': 标题,
'价格': 价格,
'图片': 图像,
'零售商': 零售商,
‘产品网址’:产品网址
})
回报 产品及技术
其他:
打印(f"无法获取页面。状态代码: {回复[“标题”]['pc_status']}")
回报 []

DEF scrape_multiple_pages(base_url,页面=3):
所有产品 = []
in 范围(页数):
起始索引 = 页面 * 20
分页网址 = f"{base_url}&开始={起始索引}"
产品 = scrape_google_shopping(paginated_url)
all_products.extend(产品)
回报 所有产品

DEF 保存到json(数据,文件名='产品.json'):
- 打开(文件名, 'w', 编码='utf-8') as f:
json.dump(数据,f,ensure_ascii=, 缩进=4)

网址= 'https://www.google.com/search?q=louis+vuitton+bags&tbm=shop&num=20'
all_products = scrape_multiple_pages(url,页面=3)

if 所有产品:
保存到json(所有产品)

示例输出:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
[
{
“标题”: “路易威登迷你手拿包配件 Monogram”,
“价钱”: “ $ 760.00”,
“图片”: "https://encrypted-tbn0.gstatic.com/shopping?q=tbn:ANd9GcSobTmaRiPTU7ZgclxBAEGJXEqNJmaDrRPTf0yEAm4vAq4z5X5cnK_NeAWP28Hpr7OEfA7_HwkXDUV_JgjgJtJLcqctrK1xBnnp8C9HhTyAK1ByCfQOD9XTuSgq&usqp=CAE",
“零售商”: “louisvuitton.com”,
“产品网址”: "https://www.google.com/shopping/product/11460745201866483383?q=louis+vuitton+bags&num=20&udm=28&prds=eto:624870836277486981_0,pid:15363890291064430132&sa=X&ved=0ahUKEwjOzJ7ex9uHAxUvL0QIHcJdOsEQ8wIIlgc"
},
{
“标题”: “路易·威登优雅——牡丹字母”,
“价钱”: “ $ 1,890.00”,
“图片”: "https://encrypted-tbn0.gstatic.com/shopping?q=tbn:ANd9GcRB4Js18nK-0mJ1b1e_wxQJL_odHuiA9gxpiBTOPumm0kjw1CKqKtKcIkPWRy3XrPwuRVhFlCEfcXHl4wdXMOz-ibqUICzx0mGgNR-3eKSVg0WXepQxqxWt1dvX&usqp=CAE",
“零售商”: “louisvuitton.com”,
“产品网址”: "https://www.google.com/shopping/product/14578373001752515304?q=louis+vuitton+bags&num=20&udm=28&prds=eto:9994313334712804353_0,pid:1835053385849536242,rsk:PC_14933825504187696392&sa=X&ved=0ahUKEwjOzJ7ex9uHAxUvL0QIHcJdOsEQ8wIIowc"
},
{
“标题”: “Louis Vuitton Onthego Empreinte PM 黑色”,
“价钱”: “ $ 3,568.00”,
“图片”: "https://encrypted-tbn0.gstatic.com/shopping?q=tbn:ANd9GcTTFAXAgTlbBErj8kGSJaZlvTWabOLIhvd-YJDCNrJ8Ls05VdXaz2sClNaCQVaDJk0lzcO-RTspO0t1gFJqDayo6Y45dhKpxkTvXDlqqFjIkUJe_cweXqLgeBs&usqp=CAE",
“零售商”: “StockX”,
“产品网址”: "https://www.google.com/shopping/product/7199001631589324220?q=louis+vuitton+bags&num=20&udm=28&prds=eto:16054018195505784914_0,pid:14263685043257081273&sa=X&ved=0ahUKEwjOzJ7ex9uHAxUvL0QIHcJdOsEQ8wIIsAc"
},
{
“标题”: “路易威登优雅小号米色字母”,
“价钱”: “ $ 1,760.00”,
“图片”: "https://encrypted-tbn0.gstatic.com/shopping?q=tbn:ANd9GcQCsPQIhiu7bBqMzKkmiFK1-VUHjK-RgE9gFSK57X9msI9NGef3Z5mIRn6Sc3I22QxgqZOWVDGd6RyrXzVMOuTG8WcVoUi2zGpRz0sOoOHPRfwK0QDlU3RbIA&usqp=CAE",
“零售商”: “louisvuitton.com”,
“产品网址”: "https://www.google.com/shopping/product/14078996663385130630?q=louis+vuitton+bags&num=20&udm=28&prds=eto:4593674092438761338_0,pid:18331182635014054384&sa=X&ved=0ahUKEwjOzJ7ex9uHAxUvL0QIHcJdOsEQ8wIIvgc"
},
{
“标题”: “Louis Vuitton Neverfull Monogram 毫米樱桃红衬里”,
“价钱”: “ $ 2,041.00”,
“图片”: "https://encrypted-tbn0.gstatic.com/shopping?q=tbn:ANd9GcR6-Imgjm6jD4hCOYHj6PrLzTAvenPZjAQl57txXE-RAetMXqDxZ8_sqb5OunjnjosKhHZiOZ61FJPh029Cs9v6pwo-_u03F6bt1sLOPKcSX6mLRW9UdNkg&usqp=CAE",
“零售商”: “ModeSens”,
“产品网址”: "https://www.google.com/shopping/product/3486536794175265554?q=louis+vuitton+bags&num=20&udm=28&prds=eto:3199910965274339290_0,pid:10652230344608010943,rsk:PC_17291330636138764321&sa=X&ved=0ahUKEwjOzJ7ex9uHAxUvL0QIHcJdOsEQ8wIIygc"
},
.... 更多的
]

在接下来的部分中,我们将探讨如何抓取单个 Google Shopping 产品页面以获取更详细的信息。

Google购物产品页面结构

在 Google Shopping SERP 上找到产品后,您可以深入了解各个产品页面以获取更多信息。了解这些页面的结构是获得最大价值的关键。

Google 购物产品页面的关键元素

Google 购物产品页面
  1. 产品标题和描述

产品标题和描述为您提供了产品的主要功能和优点。

  1. 价格及供货情况

详细的定价,包括任何折扣和可用性状态,显示是否有现货或售罄。

  1. 图片和视频

图像和视频从不同角度展示产品,以便您看到它的外观。

  1. 客户评论和评级

评论和评分可以让您了解客户满意度和产品性能,以便您判断质量。

  1. 规格和功能

尺寸、颜色和材质等规格可以帮助您做出明智的决定。

  1. 零售商信息

有关零售商的信息,包括商店名称和联系信息,以便您可以看到谁销售该产品,并且可能包括运输和退货政策。

在下一部分中,我们将为 Google Shopping 产品页面编写一个抓取工具,并将抓取的数据保存到 JSON 文件中。

抓取 Google 购物产品页面

在本节中,我们将指导您抓取单个 Google 购物产品页面。其中包括检查 HTML、编写抓取工具以及将提取的数据保存到 JSON 文件。

检查 HTML 结构

在编写抓取工具之前,请使用浏览器的开发者工具检查 Google Shopping 产品页面的 HTML 结构。

Google 购物产品页面检查
  • 右键单击产品列表并选择“检查”以打开开发人员工具。
  • 将鼠标悬停在“元素”选项卡中的元素上,可以查看它们对应页面的哪个部分。
  • 确定包含您要提取的数据的标签和类别,例如产品标题、价格和评论。

编写 Google 购物产品页面抓取工具

要抓取 Google 购物产品页面,我们将使用 Crawlbase Crawling API 检索 HTML 内容。您可以按如下方式设置抓取工具:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
 爬行基地 进口 抓取API
bs4 进口 美丽汤
进口 JSON

# 使用你的访问令牌初始化 CrawlingAPI
爬行 API = 爬行 API({'令牌': 'CRAWLBASE_TOKEN'})

# 设置请求的选项
选项= {
'国家': '我们', # 根据需要调整国家代码
'用户代理': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, 如 Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0',
'页面等待': 5000
}

# 用于抓取 Google 购物产品页面的功能
DEF scrape_product_page(网址):
# 使用 Crawlbase API 获取页面
响应=crawling_api.get(url,选项)
if 回复[“标题”]['pc_status'] == '200':
html_内容=响应['身体']。解码('utf-8')
汤 = BeautifulSoup(html_content, 'html.parser')

# 提取产品详细信息
标题=汤.select_one(‘.sh-np__产品标题’).get_text(条=) if 汤.select_one(‘.sh-np__产品标题’) 其他 没有
价格=汤.select_one(‘.T14wmb’).get_text(条=) if 汤.select_one(‘.T14wmb’) 其他 没有
描述 = soup.select_one(‘.sh-np__description’).get_text(条=) if 汤.select_one(‘.sh-np__description’) 其他 没有
图像 = [img['源代码'] IMG in 汤.选择(‘.sh-div__image 图片’)]

产品详情 = {
'标题': 标题,
'价格': 价格,
'描述': 描述,
'图片': 图片
}
回报 产品详情
其他:
打印(f"无法获取页面。状态代码: {回复[“标题”]['pc_status']}")
回报 没有

# 产品页面的示例 URL
产品网址 = 'https://www.google.com/shopping/product/10571198764600207275'
产品详情 = scrape_product_page(产品网址)

将数据保存到 JSON 文件

提取产品数据后,您可以将其保存为 JSON 文件以进行分析或进一步处理:

1
2
3
4
5
6
7
DEF 保存到json(数据,文件名=‘产品详细信息.json’):
- 打开(文件名, 'w', 编码='utf-8') as f:
json.dump(数据,f,ensure_ascii=, 缩进=4)

# 将产品详细信息保存为 JSON
if 产品详情:
保存到json(产品详情)

完整的代码

以下是抓取 Google Shopping 产品页面并将数据保存到 JSON 文件的完整代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 爬行基地 进口 抓取API
bs4 进口 美丽汤
进口 JSON

# 使用你的访问令牌初始化 CrawlingAPI
爬行 API = 爬行 API({'令牌': 'CRAWLBASE_TOKEN'})

选项= {
'国家': '法国',
“用户代理”: “Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,如 Gecko)Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0”
}

DEF scrape_product_page(网址):
响应=crawling_api.get(url,选项)
if 回复[“标题”]['pc_status'] == '200':
html_内容=响应['身体']。解码('utf-8')
汤 = BeautifulSoup(html_content, 'html.parser')

标题=汤.select_one(‘span.sh-t__title-pdp.sh-t__title’).text.strip() if 汤.select_one(‘span.sh-t__title-pdp.sh-t__title’) 其他 没有
价格=汤.select_one('span.g9WBQb').text.strip() if 汤.select_one('span.g9WBQb') 其他 没有
描述 = soup.select_one(‘p.sh-ds__desc’).text.strip() if 汤.select_one(‘p.sh-ds__desc’) 其他 没有
图像 = [img['源代码'] IMG in 汤.选择(‘div.主图像 > img’)]8.

产品详情 = {
'标题': 标题,
'价格': 价格,
'描述': 描述,
'图片': 图片
}
回报 产品详情
其他:
打印(f"无法获取页面。状态代码: {回复[“标题”]['pc_status']}")
回报 没有

DEF 保存到json(数据,文件名=‘产品详细信息.json’):
- 打开(文件名, 'w', 编码='utf-8') as f:
json.dump(数据,f,ensure_ascii=, 缩进=4)

产品网址 = 'https://www.google.com/shopping/product/10571198764600207275'
产品详情 = scrape_product_page(产品网址)

if 产品详情:
保存到json(产品详情)

示例输出:

1
2
3
4
5
6
7
8
9
{
“标题”: “路易威登 Speedy Bandouliere 25 黑色”,
“价钱”: “ $ 4,059.00”,
“说明”: “请注意:本商品附带防尘袋,无需包装盒。”,
“图片”: [
"https://encrypted-tbn0.gstatic.com/shopping?q=tbn:ANd9GcQAipo2LXesayTJ_iC-3a6Z8JfDW4gvn11c26qcNRRBBTzdIpCmjW98JMysQ6W3iEsubeMIqem0ta5wT6-Q4LgXxSG9OG86BgaHrO4FoiD9WUlFv3ks3JjKzw&usqp=CAY",
"https://encrypted-tbn0.gstatic.com/shopping?q=tbn:ANd9GcTWWrHYy89sfQwWynpx8_4qBe4hMMyEBOVsy8F_szfqkXJaB5DLzqNwJ2NaPfyalXnGQfc2DgOR3nOYoAIH-K_fKlKJNhGC&usqp=CAY"
]
}

在下一部分中,我们将总结有关抓取 Google Shopping 的最终想法并进行讨论。

使用 Crawlbase 爬取 Google 购物信息

从 Google 购物中抓取数据可帮助您了解产品趋势、价格以及客户的想法。使用 爬虫库 Crawling API 可以帮你避免IP被封、内容频繁变化等问题,让数据收集变得更容易。通过使用Crawlbase获取数据、使用BeautifulSoup读取HTML、使用JSON存储数据,你可以有效地收集到详细而有价值的信息。

在实施这些技术时,请记住遵守道德准则和法律标准,以确保您的数据收集实践负责任且尊重他人。

如果您有兴趣探索从其他电子商务平台进行抓取,请随意探索以下综合指南。

📜 如何抓取亚马逊
📜 如何刮沃尔玛
📜 如何抓取全球速卖通
📜 如何抓取 Flipkart
📜 如何抓取 Etsy

如果您有任何问题或反馈,我们的 支持团队 随时为您提供帮助,助您完成网络抓取之旅。感谢您遵循本指南。祝您抓取愉快!

常见问题

抓取 Google Shopping 数据是合法的,但必须遵守网站的服务条款,许多用户发现只要尊重并谨慎,就可以做到这一点。如果不确定,请寻求专业的法律建议。使用官方 API(如果可用)也是获取数据而不涉及法律问题的绝佳方式。始终以负责任的方式并遵守准则进行抓取。

问:我可以从 Google Shopping 产品页面提取哪些数据?

抓取 Google Shopping 产品页面时,您可以提取以下数据点。 产品标题 识别产品, 价格 显示当前价格和折扣,以及 描述 展示产品功能。您还可以获得 图片 为了视觉表现, 评分和评论 获取客户反馈,以及 规格 尺寸和颜色等技术细节。这些数据对于市场分析、价格比较和客户意见非常有用。

问:我该如何处理阻止或限制抓取尝试的网站?

网站使用 IP 阻止、速率限制和 CAPTCHA 来阻止抓取。要解决这些问题,请使用 IP轮换 类似 Crawlbase 的服务 Crawling API 避免 IP 封锁。轮换 用户代理 模仿不同的浏览器并降低检测风险。实施 请求限制 分散请求并避免速率限制。对于 绕过 CAPTCHA,一些 API,包括 Crawlbase 可以帮助您克服这些障碍并获得持续的数据提取。

Q. 产品页面结构发生变化怎么办?

如果 Google 购物产品页面结构发生变化,您需要更新抓取代码以适应新布局。以下是操作方法

  • 定期监测:定期监控产品页面以检测 HTML 结构中的任何更新或更改。
  • 更新选择器:更新您的抓取代码以反映页面上使用的新标签、类别或 ID。
  • 测试刮刀:测试更新后的代码,以确保它使用新结构提取所需的数据。
  • 处理异常:在代码中实现错误处理,以处理预期元素缺失或更改的情况。积极主动并适应变化以获得准确的数据提取。