2017-04-13 277 views

回答

1

这些项目是通过AJAX请求生成的。当你连接到一个页面时,会执行一个JavaScript脚本,它会发出一些额外的http请求来检索一些json数据。然而,scrapy不会执行任何JavaScript,因此您需要手动查找并调用这些AJAX请求。

查看相关问题:Can scrapy be used to scrape dynamic content from websites that are using AJAX?,看看如何检查网络流量并解决此类情况。

在这种特殊情况下,你可以看到正在取得第一xhr请求返回一个极大的JSON文件的所有项目的数据:

http://bananarepublic.gap.com/resources/productSearch/v1/search?cid=1055063&isFacetsEnabled=true&globalShippingCountryCode=&globalShippingCurrencyCode=&locale=en_US&

正如你所看到的网址需要一些参数,最重要的它需要cid它代表类别ID和其他参数大多用于计算出货价格,所以如果你不关心那些该作品一样好:

http://bananarepublic.gap.com/resources/productSearch/v1/search?cid=1055063