在广阔的电子商务数据检索领域中,《使用 Python 抓取 AliExpress》对于经验丰富的数据爱好者和新手数据爱好者来说都是重要的指南。 本指南将逐步引导您完成使用 AliExpress 抓取数据的分步教程 Crawlbase 爬取 API.

点击这里 如果您想跳过介绍,请直接跳到第一步。

目录

  1. 入门
  • 网页抓取的简要概述
  • 抓取全球速卖通的重要性
  • Crawlbase爬取API简介
  1. 设置您的环境
  • 安装Python和必要的库
  • 创建虚拟环境
  • 获取 Crawlbase API 令牌
  1. 了解速卖通网站结构
  • AliExpress 搜索页面的布局
  • AliExpress 产品页面的布局
  • 检查 HTML 以识别关键数据点
  1. 使用 Crawlbase Python 库
  • 导入并初始化CrawlingAPI类
  • 向 AliExpress 发出 HTTP 请求
  • 管理参数和自定义响应
  1. 抓取速卖通搜索和产品页面
  • 抓取速卖通搜索结果页面
  • 处理搜索结果页面上的分页
  • 抓取全球速卖通产品页面
  1. 存储数据
  • 将抓取的数据存储在 CSV 文件中
  • 将抓取的数据存储在 SQLite 数据库中
  1. 总结
  2. 常见问题

入门

现在您已经到了这里,让我们卷起袖子,使用以下工具深入了解全球速卖通网络抓取的实质内容: Crawlbase 爬取 API 使用Python。 但首先,在深入研究技术细节之前,让我们先分解一下您需要掌握的核心要素。

网页抓取的简要概述

在信息至上的世界里, 网络抓取 是从网站提取数据的艺术和科学。 这是一种数字侦探技能,可让您访问、收集和组织来自广阔且不断发展的互联网领域的数据。

将网络抓取视为您和在线信息宝库之间的桥梁。 无论您是业务策略师、数据分析师、市场研究员,还是只是渴望数据驱动的见解的人,网络抓取都是您解锁网络上大量数据的关键。 从产品价格和评论到市场趋势和竞争对手策略,网络抓取使您能够访问隐藏在网页迷宫中的宝贵数据。

抓取全球速卖通的重要性

抓取全球速卖通的重要性

使用 Python 抓取 AliExpress 已成为全球数据爱好者和电子商务分析师的关键策略。 阿里巴巴集团旗下的在线零售平台速卖通不仅仅是一个购物中心,更是一个等待探索的数据宝库。 速卖通拥有数百万种产品、众多卖家和全球客户群,为那些寻求电子商务竞争优势的人提供了庞大的数据集。

通过使用 Python 抓取 AliExpress,您可以有效地在平台上搜索产品信息、定价趋势、卖家行为和客户评论,从而获得对不断变化的在线零售格局的宝贵见解。 想象一下访问有关产品价格、趋势和客户评论的实时数据的战略优势。 设想通过持续监控市场动态、跟踪最新产品发布以及基于可靠的、有数据支持的决策来优化定价策略,从而在竞争中保持领先地位。

当您利用网络抓取技术时,尤其是使用 Crawlbase Crawling API 等强大工具时,您可以增强数据收集能力,使其成为电子商务数据库中的强大武器。

Crawlbase爬取API简介

我们在网络抓取工作中的主要盟友是 Crawlbase 爬取 API。 这个强大的工具是您导航复杂的网络抓取世界的门票,特别是在处理速卖通等大型平台时。 其突出功能之一是 IP 轮换,这类似于在数字领域改变您的身份。 想象一下,穿着各种伪装,在拥挤的街道上行走; 它确保全球速卖通将您视为普通用户,从而显着降低被标记为抓取工具的风险。 这保证了数据提取过程的顺利和不间断。

该 API 为速卖通量身定制的内置抓取工具使其更加引人注目。 除了 AliExpress 抓取工具之外,Crawling API 还为其他重要网站提供内置抓取工具。 您可以阅读有关他们的信息 请点击此处尝试搜索。。 这些预先设计的工具通过有效地从全球速卖通的搜索和产品页面中提取数据来简化流程。 为了轻松启动,Crawlbase 提供 1000 个免费爬行请求。 无论您是网络抓取新手还是经验丰富的专业人士,Crawlbase 抓取 API 及其 IP 轮换和专门的抓取工具都是您有效、合乎道德地从速卖通提取数据的秘密武器。

在接下来的部分中,我们将为您提供有效且合乎道德地抓取全球速卖通所需的所有知识和工具。 您将设置您的环境,了解 AliExpress 的网站结构,并熟悉 Python,这种编程语言将成为您在这项工作中的盟友。

