我正在尝试抓取此页面: https://www.jny.com/collections/bottoms
总共有55个产品列出,而页面加载后仅列出24个。但是,div包含所有55个产品的列表。我正在尝试像这样使用scrappy进行刮擦:
def parse(self, response):
print("in herre")
self.product_url = response.xpath('//div[@class = "collection-grid js-filter-grid"]//a/@href').getall()
print(len(self.product_url))
print(self.product_url)
它只给我一个长度为25的列表。我如何得到其余的?
答案 0 :(得分:0)
我建议直接通过API对其进行抓取-另一个选择是使用Splash / Selenium之类的语言来渲染Javascript,
如果您在Chrome / Firefox上的开发人员工具中打开“网络”面板,仅过滤XHR请求并重新加载页面,则应该能够看到所有已发送的请求。其中一些请求可以帮助我们弄清楚如何将数据加载到HTML中。这是幕后情况的屏幕截图。
单击这些请求可以为我们提供有关如何进行请求以及请求结构的更多详细信息。最终,对于您的用例,您可能希望向https://www.jny.com/collections/bottoms/products.json?limit=250&page=1
发送请求并解析响应中每个产品的body_html
属性(也许使用scrapy.selector.Selector
),并根据需要使用。祝你好运!