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

时间:2016-10-09 09:05:13

标签: web-scraping scrapy amazon

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

甚至在蜘蛛本身之前,从scrapy外壳(亚马逊的一些随机商店)

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响应。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

在这里,我将以Kindle电子阅读器卖家为例。

  1. 在浏览器中打开控制台并选择卖家页面上的最大页数元素,您可以看到该卖家的最大页数在标签<span class="pagnLink"> </span>内,所以你可以找到这个标签并从中提取最大页数。

  2. 当您移动到此卖家的商品列表的下一页(从page = 1到page = 2)时,您可以看到网址略有变化,因此您可以轻松构建新的如果你想转到下一页,请记下网址。

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

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

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