设置您的环境

在我们开始速卖通网络抓取之旅之前,准备合适的环境至关重要。 本部分将指导您完成设置环境的基本步骤,确保您拥有使用 Crawlbase 抓取 API 成功抓取 AliExpress 所需的所有工具。

安装 Python 和基本库

Python 是我们网络抓取冒险的首选编程语言。 如果您的系统上尚未安装 Python,请按照以下步骤操作:

  1. 下载Python:访问 Python 官方网站 并下载适合您的操作系统的最新版本的 Python。
  2. 装置:运行下载的Python安装程序并按照安装说明进行操作。
  3. 企业验证:打开命令提示符或终端并输入 python --version 验证Python是否已成功安装。 您应该会看到显示已安装的 Python 版本。

现在您已经启动并运行了 Python,是时候安装一些必要的库来帮助我们完成抓取之旅了。 为此,我们建议使用 Python 的包管理器 pip。 打开命令提示符或终端并输入以下命令:

1
2
pip 安装熊猫
点安装爬虫库

熊猫:这是一个用于数据操作和分析的强大库,这对于组织和处理我们从速卖通抓取的数据至关重要。

爬虫库:该库将使我们能够向 Crawlbase API 发出请求,从而简化从 AliExpress 抓取数据的过程。

创建虚拟环境(可选)

尽管不是强制性的,但为项目创建虚拟环境被认为是良好的做法。 此步骤可确保项目的依赖项是隔离的,从而降低与其他 Python 项目发生冲突的风险。

要创建虚拟环境,请按照下列步骤操作:

  1. 安装 Virtualenv:如果没有安装 Virtualenv,可以使用 pip 安装:
1
pip 安装 virtualenv
  1. 创建虚拟环境:在命令提示符或终端中导航到您的项目目录,然后运行以下命令来创建名为“env”的虚拟环境(您可以将“env”替换为您喜欢的名称):
1
的virtualenv ENV
  1. 激活虚拟环境:根据您的操作系统,使用以下命令之一来激活虚拟环境:
  • 对于Windows:
1
.\ENV\脚本\激活
  • 适用于 macOS 和 Linux:
1
资源 ENV/bin/激活

当您在命令提示符或终端中看到环境名称时,您就会知道虚拟环境处于活动状态。

获取 Crawlbase API 令牌

我们将利用 Crawlbase 爬行 API 有效地从各个网站收集数据。 该API简化了整个发送过程 HTTP请求 到网站,无缝处理 IP 轮换,并有效解决常见的 Web 挑战,例如验证码。 以下是获取 Crawlbase API 令牌的分步指南:

  1. 前往 Crawlbase 网站:首先打开您的网络浏览器并导航至官方 爬虫库 网站。

  2. 注册或登录:根据您的状态,您需要创建一个新的 Crawlbase 帐户或登录到现有帐户。

  3. 检索您的 API 令牌:登录后,找到网站上的文档部分以访问您的 API 令牌。 Crawlbase 提供两种类型的令牌:普通 (TCP) 令牌和 JavaScript (JS) 令牌。 普通令牌适用于变化最小的网站,例如静态网站。 但是,如果网站的功能依赖于 JavaScript,或者关键数据是通过 JavaScript 在用户端生成的,则 JavaScript 令牌至关重要。 例如,当从速卖通等动态网站抓取数据时,Normal 令牌是您的首选。 您可以获得您的 API 令牌 请点击此处尝试搜索。.

  4. 保护您的 API 令牌:您的 API 令牌是宝贵的资产,因此确保其安全至关重要。 避免公开共享它,也不要将其提交给 Git 等版本控制系统。 此 API 令牌将成为您的 Python 代码的组成部分,使您能够有效地访问 Crawlbase 爬行 API。

安装 Pandas 和 Crawlbase 库、掌握 Crawlbase API 令牌(并且可以选择在虚拟环境中)后,您现在就具备了开始使用 Python 从 AliExpress 抓取数据的基本工具。 在以下部分中,我们将更深入地研究该过程并指导您完成每个步骤。

了解速卖通网站结构

要熟练使用 AliExpress 的 Crawlbase 抓取 API,必须对网站的结构有基本的了解。 全球速卖通的搜索和产品页面采用特定的布局。 在本节中,我们将深入研究 AliExpress 搜索页面和产品页面的布局,为利用 Crawlbase API 的内置抓取功能奠定基础。

AliExpress 搜索页面的布局

全球速卖通搜索页面是根据您的搜索条件发现产品的门户。 这些页面由几个关键组件组成:

速卖通搜索页面
  • 搜索栏:搜索栏是用户输入关键字、产品名称或类别来启动搜索的地方。
  • 过滤器选项:速卖通提供各种过滤器来精确优化搜索结果。 这些过滤器包括价格范围、运输选项、产品评级等。
  • 产品列表:以网格格式显示,产品列表显示图像、标题、价格和卖家详细信息。 每个列表都封装在 HTML 容器中,通常由特定的类或标识符表示。
  • 分页:由于产品目录广泛,搜索结果分布在多个页面上。 分页控件,包括“下一页”和“上一页”按钮,使用户能够浏览结果页面。

了解 AliExpress 搜索页面的结构组成对于有效使用 Crawlbase API 提取所需数据至关重要。 在接下来的部分中,我们将探讨如何利用 Crawlbase 的抓取功能以编程方式与这些页面元素进行交互。

AliExpress 产品页面布局

单击产品列表后,用户将被引导至专用产品页面。 此处提供有关特定产品的详细信息。 AliExpress 产品页面上的关键元素包括:

速卖通产品页面
  • 产品标题和描述:这些部分包含有关产品的全面文本数据,包括其功能、规格和建议用途。 提取此信息对于产品编目和分析至关重要。
  • 媒体库:速卖通通常包含一个多媒体库,其中包含图像,有时还包含视频。 这些视觉辅助工具为潜在买家提供了产品的整体视图。
  • 价格和卖家信息:此部分提供有关产品价格、运输详情、卖家评级和联系方式的基本数据。 这些信息有助于用户做出明智的购买决定。
  • 客户评价:以前的买家提供的评论和评级为产品的质量、功能和卖家的可靠性提供了宝贵的见解。 收集和分析这些评论有助于评估产品。
  • 购买选项:全球速卖通让用户可以选择将产品添加到购物车以便稍后购买或发起立即交易。 提取此信息可以监控产品可用性和价格变化。

凭借对 AliExpress 网站布局的扎实掌握,我们已做好充分准备,利用 Crawlbase 抓取 API 来简化数据提取过程。 以下部分将深入探讨利用 API 进行 AliExpress 数据抓取的实际方面。

使用 Crawlbase Python 库

现在我们已经为了解速卖通的网站结构奠定了基础,接下来让我们深入研究 Crawlbase Python 库的实际应用,以简化网页抓取过程。 本部分将指导您完成利用 Crawlbase 的功能所需的步骤 抓取 API 有效。

导入并初始化 CrawlingAPI 类

首先,您需要导入 Crawlbase Python 库并初始化 CrawlingAPI 班级。 此类充当向 AliExpress 发出 HTTP 请求并检索结构化数据的网关。 以下是如何开始的基本示例:

1
2
3
4
 爬行基地 进口 抓取API

# 使用您的 API 令牌初始化 Crawlbase API
api = 爬行API({ '令牌': 'YOUR_CRAWLBASE_TOKEN' })

确保将“YOUR_CRAWLBASE_TOKEN”替换为您在设置过程中获得的实际 Crawlbase API 令牌。

向 AliExpress 发出 HTTP 请求

随着 CrawlingAPI 类实例化后,您现在可以向 AliExpress 发出 HTTP 请求。 Crawlbase 显着简化了这个过程。 要从特定 AliExpress 搜索页面抓取数据,您需要指定该页面的 URL。 例如:

1
2
3
4
5
# 定义要抓取的 AliExpress 搜索页面的 URL
速卖通搜索网址 = 'https://www.aliexpress.com/wholesale?SearchText=your-search-query-here'

# 向指定的 URL 发出 HTTP GET 请求
响应 = api.get(aliexpress_search_url)

Crawlbase 将为您处理 HTTP 请求,响应对象将包含页面的 HTML 内容。

管理参数和自定义响应

使用 Crawlbase Python 库时,您可以通过包含各种参数来灵活地自定义请求,从而根据您的需求定制 API 的行为。 您可以阅读有关他们的信息 请点击此处尝试搜索。。 我们需要的一些如下。

刮刀参数

我们推荐使用 scraper 参数允许您指定要从 AliExpress 中提取的数据类型。 Crawlbase 为常见的 AliExpress 页面类型提供预定义的抓取工具。 您可以从以下选项中进行选择:

  • aliexpress-product:将此抓取工具用于速卖通产品页面。 它提取有关特定产品的详细信息。 以下是如何使用它的示例:
1
响应 = api.get(aliexpress_search_url, {'刮刀': '速卖通产品'})
  • aliexpress-serp:此抓取工具专为速卖通搜索结果页面而设计。 它从搜索结果中返回一系列产品。 使用方法如下:
1
响应 = api.get(aliexpress_search_url, {'刮刀': '速卖通-serp'})

