我正在编写scrapy爬虫,以从电子商务网站中抓取数据。 网站上有颜色版本,每个版本都有自己的价格,尺寸和该尺寸的库存。 要获取价格,尺寸和变种的库存,请访问变种(颜色)的链接。 并且所有数据需要记录在一个记录中。 我尝试使用请求,但速度很慢,有时无法加载页面。
我已使用requests.get()
编写了搜寻器,并在scrapy.selector.Selector()
中使用了响应并解析了数据。
我的问题是,有什么方法可以使用scrapy.Request()来获取响应,而在回调函数中我不能使用它。我需要在与下面相同的位置进行响应(如下所示),
response = scrapy.Request(url=variantUrl)
sizes = response.xpath('sizesXpath').extract()
我知道scrapy.Request()
需要名为callback=self.callbackparsefunction
的参数
当scrapy生成响应以处理生成的响应时,将调用该方法。我不想使用回调函数,而要在当前函数中处理响应。
或者有什么方法可以将回调函数的响应返回到scrapy.Request()
编写如下的函数(类似下面的内容)
def parse(self, response):
variants = response.xpath('variantXpath').extract()
for variant in variants:
res = scrapy.Request(url=variant,callback=self.parse_color)
# use of the res response
def parse_color(self, response):
return response