有没有办法在亚马逊上获得特定卖家的所有商品? 当我尝试使用不同形式的网址向商店提交请求时(基本是(“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响应。
答案 0 :(得分:1)
我使用scrapy shell,而@PadraicCunningham回答它并不支持位置标题。 从蜘蛛运行代码解决了这个问题。
答案 1 :(得分:0)
由于您需要一个特定卖家销售的所有商品的清单,您可以专门分析该卖家的页面。
在这里,我将以Kindle电子阅读器卖家为例。
在浏览器中打开控制台并选择卖家页面上的最大页数元素,您可以看到该卖家的最大页数在标签<span class="pagnLink"> </span>
内,所以你可以找到这个标签并从中提取最大页数。
当您移动到此卖家的商品列表的下一页(从page = 1到page = 2)时,您可以看到网址略有变化,因此您可以轻松构建新的如果你想转到下一页,请记下网址。
设置一个循环,其限制是您在第一步中获得的最大页数。
分析您想要在该页面上获得的特定数据,分析它们所在的html标签,并使用一些文本分析库来帮助您提取数据。 (re,BeautifulSoup .etc)
简而言之,您必须在编写代码之前分析页面。 当您开始编码时,您应首先发出请求,然后从您的请求中获取响应,然后从响应中提取有用数据(根据您在编写代码之前分析的规则)。