请注意 scraper 参数是可选的。 如果您不使用它,您将收到页面的完整 HTML,让您可以自由地执行自定义抓取。 和 scraper 参数,响应将以 JSON 形式返回。

格式参数

我们推荐使用 format 参数使您能够定义从 Crawlbase API 收到的响应的格式。 您可以选择两种格式: json or html。 默认格式是 html。 以下是指定格式的方法:

1
响应 = api.get(aliexpress_search_url, {'格式': 'json'})
  • HTML 响应:如果您选择 html 响应格式(默认),您将收到页面的 HTML 内容作为响应。 响应参数将添加到响应标头中。
1
2
3
4
5
6
7
:
网址: HTTPS://www.aliexpress.com/wholesale?SearchText=laptop+accessories
原始状态: 200
电脑状态: 200

Body:
页面的 HTML
  • JSON 响应:如果您选择json响应格式,您将收到一个可以轻松解析的JSON对象。 该 JSON 对象包含您需要的所有信息,包括响应参数。
1
2
3
4
5
6
{
“原始状态”: “200”,
“电脑状态”: 200,
“网址”: "https%3A%2F%2Faliexpress.com%2F/wholesale%3FSearchText%3Dlaptop+accessories",
“身体”: “页面的 HTML”
}

这些参数使您能够灵活地以最适合您的网络抓取和数据处理要求的格式检索数据。 根据您的使用案例,您可以选择结构化数据的 JSON 响应或更多自定义抓取的 HTML 响应。

抓取速卖通搜索和产品页面

在本节中,我们将深入研究使用 Crawlbase Crawling API 抓取 AliExpress 的实际情况。 我们将介绍三个关键方面:抓取 AliExpress 搜索结果页面、处理这些结果页面上的分页以及抓取 AliExpress 产品页面。 我们将使用搜索查询“水瓶”并抓取与该搜索查询相关的结果。 下面是每个任务的 Python 代码示例以及解释。

抓取速卖通搜索结果页面

为了抓取 AliExpress 搜索结果页面,我们使用“aliexpress-serp”抓取工具,这是一种专门设计用于从搜索结果中提取产品信息的内置抓取工具。 该代码初始化 Crawlbase 抓取 API,向 AliExpress 搜索 URL 发送 HTTP GET 请求,指定“aliexpress-serp”抓取工具,并从 JSON 响应中提取产品数据。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 爬行基地 进口 抓取API
进口 JSON

# 使用您的 API 令牌初始化 Crawlbase API
api = 爬行API({ '令牌': 'YOUR_CRAWLBASE_TOKEN' })

# 定义要抓取的 AliExpress 搜索页面的 URL
速卖通搜索网址 = 'https://www.aliexpress.com/wholesale?SearchText=water+bottle'

# 使用“aliexpress-serp”抓取工具向指定 URL 发出 HTTP GET 请求
响应 = api.get(aliexpress_search_url, {'刮刀': '速卖通-serp'})

if 回复['状态代码'] == 200:
# 解码字节数据后从响应体加载 JSON
response_json = json.loads(响应['身体']。解码('拉丁1'))

# 获取抓取结果
scraper_result = 响应_json['身体']

# 打印抓取到的数据
打印(json.dumps(scraper_result, 缩进=2))

