如何使用Scrapy Request并在同一位置获得响应?

Its*_*thn 6 python callback scrapy

我正在编写scrapy爬虫来从电子商务网站上抓取数据。该网站有颜色变体,每个变体都有自己的价格、尺寸和该尺寸的库存。要获取变体的价格、尺寸和库存,需要访问变体(颜色)的链接。所有数据都需要在一份记录中。我尝试过使用请求,但速度很慢,有时无法加载页面。

requests.get()我已经使用和解析数据中的响应编写了爬虫scrapy.selector.Selector()

我的问题是,有什么方法可以使用 scrapy.Request() 来获取响应,而不是在回调函数中使用它。我需要在下面相同的地方得到回复(如下所示),

response = scrapy.Request(url=variantUrl)
sizes = response.xpath('sizesXpath').extract()
Run Code Online (Sandbox Code Playgroud)

我知道scrapy.Request()require 参数被调用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
Run Code Online (Sandbox Code Playgroud)

Tom*_*art 1

看看scrapy-inline-requests包,我认为这正是您正在寻找的。