eBay 拥有庞大且充满活力的市场,是一个数据宝库。 抓取 eBay 可以帮助您收集有关产品价格、卖家评级和客户评论的信息。 无论您是 电子商务行业 爱好者、数据分析师或企业主,访问 eBay 数据可以提供有价值的见解。 在本指南中,我们将向您展示如何使用 JavaScript 来抓取 eBay,JavaScript 是最通用的网页抓取编程语言之一。 此外,我们还将向您介绍 Crawlbase 爬取 API,一个强大的工具,使抓取过程高效可靠。

目录:

了解 eBay 的网站布局

了解 eBay 网站结构

了解 eBay 的网站布局是成功的基本要素 网络抓取。 eBay 是一个庞大且充满活力的在线市场,以分层且复杂的方式组织其数据。 以下是您需要掌握的内容:

  1. 类别和列表: eBay 将其产品分为各种类别和子类别。 这些充当用户的主要导航点。 每个类别都包含大量列表,每个列表代表一种特定产品。

  2. 搜索和过滤器: eBay 的搜索功能使用户能够高效地查找产品。 过滤器根据价格、位置和卖家评级等标准进一步细化搜索结果。 这些过滤器会极大地影响您提取数据的方式。

  3. 产品页面: 当您单击列表时,您将进入产品页面。 此页面包含有关该商品的详细信息,包括图片、价格、卖家详细信息、产品描述等。 抓取这些信息通常是主要目标。

  4. 分页: eBay 将搜索结果分为多个页面。 了解分页的工作原理对于全面收集数据至关重要,因为您需要浏览各个页面来收集所有相关信息。

  5. 动态内容: eBay 使用 JavaScript 动态加载某些页面部分。 要抓取此类内容,您可以使用无头浏览器或 API 调用进行网页抓取等技术。

eBay 页面的结构

eBay 网站由产品页面和搜索结果页面组成,在平台功能中发挥着至关重要的作用。 了解他们的布局对于用户和卖家来说至关重要,影响着他们从产品发现到成功交易的 eBay 旅程。

1.产品页面

典型的 eBay 网页充满了各种有价值的数据。 使用 苹果iPhone 14 Pro Max 如下所示的产品页面示例,我们可以看到众多可以提取的类别,包括:

  • 产品标题
  • 产品描述
  • 产品图片
  • 产品等级
  • 价格
  • 订购
  • 顾客评论
  • 运费
  • 卖家信息
  • 交货时间
易趣产品页面

2. 搜索结果页面

输入特定关键字(例如“智能手机”)后,您将被引导至搜索结果页面。 此页面将类似于下图所示的页面。

eBay 搜索结果页面

重要的是,可以提取“智能手机”下列出的所有产品,包括它们的链接、标题、价格、评级和图像。 此外,此搜索过程为各种研究和分析目的提供了有价值的数据,使用户能够做出明智的决策或有效地进行市场研究。

现在您已经了解了我们可以从 eBay 获取的数据的重要性,让我们开始我们的简明分步指南,了解如何使用 JavaScript 和 Crawlbase Crawling API 获取、检索和解析 eBay 数据。

设置环境

步骤1: 在 Crawlbase 上注册帐户并获取您的个人令牌。 您可以从以下位置获取此令牌 账户文件 您的 Crawlbase 帐户的部分。

步骤2: 选择您想要抓取的特定 eBay 产品页面。 在此示例中,我们选择了 eBay 产品页面,其中包含 苹果iPhone 14 Pro Max。 选择包含各种元素的产品页面来展示抓取过程的多功能性非常重要。

易趣产品页面

步骤3: 现在安装 Crawlbase Node.js 库。 请按照以下步骤操作:

  • 首先,确保您的系统上已安装 Node.js。 如果没有安装,可以从Node.js官网下载并安装。
  • 确认安装了 Node.js 后,使用 npm(Node Package Manager)安装 Crawlbase Node.js 库。 打开终端并运行以下命令:
1
npm 安装爬虫库