示例输出:

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
58
59
{
“产品”: [
{
“标题”: 《水瓶塑料旅行防漏女孩便携防摔水果不含Bpa创意》,
“价钱”: {
“当前的”: “4.99 美元”
},
“网址”: "https://www.aliexpress.com/item/4000576944298.html?algo_pvid=8d89f35c-7b12-4d10-a1c5-7fddeece5237&algo_expid=8d89f35c-7b12-4d10-a1c5-7fddeece5237-0&btsid=0ab6d70515838441863703561e47cf&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_",
“图片”: "https://ae01.alicdn.com/kf/Hd0fdfd6d7e5f4a63b9383223500f704be/480ml-Creative-Fruit-Plastic-Water-Bottle-BPA-Free-Portable-Leak-Proof-Travel-Drinking-Bottle-for-Kids.jpg_220x220xz.jpg_.webp",
“发货信息”: “免运费”,
“已售出数量”: 177,
“评级值”: 5,
“评级链接”: "https://www.aliexpress.com/item/4000576944298.html?algo_pvid=8d89f35c-7b12-4d10-a1c5-7fddeece5237&algo_expid=8d89f35c-7b12-4d10-a1c5-7fddeece5237-0&btsid=0ab6d70515838441863703561e47cf&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_#feedback",
“卖家信息”: {
“商店名称”: 「博喜家店」,
“商店链接”: “https://www.aliexpress.com/store/5001468”
}
},
{
“标题”: "柠檬汁饮水瓶透明水果塑料大容量运动800ml/600ml",
“价钱”: {
“当前的”: “3.17 - 4.49 美元”
},
“网址”: "https://www.aliexpress.com/item/4000162032645.html?algo_pvid=8d89f35c-7b12-4d10-a1c5-7fddeece5237&algo_expid=8d89f35c-7b12-4d10-a1c5-7fddeece5237-1&btsid=0ab6d70515838441863703561e47cf&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_",
“图片”: "https://ae01.alicdn.com/kf/H688cb15d9cd94fa58692294fa6780b59f/800ml-600ml-Large-Capacity-Sports-Fruit-Lemon-Juice-Drinking-Bottle-Infuser-Clear-Portable-Plastic-Water-Bottle.jpg_220x220xz.jpg_.webp",
“发货信息”: “免运费”,
“已售出数量”: 1058,
“评级值”: 4.6,
“评级链接”: "https://www.aliexpress.com/item/4000162032645.html?algo_pvid=8d89f35c-7b12-4d10-a1c5-7fddeece5237&algo_expid=8d89f35c-7b12-4d10-a1c5-7fddeece5237-1&btsid=0ab6d70515838441863703561e47cf&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_#feedback",
“卖家信息”: {
“商店名称”: “店5112149店”,
“商店链接”: “https://www.aliexpress.com/store/5112149”
}
},
...
],
“相关搜索”: [
{
“标题”: “水+瓶子”,
“关联”: “https://www.aliexpress.com/w/wholesale-Water%252BBttles.html”
},
{
“标题”: “水瓶”,
“关联”: “https://www.aliexpress.com/w/wholesale-Water-Bottles.html”
},
...
],
“相关类别”: [
{
“标题”: “家居与花园”,
“关联”: “https://www.aliexpress.com/w/wholesale-water-bottle.html?CatId=15”
},
{
“标题”: “水瓶”,
“关联”: “https://www.aliexpress.com/w/wholesale-water-bottle.html?CatId=100004985”
},
...
]
}

处理搜索结果页面上的分页

要浏览多页搜索结果,您可以增加搜索 URL 中的页码。 此示例演示了分页的基本概念,允许您从后续页面中抓取数据。

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
 爬行基地 进口 抓取API
进口 JSON

# 使用您的 API 令牌初始化 Crawlbase API
api = 爬行API({ '令牌': 'YOUR_CRAWLBASE_TOKEN' })

# 定义要抓取的 AliExpress 搜索页面的基本 URL
基本网址 = 'https://www.aliexpress.com/wholesale?SearchText=water+bottle&page={}'

# 初始化一个列表来存储所有抓取的搜索结果
all_scraped_products = []

# 定义要抓取的页面数
要抓取的页数 = 5

页码 in 范围(1, num_pages_to_scrape + 1):
# 构造当前页面的URL
aliexpress_search_url = base_url。格式(页码)

# 使用“aliexpress-serp”抓取工具向指定 URL 发出 HTTP GET 请求
响应 = api.get(aliexpress_search_url, {'刮刀': '速卖通-serp'})

if 回复['状态代码'] == 200:
# 解码字节数据后从响应体加载 JSON
response_json = json.loads(响应['身体']。解码('拉丁1'))
# 获取抓取结果
scraper_result = 响应_json['身体']
# 将当前页面抓取的商品添加到列表中
all_scraped_products.extend(scraper_result['产品'])

在此代码中,我们通过递增 URL 中的页码来构造每个页面的搜索结果页面 URL。 然后,我们循环指定的页面数,向每个页面发出请求,使用“aliexpress-serp”抓取工具从每个搜索结果中提取产品,并将它们添加到列表中(all_scraped_products)。 这使您可以有效地从多个页面抓取和合并搜索结果。

抓取全球速卖通产品页面

在抓取 AliExpress 产品页面时,我们使用“aliexpress-product”抓取工具,该抓取工具专为提取详细的产品信息而设计。 该代码初始化 Crawlbase API,向 AliExpress 产品页面 URL 发送 HTTP GET 请求,指定“aliexpress-product”抓取工具,并从 JSON 响应中提取产品数据。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 爬行基地 进口 抓取API
进口 JSON

# 使用您的 API 令牌初始化 Crawlbase API
api = 爬行API({ '令牌': 'YOUR_CRAWLBASE_TOKEN' })

# 定义要抓取的速卖通产品页面的 URL
aliexpress_product_url = 'https://www.aliexpress.com/item/4000275547643.html'

