从亚马逊保存产品名称和价格非常简单,只需标记任何产品的名称和价格,然后将它们存储在您想要的任何地方。 但是……如果您要保存数百甚至数千个产品名称和价格怎么办? 同样的伎俩会奏效吗? 至少对我们来说不是!

在本文中,我们将向您展示如何使用一些 Ruby 库快速构建一个简单的爬虫,以从亚马逊抓取产品名称和价格,可应用于数百种亚马逊产品。

使用 Crawlbase(以前的 ProxyCrawl)爬取亚马逊

让我们创建一个文件 amazon_scraper.rb 其中将包含我们的 ruby​​ 代码。

让我们通过在命令提示符处粘贴以下内容来安装我们的两个要求:

  • gem install proxycrawl
  • gem install nokogiri

现在是时候开始编码了。 让我们在 amazon_scraper.rb 文件,我们将首先使用 Crawlbase(以前的 ProxyCrawl)ruby 库加载一个亚马逊产品 URL 的 HTML 页面。 我们需要初始化库并使用我们的令牌创建一个工人。 对于亚马逊,我们应该使用普通令牌,确保用您的实际令牌替换它 你的帐户.

1
2
3
4
5
要求 '代理爬行'

接口= 抓取库::API。新的(令牌: 你的代币)
网址= 'https://www.amazon.com/dp/B081FZV45H'
html = api.get(url)

我们现在正在加载 URL,但我们没有对结果做任何事情。 所以现在是时候开始抓取产品的名称和价格了。

抓取亚马逊数据

我们将使用 Ruby Nokogiri 库 我们之前安装的用于解析生成的 HTML 并仅提取亚马逊产品的名称和价格。

让我们编写我们的代码,它应该解析一个 HTML 正文并相应地抓取产品名称和价格。

1
2
3
4
5
要求 'nokogiri'

文档 = Nokogiri::HTML(html.body)
产品名称 = doc.at('#productTitle').text.strip
product_price = doc.at('#priceblock_ourprice').text.strip

完整的代码应如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
要求 '代理爬行'
要求 'nokogiri'

接口= 抓取库::API。新的(令牌: 你的代币)

网址= 'https://www.amazon.com/dp/B081FZV45H'
html = api.get(url)

文档 = Nokogiri::HTML(html.body)
产品名称 = doc.at('#productTitle').text.strip
product_price = doc.at('#priceblock_ourprice').text.strip

看跌期权 “亚马逊产品网址: #{网址}"
看跌期权 “亚马逊产品名称: #{产品名称}"
看跌期权 “亚马逊产品价格: #{产品价格}"

现在我们应该在命令提示符中拥有我们抓取的亚马逊产品名称和价格,如下所示:

亚马逊数据抓取结果

代码已准备就绪,您可以快速抓取亚马逊产品以获取其名称和价格。 您可以在控制台中查看结果,其中可以将其保存在数据库中、保存在文件中等。这取决于您。

我们希望你喜欢这个教程,我们希望很快见到你 Crawlbase(以前的 ProxyCrawl).

快乐爬行!