这将在您的系统上下载并安装 Crawlbase Node.js 库,使其可用于您的抓取项目。

步骤4: 创建一个 "ebay-product-scraper.js" 文件时,您可以使用您选择的文本编辑器或集成开发环境 (IDE)。 以下是使用通用命令行创建文件的方法:

1
触摸 eBay-产品-scraper.js

运行此命令后,您将得到一个空的 "ebay-product-scraper.js" 在指定目录中创建的文件。 然后,您可以使用您喜欢的文本编辑器打开此文件以添加 JavaScript 代码。

步骤5: 要设置 Crawlbase 爬网 API,您需要定义 API 正常工作所需的参数和端点。 首先,请确保您已创建一个名为的文件 "ebay-product-scraper.js" 在上述步骤中。 然后,将下面提供的脚本粘贴到该文件中。 最后,使用以下命令在终端中运行脚本 node ebay-product-scraper.js.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 导入爬取API
常量 { 抓取API } = 要求('crawlbase');

// 设置您的 Crawlbase 令牌
常量 接口= 抓取API({ 象征: 'YOUR_CRAWLBASE_TOKEN' });

// 要抓取的 eBay 页面的 URL
常量 易趣页面URL = 'https://www.ebay.com/itm/354586733872';

// 获取爬取URL的请求
API
.得到(易趣页面网址)
.然后((响应) => {
if (回复。状态码 === 200){
领事.日志(回复。身体);
}
})
.捕捉((错误) => 领事.错误);

上面的脚本解释了如何使用 Crawlbase 的 Crawling API 访问 eBay 产品页面并从中提取数据。 这是通过配置 API 令牌、指定目标 URL 并发起 GET 请求来实现的。 运行此代码的结果将是指定 eBay 产品页面的未处理的 HTML 内容,该内容将显示在控制台中,如下所示:

eBay 产品页面的 HTML 响应

使用 Crawlbase Scrapers 抓取有意义的数据

在前面的示例中,我们讨论了如何获取 eBay 产品数据的基本结构,本质上是页面的 HTML。 然而,有时我们不需要这些原始数据; 相反,我们感兴趣的是从页面中提取特定且重要的信息。 不用担心! Crawlbase 的 Crawling API 包括内置的 eBay 抓取工具 被称为 “eBay-serp”“eBay 产品” 帮助我们提取有价值的内容。 我们将一一讨论这两个爬虫:

Crawlbase“ebay 产品”爬虫

我们必须包含一个“scraper”参数 “eBay 产品” 在使用 Crawling API 启用此功能时的 JavaScript 代码中。 这 “刮刀” 参数允许我们以 JSON 格式提取页面的相关部分。 我们将对同一个文件进行更改, "ebay-product-scraper.js". 让我们看一下下面的例子来获得更清晰的理解:

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
// 导入爬取API
常量 { 抓取API } = 要求('crawlbase');

// 设置您的 Crawlbase 令牌
常量 接口= 抓取API({ 象征: 'YOUR_CRAWLBASE_TOKEN' });

// 要抓取的 eBay 页面的 URL
常量 eBay 页面网址 = 'https://www.ebay.com/itm/354586733872';

// 爬取 API 的选项
常量 选项= {
刮刀: 'eBay 产品',
};

// 获取爬取URL的请求
API
.得到(ebayPageURL、选项)
.然后((响应) => {
if (回复。状态码 === 200){
// 解析 JSON 响应并打印它
领事.日志(JSON.解析(回复。身体));
}
})
.捕捉((错误) => {
领事.错误(“API 请求错误:”, 错误);
});

