您有兴趣了解亚马逊庞大的产品数据库中隐藏的见解吗? 如果是这样,那么您来对地方了。 在这个一步一步的亚马逊 数据抓取 指南中,我们将引导您完成抓取亚马逊产品数据并利用其力量促进业务增长的过程。 我们将涵盖从了解产品数据的重要性到处理验证码和反抓取措施的所有内容。 因此,拿起您的工具,准备好进入亚马逊数据抓取的世界吧!

我们使用 Crawlbase 爬取 API 与 JavaScript 一起有效地抓取亚马逊产品数据。 JavaScript 与 Web 元素交互的动态功能与 API 的反抓取机制相结合,保证了数据收集的无缝过程。 最终结果将是大量以 HTML 和 JSON 格式整齐组织的亚马逊产品数据。

目录

探索亚马逊产品页面的剖析

亚马逊产品页面剖析

亚马逊产品页面充当数字店面,客户可以在其中探索并就购买各种产品做出明智的决定。 这些页面经过精心组织,提供重要的细节、有吸引力的视觉效果和流畅的购物体验。 让我们看一下构成亚马逊产品页面结构的关键组件。

  1. 产品标题和图片:

产品标题是吸引购物者眼球的第一件事。 它简洁地描述了该项目及其主要特征。 除了标题之外,您还会发现从不同角度展示产品的高质量图像,让潜在买家直观地了解他们正在考虑的产品。

  1. 价格和购买选项:

价格以及任何可用的折扣或优惠都会显眼地显示。 客户还可以直接从此部分选择产品变体,例如尺寸、颜色或数量。

  1. 产品描述:

在本节中,详细的产品描述提供了有关该产品的规格、功能和优点的有价值的信息。 它可以帮助客户了解产品是否满足他们的需求和期望。

  1. 客户评论和评级:

真正的客户 评论和评分 提供有关产品实际性能和质量的见解。 购物者可以了解其他人的经历,从而更容易做出明智的决定。

  1. 问答和客户互动:

顾客可以提出有关产品的问题,卖家和其他顾客都可以提供答案。 该交互式部分解决了不确定性并提供了附加信息。

  1. 产品规格:

此处列出了尺寸、使用的材料和兼容性等技术详细信息。 此信息可帮助客户确保产品是否适合他们的特定要求。

  1. 相关产品和推荐:

亚马逊经常根据客户的浏览和购买历史推荐相关或互补的产品。 本节鼓励追加销售和交叉销售。

  1. 添加到购物车并立即购买:

客户可以将产品添加到购物车或使用“立即购买”选项立即购买。 这些操作启动结帐过程。

  1. 运输和交货信息:

提供有关运输选项、预计交货时间和相关成本的详细信息,以管理客户的期望。

使用 Crawlbase 抓取 API 抓取亚马逊产品数据

步骤1: 注册到 爬虫库 并获取您的私人令牌。 您可以从以下位置获取此令牌 Crawlbase 帐户文档 您帐户中的部分。

Crawlbase 帐户文档页面

步骤2: 选择您要抓取的特定亚马逊产品页面。 为此,我们选择了亚马逊产品页面 飞利浦 A4216 无线运动耳机。 选择具有不同元素的产品页面来展示抓取过程的多功能性至关重要。

亚马逊产品页面

步骤3: 安装 Crawlbase node.js 库。

首先,确认您的系统上是否安装了Node.js,如果没有安装,您可以从以下位置下载并安装它 请点击此处尝试搜索。,然后继续安装 Crawlbase Node.js 库 通过 NPM :

npm i crawlbase

步骤4: 使用以下命令创建 amazon-product-page-scraper.js 文件:

touch amazon-product-page-scraper.js

步骤5: 配置 Crawlbase 爬网 API。 这涉及到设置必要的 参数 以及 API 运行的端点。 将以下脚本粘贴到您在步骤 4 中创建的 amazon-product-page-scraper.js 文件中。为了运行以下脚本,请粘贴此命令 node amazon-product-page-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' });