# 使用“aliexpress-product”抓取工具向指定 URL 发出 HTTP GET 请求
响应 = api.get(aliexpress_product_url, {'刮刀': '速卖通产品'})

if 回复['状态代码'] == 200:
# 解码字节数据后从响应体加载 JSON
response_json = json.loads(响应['身体']。解码('拉丁1'))

# 获取抓取结果
scraper_result = 响应_json['身体']

# 打印抓取到的数据
打印(json.dumps(scraper_result, 缩进=2))

示例输出:

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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
{
“标题”: “豪华透明磨砂手机壳,适用于 iphone 11 Pro XS MAX XR X 混合防震硅胶手机壳,适用于 iPhone 6 6s 7 8 Plus 保护套”,
“价钱”: {
“当前的”: “3.45 美元”,
“原来的”: “4.31 美元”,
“折扣”: “-20%”
},
“选项”: [
{
“名称”: “材料”,
“价值观”: [
“适用于 iPhone 6 6S”,
“适用于 6Plus 6SPlus”,
...
]
},
{
“名称”: “颜色”,
“价值观”: [
“黑色”,
“蓝色”,
...
}
],
“网址”: “https://www.aliexpress.com/item/4000275547643.html”,
“主图”: "https://ae01.alicdn.com/kf/H0913e18b6ff9415e86db047607c6fb9dB/Luxury-Transparent-Matte-Case-For-iphone-11-Pro-XS-MAX-XR-X-Hybrid-Shockproof-Silicone-Phone.jpg",
“图片”: [
"https://ae01.alicdn.com/kf/H0913e18b6ff9415e86db047607c6fb9dB/Luxury-Transparent-Matte-Case-For-iphone-11-Pro-XS-MAX-XR-X-Hybrid-Shockproof-Silicone-Phone.jpg",
"https://ae01.alicdn.com/kf/H1507016f0a504f35bbf2ec0d5763d14c4/Luxury-Transparent-Matte-Case-For-iphone-11-Pro-XS-MAX-XR-X-Hybrid-Shockproof-Silicone-Phone.jpg",
...
],
“客户评论”: {
“平均数”: 4.8,
“评论数”: 146
},
“已售出数量”: 1184,
“可用报价”: “额外 3% 折扣(2 件或以上)”,
“可用数量”: 37693,
“愿望清单数量”: 983,
“卖家信息”: {
“商店名称”: “一派数码商城”,
“商店链接”: “https://www.aliexpress.com/store/2056153”,
“回馈”: “92.9% 积极反馈”,
“关注者数”: 462
},
「运送概要」: {
“运费价格”: “运费:0.41 美元”,
“目的地”: “经中国邮政普通小包Plus寄往奥地利”,
“预计交货”: “预计交货:25-46 天”
},
“买家保护”: [
“60 天买家保护”,
“退款保证”
],
「建议」: [
{
“关联”: "https://www.aliexpress.com/item/33053895974.html?gps-id=pcDetailBottomMoreThisSeller&scm=1007.13339.146401.0&scm_id=1007.13339.146401.0&scm-url=1007.13339.146401.0&pvid=ae985f4e-3eca-4c9e-a788-1f37bd5ff3e0",
“价钱”: “1.55 美元”,
“图片”: "https://ae01.alicdn.com/kf/H604ad80f527c4b119e3bdb1be20b74cal.jpg_220x220q90.jpg_.webp"
},
...
],
“说明”: {
“详细图片”: [
"https://ae01.alicdn.com/kf/Hccaa2c9bf726484f94792998d93cc802Y.jpg",
"https://ae01.alicdn.com/kf/Hffe2339701634534a2fc4d5e183ff0aee.jpg",
...
],
“相关产品”: [
{
“标题”: “超薄硅胶手机壳,适用于 iphone 7 6 6s 8 X 保护套 Coque 糖果色柔软 TPU 磨砂手机壳,适用于 iphone7 8 plus XS MAX XR”,
“价钱”: “1.29-1.50 美元”,
“关联”: "https://www.aliexpress.com/item/Ultra-Slim-Silicone-Case-for-iphone-7-6-6s-8-X-Cover-Coque-Candy-Colors-Soft/32772422277.html",
“图片”: "https://ae01.alicdn.com/kf/H5d0d6ac957ee4f57942ec172a7ed3529v.jpg_120x120.jpg"
},
...
]
},
“商店类别”: [
{
“父节点”: “适用于 iPhone 手机壳”,
“父节点链接”: “https://www.aliexpress.com/store/group/For-iPhone-case/2056153_507217422.html”,
“孩子节点”: [
{
“子节点”: “适用于 iPhone 5 5S SE”,
“子节点链接”: “https://www.aliexpress.com/store/group/For-iPhone-5-5S-SE/2056153_507296208.html”
},
...
]
},
...
]
}

这些代码示例提供了有关如何利用 Crawlbase 抓取 API 抓取 AliExpress 搜索结果页面和产品页面的分步指南。 内置的抓取工具简化了流程,确保您收到 JSON 格式的结构化数据,从而更轻松地处理和处理提取的信息。 这种方法对于各种应用都很有价值,例如速卖通平台上的价格跟踪、市场分析和竞争研究。

存储数据

成功从速卖通页面抓取数据后,下一个关键步骤是存储这些有价值的信息以供将来分析和参考。 在本节中,我们将探讨两种常见的数据存储方法:将抓取的数据保存在 CSV 文件中并将其存储在 SQLite 数据库中。 这些方法使您可以有效地组织和管理抓取的数据。

将抓取的数据存储在 CSV 文件中

CSV(逗号分隔值)是一种广泛使用的用于存储表格数据的格式,在使用 Python 抓取 AliExpress 时特别有用。 这是一种简单且人类可读的存储结构化数据的方式,使其成为保存抓取的全球速卖通产品数据的绝佳选择。

我们将扩展之前的搜索页面抓取脚本,以包含使用流行的 Python 库 pandas 将抓取数据中的一些重要信息保存到 CSV 文件中的步骤。 这是该脚本的更新版本:

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
进口 大熊猫 as pd
爬行基地 进口 抓取API
进口 JSON

# 使用您的 API 令牌初始化 Crawlbase API
api = 爬行API({ '令牌': 'YOUR_CRAWLBASE_TOKEN' })

# 定义要抓取的 AliExpress 搜索页面的基本 URL
基本网址 = 'https://www.aliexpress.com/wholesale?SearchText=water+bottle&page={}'

# 初始化一个列表来存储所有抓取的产品数据
scraped_products_data = []

# 定义要抓取的页面数
要抓取的页数 = 5

页码 in 范围(1, num_pages_to_scrape + 1):
# 构造当前页面的URL
aliexpress_search_url = base_url。格式(页码)

# 使用“aliexpress-serp”抓取工具向指定 URL 发出 HTTP GET 请求
响应 = api.get(aliexpress_search_url, {'刮刀': '速卖通-serp'})

if 回复['状态代码'] == 200:
# 解码字节数据后从响应体加载 JSON
response_json = json.loads(响应['身体']。解码('拉丁1'))
# 获取抓取结果
scraper_result = 响应_json['身体']

# 将当前页面抓取的商品数据添加到列表中
产品展示 in 刮刀结果['产品']:
数据 = {
“标题”: 产品['标题'],
“价钱”: 产品['价格']['当前的'],
“评分”: 产品['评级值']
}
scraped_products_data.push(数据)

# 将抓取的数据保存为 CSV 文件
df = pd.DataFrame(scraped_products_data)
df.to_csv('aliexpress_products_data.csv', 索引=)

在这个更新的脚本中,我们引入了 pandas,一个强大的数据操作和分析库。 在抓取并积累产品详细信息后 scraped_products_data 列表中,我们根据该数据创建一个 pandas DataFrame。 然后,我们使用 to_csv 方法将 DataFrame 保存到当前目录中名为“aliexpress_products_data.csv”的 CSV 文件。 环境 index=False 确保我们不会将 DataFrame 的索引保存为 CSV 文件中的单独列。

您可以使用 pandas 轻松处理和分析抓取的数据。 该 CSV 文件可以在各种电子表格软件中打开或导入到其他数据分析工具中以进行进一步探索和可视化。

将抓取的数据存储在 SQLite 数据库中

如果您更喜欢结构化且查询友好的数据存储方法,SQLite 是一种轻量级、无服务器数据库引擎,它可能是一个不错的选择。 您可以创建数据库表来存储抓取的数据,从而实现高效的数据检索和操作。 以下是修改搜索页面脚本以将数据存储在 SQLite 数据库中的方法:

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
58
59
60
61
62
63
64
65
66
67
68
69
进口 JSON
进口 sqlite3
bs4 进口 美丽汤
爬行基地 进口 抓取API

# 使用您的 Crawlbase API 令牌初始化 CrawlingAPI 类
api = 爬行API({'令牌': 'YOUR_CRAWLBASE_TOKEN'})

# 初始化一个列表来存储所有抓取的产品数据
scraped_products_data = []

# 定义要抓取的页面数
要抓取的页数 = 5

DEF create_database():
conn = sqlite3.connect('aliexpress_products.db')
光标 = conn.cursor()
游标.执行('''如果不存在则创建表产品(
id 整数主键自动增量,
标题文本,
价格文本,
评级文本
)''')
conn.commit()
conn.close()

DEF 保存到数据库(data):
conn = sqlite3.connect('aliexpress_products.db')
光标 = conn.cursor()

# 根据数据创建元组列表
data_tuples = [(产品['标题'], 产品['价格'], 产品['评分']) 产品展示 in 数据]

# 将数据插入产品表中
光标.executemany('''
插入产品(标题、价格、评级)
值 (?, ?, ?)
''',数据元组)

conn.commit()
conn.close()

页码 in 范围(1, num_pages_to_scrape + 1):
# 构造当前页面的URL
aliexpress_search_url = base_url。格式(页码)

# 使用“aliexpress-serp”抓取工具向指定 URL 发出 HTTP GET 请求
响应 = api.get(aliexpress_search_url, {'刮刀': '速卖通-serp'})

if 回复['状态代码'] == 200:
# 解码字节数据后从响应体加载 JSON
response_json = json.loads(响应['身体']。解码('拉丁1'))
# 获取抓取结果
scraper_result = 响应_json['身体']

# 将当前页面抓取的商品数据添加到列表中
产品展示 in 刮刀结果['产品']:
数据 = {
“标题”: 产品['标题'],
“价钱”: 产品['价格']['当前的'],
“评分”: 产品['评级值']
}
scraped_products_data.push(数据)

# 创建数据库和产品表
创建数据库()

# 将抓取的数据插入到SQLite数据库中
保存到数据库(scraped_products_data)

在此更新的代码中,我们添加了用于创建 SQLite 数据库和表 ( create_database ) 并将抓取的数据保存到数据库 ( save_to_database ) 的函数。 create_database 函数检查数据库和表是否存在,如果不存在则创建它们。 save_to_database 函数将抓取的数据插入到“products”表中。

通过运行此代码,您将把抓取的 AliExpress 产品数据存储在名为“aliexpress_products.db”的 SQLite 数据库中。 您稍后可以使用 SQL 查询检索和操作这些数据,或者在 Python 项目中以编程方式访问它。

总结

虽然我们讨论的是网络抓取的主题,但如果您想通过探索沃尔玛、亚马逊等其他电子商务巨头的数据提取来更深入地挖掘并扩大您的理解,我建议您查看 Crawlbase 博客页面.

我们的综合指南不仅限于此; 我们提供有关抓取各种流行电子商务平台的丰富知识,确保您有能力应对每个独特网站架构带来的挑战。 查看 如何抓取亚马逊搜索页面沃尔玛抓取指南.

常见问题

问:使用 Crawlbase Crawling API 进行网页抓取有哪些优势?它与其他抓取方法有何不同?

与传统方法相比,Crawlbase 爬行 API 为网页抓取提供了多种优势。 首先,它提供 IP 轮换和用户代理轮换,使得 AliExpress 等网站检测和阻止抓取活动的可能性较小。 其次,它提供了针对特定网站定制的内置抓取工具,简化了数据提取过程。 最后,它提供了接收 HTML 和 JSON 格式数据的灵活性,允许用户选择最适合其数据处理需求的格式。 该 API 简化并增强了网络抓取体验,使其成为从 AliExpress 和其他网站抓取数据的首选。

问:我可以使用本指南从任何网站抓取数据吗?还是它特定于速卖通?

虽然本指南主要关注使用 Crawlbase 抓取 API 抓取 AliExpress,但此处讨论的基本概念和技术通常适用于网页抓取。 您可以应用这些原则从其他网站抓取数据,但请记住,每个网站可能有不同的结构、服务条款和抓取挑战。 始终确保您拥有从特定网站抓取数据所需的权利和权限。

问:在全球速卖通上进行网页抓取时,如何避免被屏蔽或被标记为抓取工具?

为了最大限度地降低被阻止的风险,请使用以下技术 IP轮换 和用户代理轮换,这些由 Crawlbase 爬网 API 支持。 这些技术可以帮助您模仿人类的浏览行为,从而降低全球速卖通将您识别为抓取工具的可能性。 此外,避免在短时间内提出太多请求并尊重网站的服务条款。 负责任的抓取不太可能导致阻塞或中断。

问:我可以抓取 AliExpress 产品价格并使用该数据为我自己的产品定价吗?

虽然为了市场分析而抓取产品价格是一种常见且合法的用例,但必须确保您遵守 AliExpress 的服务条款以及有关数据使用的任何法律法规。 根据抓取的数据为自己的产品定价可能是一种竞争策略,但您应该验证数据的准确性并准备好应对数据随时间变化的情况。 此外,在使用抓取的数据进行业务决策时,请考虑道德和法律方面的问题。