上面的 JavaScript 代码使用 Crawlbase 的 Crawling API 从特定的 eBay 产品页面抓取数据。 定义目标 eBay 页面 URL,配置抓取选项,指定“ebay-product”抓取器。 然后向 URL 发出 GET 请求,收到状态代码为 200 的成功响应后,代码会解析提取的数据并将其以 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
{
“原始状态”: 200,
“电脑状态”: 200,
“网址”: “https://www.ebay.com/itm/354586733872”,
“身体”: {
“标题”: “Apple iPhone 14 Pro Max A16 128GB 256GB 512GB 1TB 解锁全新密封”,
“价钱”: { “值”: “ $ 1,429.49”, “货币”: “美元” },
“网址”: “https://www.ebay.com/str/beyondtheworld?_trksid=p4429486.m145687.l149086”,
“卖家描述URL”: "https://vi.vipr.ebaydesc.com/ws/eBayISAPI.dll?ViewItemDescV4\u0026item=354586733872\u0026t=0\u0026category=9355\u0026seller=beyond_theworld\u0026excSoj=1\u0026excTrk=1\u0026lsite=0\u0026ittenable=false\u0026domain=ebay.com\u0026descgauge=1\u0026cspheader=1\u0026oneClk=2\u0026secureDesc=1",
“通知”: "",
“健康)状况”: “全新:全新、未使用、未开封、未损坏的物品,采用原包装(其中包装... 阅读有关状况的更多信息新:全新、未使用、未开封、未损坏的物品,采用原包装(包装适用的情况) )。包装应与零售店中的包装相同,除非该商品是手工制作的或由制造商采用非零售包装(例如未印刷的盒子或塑料袋)包装的。有关完整详细信息,请参阅卖家的列表。查看所有条件定义在新窗口或选项卡中打开“,
“图片”: [
"https://i.ebayimg.com/images/g/~C4AAOSwT-Rj7H8k/s-l500.jpg/s-l600.jpg",
“https://i.ebayimg.com/images/g/uNsAAOSw~VFj7H8f/s-l1600.jpg/s-l600.jpg”,
“https://i.ebayimg.com/images/g/mWsAAOSwtb9j7IBC/s-l1600.jpg/s-l600.jpg”,
“https://i.ebayimg.com/images/g/PjQAAOSw75hj7IBD/s-l1600.jpg/s-l600.jpg”,
"https://i.ebayimg.com/images/g/4BYAAOSwjn9j7IBF/s-l1600.jpg/s-l600.jpg",
“https://i.ebayimg.com/images/g/bqMAAOSwjLhj7IBI/s-l1600.jpg/s-l600.jpg”
],
「运送概要」: “8.70 美元”,
“船至”: “阿尔巴尼亚、阿尔及利亚、安哥拉、安提瓜和巴布达、阿根廷、亚美尼亚、澳大利亚、奥地利、阿塞拜疆共和国、巴林、孟加拉国、白俄罗斯、比利时、贝宁、百慕大、玻利维亚、波斯尼亚和黑塞哥维那、博茨瓦纳、文莱达鲁萨兰国、保加利亚、布基纳法索、布隆迪、柬埔寨、喀麦隆、佛得角群岛、中非共和国、乍得、智利、哥伦比亚、科摩罗、哥斯达黎加、塞浦路斯、捷克共和国、科特迪瓦(象牙海岸)、刚果民主共和国、丹麦、吉布提、多米尼加、多米尼加共和国、厄瓜多尔、埃及、萨尔瓦多、赤道几内亚、厄立特里亚、爱沙尼亚、埃塞俄比亚、斐济、芬兰、加蓬共和国、冈比亚、格鲁吉亚、加纳、希腊、格陵兰岛、瓜德罗普岛、危地马拉、几内亚、几内亚比绍、圭亚那、洪都拉斯、匈牙利、冰岛、印度、印度尼西亚、爱尔兰、以色列、意大利、牙买加、约旦、哈萨克斯坦、肯尼亚、科威特、老挝、拉脱维亚、黎巴嫩、莱索托、利比里亚、利比亚、立陶宛、卢森堡、马其顿、马达加斯加、马拉维、马尔代夫、马里、马耳他、马提尼克、毛里塔尼亚、毛里求斯、马约特岛、墨西哥、摩尔多瓦、蒙古、黑山、摩洛哥、莫桑比克、纳米比亚、尼泊尔、荷兰、新喀里多尼亚、新西兰、尼日尔、尼日利亚、挪威、阿曼、巴基斯坦、巴布亚新几内亚、秘鲁、波兰、葡萄牙、波多黎各、卡塔尔、克罗地亚共和国、刚果共和国、留尼旺、罗马尼亚、卢旺达、圣赫勒拿、沙特阿拉伯、塞内加尔、塞尔维亚、塞舌尔、塞拉利昂、斯洛伐克、斯洛文尼亚、所罗门群岛、索马里、南部非洲、斯里兰卡、斯威士兰、瑞典、瑞士、坦桑尼亚、多哥、特立尼达和多巴哥、突尼斯、土耳其、乌干达、阿拉伯联合酋长国、乌兹别克斯坦、委内瑞拉、西撒哈拉、全球、赞比亚、津巴布韦”,
“送货”: “预计于 21 月 29 日星期四至 2 月 3 日星期五至 EC3NXNUMXARE预计送达日期 - 在新窗口或选项卡中打开,包括卖家的处理时间、出发地邮政编码、目的地邮政编码和收货时间,并将取决于所选的运输服务和收到的货物清算付款 清算付款 - 在新窗口或选项卡中打开。交货时间可能会有所不同,尤其是在高峰时段。卖方在收到清算付款后 XNUMX 天内发货。如果国际交货需要接受海关处理,请留出更多时间。”,
“付款”: [“贝宝”, “签证”, 《万事达卡》, “美国运通”, “发现”],
“回报”: “30 天退货。买家支付退货运费。”,
“卖家信息”: {
“ID”: “p4429486.m3561.l2559”,
“网址”: “https://www.ebay.com/usr/beyond_theworld?_trksid=p4429486.m3561.l2559”,
“反馈评分”: 0.0,
“反馈网址”: “#LISTING_FRAME_MODULE”
},
“产品信息”: []
}
}