// 要抓取的亚马逊页面的 URL
常量 亚马逊页面网址 = 'https://www.amazon.com/dp/B099MPWPRY';

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

上面的脚本展示了如何使用 Crawlbase 的 Crawling API 从 Amazon 产品页面访问和检索数据。 通过设置 API 令牌、定义目标 URL 并发出 GET 请求。 此代码的输出将是指定亚马逊产品页面的原始 HTML 内容 (https://www.amazon.com/dp/B099MPWPRY)。 它将显示在控制台中,显示页面的未格式化的 HTML 结构。 这 console.log(response.body) 行将此​​ HTML 内容打印到控制台,如下所示:

API请求的HTML响应

使用 Crawlbase Scrapers 抓取关键的亚马逊产品数据内容

在上面的示例中,我们讨论了如何仅获取亚马逊产品数据的基本结构(HTML)。 但有时,我们不需要这些原始数据,而是需要页面中的重要内容。 不用担心! Crawlbase 内置爬取API 亚马逊刮板 从亚马逊页面上抓取重要内容。 为了实现这一点,我们需要在使用 Crawling API 时添加一个“scraper”参数。 这个“scraper”参数帮助我们以 JSON 格式获取页面的重要部分。 我们正在对同一个文件进行编辑 amazon-product-page-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' });

// 要抓取的亚马逊页面的 URL
常量 亚马逊页面网址 = 'https://www.amazon.com/dp/B099MPWPRY';

// 爬取 API 的选项
常量 选项= {
刮刀: '亚马逊产品详细信息',
};

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

上述代码块的输出将是解析后的 JSON 响应,其中包含特定的亚马逊产品详细信息,例如产品名称、描述、价格、货币、 父 ASIN、卖家名称、库存信息等。 该数据将显示在控制台上,展示从指定亚马逊产品页面提取的有组织的信息。

API请求的JSON响应

现在,我们将从前面提到的 JSON 响应中检索亚马逊产品的名称、价格、评级和图像。 为此,我们必须将 JSON 响应存储在名为的文件中 "amazon-product-scraper-response.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
// 导入需要的模块
常量 FS = 要求('fs');
常量 { 抓取API } = 要求('crawlbase');

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

// 要抓取的亚马逊页面的 URL
常量 亚马逊页面网址 = 'https://www.amazon.com/dp/B099MPWPRY';

// 爬取 API 的选项
常量 选项= {
刮刀: '亚马逊产品详细信息',
};

// 获取爬取URL的请求
API
.得到(amazonPageURL、选项)
.然后((响应) => {
if (回复。状态码 === 200){
// 解析 JSON 响应
常量 json响应= JSON.解析(回复。身体);

// 将 JSON 响应保存到文件中
fs。写文件('亚马逊-产品-scraper-response.json', JSON.串化(json响应, , 2), (犯错) => {
if (呃) {
领事.错误(“保存 JSON 时出错:”, 呃);
} 其他 {
领事.日志(“JSON 响应已保存到 amazon-product-scraper-response.json”);
}
});
}
})
.捕捉((错误) => {
领事.错误(“API 请求错误:”, 错误);
});

此代码成功抓取 Amazon 产品页面、检索 JSON 响应并将其保存到文件中。 控制台中的一条消息表明 JSON 响应已保存到 'amazon-product-scraper-response.json'。 如果这些步骤期间发生任何错误,您将在控制台中看到相应的错误消息。

控制台上显示保存 JSON 文件的消息

刮取产品名称

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// 导入fs模块
常量 FS = 要求('fs');

fs。读取文件('亚马逊-产品-scraper-response.json', 'utf8', (错误,数据) => {
if (呃) {
领事.错误(“读取 JSON 文件时出错:”, 呃);
回报;
}

尝试 {
// 解析JSON数据
常量 json数据 = JSON.解析(数据);

// 提取特定值(例如年龄)
常量 产品名称 = jsonData.身体.姓名;

// 打印提取的值
领事.日志('产品名称:', 产品名称);
} 捕捉 (错误) {
领事.错误(“解析 JSON 数据时出错:”, 错误);
}
});

上面的代码块从名为的 JSON 文件中读取数据 "amazon-product-scraper-response.json" 使用 fs(文件系统)模块 Node.js。 然后它尝试解析 JSON 数据,提取特定值(在本例中为 "name" 来自的财产 "body" 对象),并将其打印到控制台。 如果出现任何错误,例如 JSON 数据格式不正确或指定的属性不存在,则会显示相应的错误消息。

从 JSON 文件中抓取亚马逊产品名称

刮产品价格

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// 导入fs模块
常量 FS = 要求('fs');

fs。读取文件('亚马逊-产品-scraper-response.json', 'utf8', (错误,数据) => {
if (呃) {
领事.错误(“读取 JSON 文件时出错:”, 呃);
回报;
}

尝试 {
// 解析JSON数据
常量 json数据 = JSON.解析(数据);

// 提取特定值(例如年龄)
常量 产品价格 = jsonData.身体.车资;

// 打印提取的值
领事.日志('价格:',产品价格);
} 捕捉 (错误) {
领事.错误(“解析 JSON 数据时出错:”, 错误);
}
});

此代码使用 Node.js fs 模块与文件系统交互并读取名为的 JSON 文件的内容 "amazon-product-scraper-response.json"。 读取文件后,它会尝试解析其中包含的 JSON 数据。 如果解析成功,会提取出 "price" 来自的财产 "body" JSON 数据的对象。 然后,提取的价格值将打印到控制台。

从 JSON 文件中抓取亚马逊产品价格

刮掉产品评级

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// 导入fs模块
常量 FS = 要求('fs');

fs。读取文件('亚马逊-产品-scraper-response.json', 'utf8', (错误,数据) => {
if (呃) {
领事.错误(“读取 JSON 文件时出错:”, 呃);
回报;
}

尝试 {
// 解析JSON数据
常量 json数据 = JSON.解析(数据);

// 提取特定值(例如年龄)
常量 产品评级 = jsonData.身体.客户评论;

// 打印提取的值
领事.日志('评分:',产品评级);
} 捕捉 (错误) {
领事.错误(“解析 JSON 数据时出错:”, 错误);
}
});

该代码读取名为的 JSON 文件的内容 "amazon-product-scraper-response.json"。 然后它尝试解析 JSON 数据并提取存储在密钥下的值 "customerReview" 来自 "body" 目的。 提取的值似乎代表产品的评级,打印为“Rating:”,后跟该值。

从 JSON 文件中抓取亚马逊产品评级

抓取产品图片

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// 导入fs模块
常量 FS = 要求('fs');

fs。读取文件('亚马逊-产品-scraper-response.json', 'utf8', (错误,数据) => {
if (呃) {
领事.错误(“读取 JSON 文件时出错:”, 呃);
回报;
}

尝试 {
// 解析JSON数据
常量 json数据 = JSON.解析(数据);

// 提取特定值(例如年龄)
常量 产品图像 = jsonData.身体.主图像;

// 打印提取的值
领事.日志('图像:',产品图片);
} 捕捉 (错误) {
领事.错误(“解析 JSON 数据时出错:”, 错误);
}
});

上面的脚本尝试解析 JSON 数据并提取存储在密钥下的值 "mainImage" 字幕可视电话用于 "body" 目的。 提取的值(可能代表产品图像)打印为 "Image:" 接下来是值。 获得的图像值将记录到控制台。

从 JSON 文件中抓取亚马逊产品图片 URL

使用 Crawlbase 的集成刮刀抓取亚马逊产品评论

在此示例中,我们将抓取同一亚马逊产品的客户评论。 我们抓取的目标 URL 是 https://www.amazon.com/product-reviews/B099MPWPRY。 Crawlbase 的 Crawling API 有一个专为亚马逊产品评论设计的集成抓取工具。 该抓取工具使我们能够从亚马逊产品中检索客户评论。 为了实现这一点,我们需要做的就是将“scraper”参数合并到 Crawling API 的使用中,并为其分配值 "amazon-product-reviews"。 让我们研究下面的示例以获得更清晰的了解:

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' });

// 要抓取的亚马逊页面的 URL
常量 亚马逊页面网址 = 'https://www.amazon.com/product-reviews/B099MPWPRY';

// 爬取 API 的选项
常量 选项= {
刮刀: “亚马逊产品评论”,
};

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

运行上述脚本将导致通过 Crawlbase Crawling API 提取亚马逊产品评论数据。 当代码执行时,它会获取与指定亚马逊产品页面相关的评论信息。 该数据将以 JSON 格式显示并显示在控制台上,提供有关客户体验和意见的宝贵见解。 结构化输出展示评论的各个方面,包括评论者姓名、评级、评论日期、评论标题等。

亚马逊产品客户评论的 JSON 响应

我们通过详细的分步指南揭示了数据提取的潜力。 首先利用 Crawlbase Crawling API 的集成 Amazon Scrapers 来抓取复杂的 Amazon 产品信息,例如产品描述、价格、卖家和库存情况。 此外,该指南还展示了 Crawlbase 抓取 API 如何无缝地促进客户评论的提取,提供丰富的信息,例如评论者姓名、评级、日期和评论文本。

使用 Crawlbase 抓取 API 克服亚马逊产品数据抓取挑战

亚马逊产品数据抓取挑战

Crawlbase Crawling API 旨在解决与网络抓取相关的挑战,特别是在涉及抓取亚马逊产品数据的场景中。 以下是 Crawlbase 爬网 API 如何帮助缓解这些挑战:

  1. 防刮措施: Crawlbase 抓取 API 利用先进技术绕过验证码、IP 阻止和用户代理检测等反抓取机制。 这可以实现无缝数据收集而不触发警报。
  2. 动态网站结构: 该 API 能够利用智能算法来适应网站结构的变化,自动调整抓取模式以匹配亚马逊页面不断变化的布局。
  3. 法律和道德问题: Crawlbase 尊重亚马逊等网站的使用条款,确保以负责任和道德的方式进行抓取。 这最大限度地减少了法律诉讼和道德困境的风险。
  4. 数据量和速度: 该 API 通过在多个服务器之间分配抓取任务来有效管理大量数据,从而实现快速且可扩展的数据提取。
  5. 产品信息的复杂性: Crawlbase 的抓取 API 采用智能数据提取技术,可以准确捕获复杂的产品信息,例如评论、定价、图像和规格。
  6. 速率限制和 IP 阻止: API 通过智能限制请求和轮换 IP 地址来管理速率限制和 IP 阻止,确保数据收集保持不间断。
  7. 验证码挑战: Crawlbase 的 Crawling API 可以通过自动解决机制处理验证码,无需人工干预并加快抓取过程。
  8. 数据质量和完整性: API 提供数据验证和清理功能,以确保抓取的数据准确且最新,从而降低使用过时或不正确信息的风险。
  9. 抓取脚本的稳健性: API 的稳健架构旨在处理网站结构中的各种场景、错误和变化,从而减少持续监控和调整的需要。

Crawlbase 抓取 API 提供了一个全面的解决方案,可以解决抓取亚马逊产品数据的复杂性和挑战。 通过提供智能抓取技术、强大的架构和遵守道德标准,该 API 使企业能够收集有价值的见解,而不会遇到与网络抓取相关的典型障碍。

抓取亚马逊商品数据的应用

抓取亚马逊商品数据的应用
  1. 可以利用抓取数据的关键领域之一是分析客户评论以改进产品。 通过仔细检查反馈,企业可以确定其产品可以改进的领域,从而提高客户满意度。
  2. 抓取数据的另一个有价值的应用是识别市场趋势和需求模式。 通过分析客户行为的模式和趋势,企业可以预测消费者的需求并相应地调整其产品。 这使他们能够在竞争中保持领先地位并提供高需求的产品或服务。
  3. 监控竞争对手的定价策略是抓取数据的另一个重要用途。 通过仔细研究竞争对手如何为其产品定价,企业可以就其定价调整做出明智的决策。 这确保了他们在市场上保持竞争力,并可以实时调整定价策略。
  4. 电子商务企业可以使用抓取的产品数据来生成网站内容,例如产品描述、功能和规格。 这可以改善搜索引擎优化 (SEO) 并增强在线购物体验。
  5. 品牌可以通过抓取产品数据并将其与正品进行比较来监控亚马逊是否存在未经授权或假冒产品。

了解更多: 如何用 Ruby 抓取亚马逊数据?

结论

总之,亚马逊数据抓取领域为企业提供了释放隐藏见解和战略优势的宝贵机会。 这份分步亚马逊数据抓取指南阐明了亚马逊产品数据的重要性及其推动业务增长的潜力。 通过有效提取和分析这些数据,公司可以在各个运营方面做出明智的决策。

了解亚马逊产品数据的重要性是基础。 这些数据是市场趋势、竞争对手策略和客户偏好的宝库。 有了这些知识,企业就可以优化定价、微调营销活动、简化库存管理并有效地制定整体业务战略,以满足消费者的需求。

常见问题

常见问题

问:是否可以从亚马逊抓取公共数据?

由于内容的开放性,可以从亚马逊抓取公共数据,例如产品列表、价格、描述和客户评论。 网站用户可以访问这些数据,并且可以通过网络抓取技术收集这些数据。

然而,需要注意的是,亚马逊的使用条款禁止某些类型的自动数据收集,因此任何有兴趣抓取亚马逊数据的人都应查看并遵守其条款,以避免任何法律或道德问题。

问:亚马逊商品数据有哪些不同类型?

销售排名和类别信息:提供有关亚马逊上产品的受欢迎程度和竞争力的宝贵见解。 通过分析销售排名数据,您可以识别高需求商品并战略性地定位您自己的产品。 此外,了解产品的类别可以让您了解市场趋势并相应地调整您的营销策略。

产品描述和特点:在吸引潜在客户方面发挥着至关重要的作用。 详细的产品描述和引人注目的语言可以帮助消费者了解特定产品的优点和独特的卖点。 同样,突出关键功能可以清楚地说明该产品与同类产品的区别。

客户问题与解答:为潜在买家提供有价值的社会证明。 通过抓取这些数据,您可以获取已购买或正在考虑购买该产品的客户的实时反馈。 这种洞察力使您能够解决常见问题或误解,提高客户满意度,同时提高销售转化率。

问:什么是亚马逊 ASIN?

亚马逊标准识别码 (ASIN) 是分配给亚马逊平台上列出的每个产品的唯一标识符。 这些字母数字代码对于产品编目和区分至关重要,这使得它们对于各种数据分析和抓取任务至关重要。

了解更多: 大规模抓取亚马逊 ASIN:Crawlbase 智能代理的力量

在互联网(包括亚马逊)上抓取公开数据是合法的。 抓取产品描述、详细信息、评级、价格或对某种产品的反应次数等信息是绝对合法的。 请注意个人信息和版权保护。

例如,在抓取产品评论时,您必须考虑潜在的个人数据,例如评论者的姓名和头像,这些数据需要仔细处理。 此外,在某些情况下,评论文本可能受到版权保护。 建议在处理此类数据时格外小心并可能寻求法律建议。

问:是否可以检测网络抓取活动?

是的,反机器人软件可以通过检查您的 IP 地址、浏览器设置、用户代理和其他特征来检测抓取。 网站被发现后会显示验证码; 如果不解决,您的IP地址将被列入黑名单。

问:抓取亚马逊商品数据时如何绕过验证码?

验证码是收集公共数据时最具挑战性的障碍之一,为了克服验证码,您应该尽可能避免遇到它们。 当然,重要的是要避免它们可能很困难。 以下是一些可以帮助您实现目标的提示:

  • 使用无头浏览器。
  • 使用值得信赖的代理并轮换您的 IP 地址。
  • 通过在请求之间插入随机中断来降低抓取速度。