正如 Gaby 所说,内容是动态加载的。您可以通过以下方式查看:
- 用chrome打开网站报废(firefox也有办法)
- 按 F12 打开 DevTools
- 选择“网络”标签
- 选择“XHR”作为过滤器
- 进行搜索(或重新加载网站)
XHR 过滤器
您将看到一个项目列表,您想要的是:
search?cid=5168&isFacetsEnabled=true&globalShippingCountryCode=&globalShippingCurrencyCode=&locale=en_US&pageId=0
如果您单击它,您可以看到带有标题的 http 请求和带有您想要的所有数据的响应。
要在scrapy上执行此操作有点复杂,您必须废弃此链接,但使用“POST”方法而不是默认方法(“GET”)。要从一个爬虫蜘蛛做到这一点:
yield scrapy.Request(url, self.parse_data, method="POST", headers=headers, body=body)
URL 应该是您在 XHR 过滤器中找到的那个,使用的方法是“POST”,您应该复制我们之前找到的标题,并且在正文中包含您正在搜索的特定参数。从那里你会得到一个 JSON 响应,你可以将它保存到一个文件或做任何你想做的事情。
如果您需要更多详细信息,请告诉我。