Crawlbase“ebay-serp”爬虫

在此示例中,我们将重点关注抓取 eBay 搜索结果页面,特别是 URL https://www.ebay.com/sch/i.html?_nkw=Smart+Phones。 Crawlbase 的爬行 API 包括一个专为 eBay 搜索结果页面定制的内置抓取工具,可以轻松地从这些页面中提取重要数据。 为此,您需要将上面提供的 JavaScript 代码中的“scraper”参数值从“ebay-product”修改为 “eBay-serp”。 以下是一个示例来说明此更改并帮助您更好地理解该过程:

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
// 导入爬取API
常量 { 抓取API } = 要求('crawlbase');

// 设置您的 Crawlbase 令牌
常量 接口= 抓取API({ 象征: 'YOUR_CRAWLBASE_TOKEN' });

// 要抓取的 eBay 页面的 URL
常量 eBay 页面网址 = 'https://www.ebay.com/sch/i.html?_nkw=Smart+Phones';

// 爬取 API 的选项
常量 选项= {
刮刀: '易趣-serp',
};

// 获取爬取URL的请求
API
.得到(ebayPageURL、选项)
.然后((响应) => {
if (回复。状态码 === 200){
// 解析 JSON 响应并打印它
领事.日志(JSON.解析(回复。身体));
}
})
.捕捉((错误) => {
领事.错误(“API 请求错误:”, 错误);
});

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
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
{
“原始状态”: 200,
“电脑状态”: 200,
“身体”: {
“标题”: “Apple iPhone X (iPhone 10) 智能手机 64GB/256GB 灰色/银色 无锁版 良好”,
“价钱”: {
“值”: 249.99,
“货币”: “英镑”
},
“网址”: “https://www.ebay.com/usr/thetechout?_trksid=p2047675.l2559”,
“卖家描述URL”: "https://vi.vipr.ebaydesc.com/ws/eBayISAPI.dll?ViewItemDescV4&item=393541114176&t=1633085604000&category=9355&seller=thetechout&excSoj=1&excTrk=1&lsite=3&ittenable=false&domain=ebay.com&descgauge=1&cspheader=1&oneClk=2&secureDesc=1&oversion=74650c1b",
“通知”: ,
“健康)状况”: “很好——翻新过”,
“图片”: [
“https://i.ebayimg.com/images/g/47AAAOSwqGRhVuip/s-l600.jpg”,
“https://i.ebayimg.com/images/g/3o4AAOSwQp9hVuin/s-l600.jpg”,
“https://i.ebayimg.com/images/g/VgkAAOSwHN5hVuin/s-l600.jpg”,
“https://i.ebayimg.com/images/g/W-MAAOSwjthhVuin/s-l600.jpg”,
“https://i.ebayimg.com/images/g/678AAOSwI2phVuin/s-l600.jpg”,
“https://i.ebayimg.com/images/g/LkgAAOSw0JdhVt7z/s-l600.jpg”
],
“选项”: [
{
“存储容量”: {
“价值观”: [“64Gb”, “256Gb[缺货]”],
“选定的值”: “64Gb”
}
},
{
“颜色”: {
“价值观”: [“银”, “太空灰”],
“选定的值”:
}
},
{
“网络”: {
“价值观”: [“解锁”],
“选定的值”: “解锁”
}
}
],
“可用数量”: 1,
“售出数量”: 47,
“已售反馈网址”: “https://www.ebay.com/bin/purchaseHistory?item=393541114176&rt=nc&_trksid=p2047675.l2564”,
“销售历史”: “https://www.ebay.com/bin/purchaseHistory?item=393541114176&rt=nc&_trksid=p2047675.l2564”,
“买家满意度”: “100%”,
“观察者计数”: 47,
「运送概要」: "",
“地点”: “英国巴恩斯特普尔”,
“送货”: “预计 4 月 8 日星期四至 XNUMX 月 XNUMX 日星期一 预计交货日期帮助 - 打开一层 预计交货日期 - 在新窗口或选项卡中打开 包括卖家的处理时间、始发地邮政编码、目的地邮政编码和收货时间以及将取决于所选的运输服务和已结清的付款收据 - 在新窗口或选项卡中打开。交货时间可能会有所不同,特别是在高峰期。包括国际跟踪”,
“付款”: [“贝宝”, “签证”, 《万事达卡》, “美国运通”],
“回报”: “60 天,买家支付退货运费”,
“说明”: “良好 - 功能齐全,电池健康状况超过 85%,中等使用痕迹,有小划痕或凹痕 - 12 个月保修”,
“卖家信息”: {
“ID”: “技术输出”,
“网址”: “https://www.ebay.com/usr/thetechout?_trksid=p2047675.l2559”,
“反馈评分”: 1685,
“反馈网址”: “https://www.ebay.com/fdbk/feedback_profile/thetechout?filter=feedback_page:RECEIVED_AS_SELLER&_trksid=p2047675.l2560”
},
“产品信息”: [
{
“名称”: “模型”,
“值”: “苹果 iPhone X”
},
{
“名称”: “相机分辨率”,
“值”: “12.0 MP”
},
{
“名称”: “品牌”,
“值”: “苹果”
},
{
“名称”: 「芯片组型号」,
“值”: “苹果A11仿生”
},
{
“名称”: “内存”,
“值”: “3GB”
},
{
“名称”: “连通性”,
“值”: “2G、3G、4G、4G+、蓝牙、双频、GPRS、GPS、闪电、Wi-Fi、WAP、NFC”
}
]
}
}

