Scrapy抓取电子商务网站

时间:2019-09-11 05:39:51

标签: python web-scraping scrapy

我正在尝试使用Scrapy来抓取Carousell的几个图像。查询和站点页面的示例为https://sg.carousell.com/search/products/?query=shirt。要加载更多图像,需要单击“加载更多”按钮。我注意到这会在/api-service/search/search/3.3/products/上触发对API的查询。此API似乎不支持> 20个结果,并且从观察到API的网络流量来看,需要将Session值哈希化为以某种方式增加,我不知道如何。任何人都可以协助建议如何增加会话ID以获取下一组结果,或者提供其他方法来从页面中提取列表。

1 个答案:

答案 0 :(得分:0)

您可以在页面本身中找到会话和searchContext:

import json

initial_state = response.xpath('//script[contains(text(),"initialState")]/text()').extract_first()
first = initial_state.index("window.initialState=") + len("window.initialState=")
data = json.loads(initial_state[first:])
session_id = data['SearchListing']['parameters']['session']
search_context = data['SearchListing']['parameters']['searchContext']

使用此方法,您应该可以构建api调用。