使用scrapy从特定的亚马逊商店获取所有产品

Posted

技术标签:

【中文标题】使用scrapy从特定的亚马逊商店获取所有产品【英文标题】:Get all products from specific amazon store using scrapy 【发布时间】:2017-02-17 21:42:36 【问题描述】:

有没有办法在亚马逊上获取特定卖家的所有商品? 当我尝试使用不同形式的 url 向商店提交请求时(基本是(“https://www.amazon.com/shops/”),我得到 301,没有其他信息。

甚至在蜘蛛本身之前,来自scrapy shell(来自亚马逊的一些随机商店)

scrapy shell "https://www.amazon.com/shops/A3TJVJMBQL014A"

有301响应码:

 request    <GET https://www.amazon.com/shops/A3TJVJMBQL014A>
 response   <301 https://www.amazon.com/shops/A3TJVJMBQL014A>

在浏览器中它会被重定向到https://www.amazon.com/s?marketplaceID=ATVPDKIKX0DER&me=A3TJVJMBQL014A&merchant=A3TJVJMBQL014A&redirect=true

使用生成的 URL 也会导致 301 响应。

【问题讨论】:

您想获得一个特定卖家销售的所有商品的清单,或者您想获得亚马逊上所有卖家的清单? 我想要一个特定卖家的所有商品。 你的代码在哪里? shell 不解析位置头并跟随它。当您在蜘蛛中运行代码时,它会 @PadraicCunningham 非常感谢!成功了! 【参考方案1】:

我使用的是scrapy shell,而@PadraicCunningham 回答它不支持位置标头。 从蜘蛛运行代码解决了这个问题。

【讨论】:

【参考方案2】:

由于您想要一个特定卖家销售的所有商品的清单,您可以专门分析该卖家的页面。

这里我以 Kindle 电子书阅读器卖家为例。

    在浏览器中打开控制台,选择卖家页面的最大页数元素,可以看到该卖家的最大页数在标签&lt;span class="pagnLink"&gt; &lt;/span&gt;内,所以你可以找到这个标签和从中提取最大页数。

    当您移动到该卖家商品列表的下一页(从page=1到page=2)时,您可以看到url有轻微的变化,因此您可以在需要时轻松构建新的url移到下一页。

    设置一个循环,其限制是您在第一步中获得的最大页数。

    分析您想在该页面上获取的特定数据,分析它们内部的 html 标签,并使用一些文本分析库来帮助您提取数据。 (重新,BeautifulSoup .etc)

简而言之,您必须在编写代码之前分析页面。 当你开始编码时,你应该首先发出请求,然后从你的请求中获取响应,然后从响应中提取有用的数据(根据你在编写代码之前分析的规则)。

【讨论】:

以上是关于使用scrapy从特定的亚马逊商店获取所有产品的主要内容,如果未能解决你的问题,请参考以下文章

亚马逊产品进口

有没有办法为亚马逊的产品获取 XML?

如何获得所有亚马逊类别的产品

使用 PHP 检索亚马逊商店的产品列表?

使用 ASIN 在亚马逊获取商品/产品价格

在亚马逊附属产品 API 中出现问题以从亚马逊获取产品