抓取 eBay 的价值

抓取 eBay 的价值

典型的 eBay 页面包含有价值的信息。 它包括图像、定价详细信息、产品可用性、页码、URL、状态代码和许多其他基本功能等元素。 当您利用 eBay 抓取的力量来提取这些数据时,您就为各种用例打开了一个充满可能性的世界:

  1. 竞争分析: 从 eBay 页面提取数据使您能够深入了解竞争对手的产品、定价策略和销量。 有了这些信息,您就可以制定策略,使您的产品在市场上脱颖而出,并做出更明智的定价决策。
  2. 市场调查: eBay 抓取使您能够确定哪些产品在平台上表现良好以及它们的销售频率。 这些知识对于了解市场趋势和消费者偏好非常宝贵。
  3. 产品开发: 利用 eBay 抓取,您可以提取数据来深入了解需求量很大的产品。 这些信息成为做出明智的产品设计和开发决策的基础。

处理 eBay 的反抓取措施

eBay 是全球最大的电子商务平台之一,已实施强有力的反抓取措施来保护其数据并确保公平的市场。 这些措施旨在防止自动化机器人抓取并可能破坏平台。 作为从 eBay 寻找有价值数据的网络抓取工具,了解并有效处理这些反抓取措施至关重要。

  • eBay 采用的一种常见的反抓取措施是使用 验证码,那些需要人类互动才能解决的烦人的谜题。 要绕过验证码,您可以使用无头浏览器或合并验证码解析服务,例如 Crawlbase Crawling API。 因此,您可以无缝绕过这些障碍并节省时间和精力。
  • 速率限制 是另一个挑战。 eBay 可能会限制用户在给定时间范围内可以提出的请求数量。 为了解决这个问题,请在您的抓取代码中实施速率限制,以确保您不会因请求而淹没 eBay 的服务器。
  • IP封锁 如果 eBay 检测到特定 IP 地址的过度抓取,它可能会采取更严厉的措施。 Crawlbase提供代理管理,让您 轮换IP地址 并避免受到速率限制的限制。 这可确保您的抓取活动不被发现且不中断。

结论

JavaScript 和 Crawlbase Crawling API 的融合为 eBay 这样广泛的平台上的网页抓取提供了一个变革性的网关。 这种协同作用为电子商务专家、数据分析师和研究人员提供了无与伦比的机会,以释放隐藏在 eBay 庞大市场中的见解和趋势。 遵循结构化方法,我们可以有效地提取这些数据并将其用于不同的应用程序,丰富我们对电子商务领域的理解。

然而,负责任的网络抓取的本质在于坚持道德标准。 严格遵守 eBay 的服务条款和抓取指南不仅是一项强制规定,也是对可持续和尊重数据提取的承诺。 在此过程中,我们将技术的力量与责任感融为一体,确保未来数据驱动的见解与数字尊重和诚信共存。

常见问题解答(FAQ)

是否可以抓取 eBay?

是的,可以抓取 eBay。 eBay 与许多其他网站一样,可以通过抓取数据来提取产品列表、价格、卖家信息等数据。 但是,在抓取 eBay 或任何其他网站时,了解并遵守 eBay 的服务条款和抓取指南非常重要,以确保您负责任且合法地进行抓取。

如果出于合法目的(例如个人使用或研究)进行网络抓取,则可能是合法的。 但是,出于恶意目的进行抓取或违反 eBay 服务条款是非法的。

eBay 允许抓取吗?

如果您不未经同意访问需要登录凭据或个人信息的数据,则抓取 eBay 通常是可以接受的。 一般来说,只要是按照管辖被抓取网站和所收集数据的相关规则和法律进行的,网络抓取就被认为是合法的。

我如何处理 eBay 的反抓取措施,例如验证码和速率限制?

eBay 采用反抓取措施来保护其数据。 为了克服这些问题,您应该实施一些策略,例如使用代理、解决验证码以及将速率限制纳入您的抓取代码中。

Crawling API 可以在没有 HTML 源代码的情况下提供抓取的内容吗?

是的,我们的抓取 API 提供了专为 eBay 搜索引擎结果页面 (SERP) 和 eBay 产品页面设计的可选数据抓取器。 您可以通过访问我们的文档来探索使用这些抓取工具并将其集成到您的项目中的全面细节。 我们的文档提供了分步指导、代码示例和有价值的提示,使您的 eBay 数据抓取体验无缝且高效。