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

Python 如何使用Scrapy请求并在同一位置获得响应?,python,callback,scrapy,Python,Callback,Scrapy,我正在编写scrapy crawler来从电子商务网站上抓取数据。 该网站有颜色变体,每个变体都有自己的价格、尺寸和库存。 要获取variant的价格、尺寸和库存,需要访问variant(颜色)的链接。 所有需要的数据都在一个记录中。 我尝试过使用请求,但速度很慢,有时无法加载页面 我使用requests.get()编写了爬虫程序,并使用scrapy.selector.selector()中的响应来解析数据 我的问题是,是否有任何方法可以使用scrapy.Request()来获取响应,而不是在回

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

我使用
requests.get()
编写了爬虫程序,并使用
scrapy.selector.selector()中的响应来解析数据

我的问题是,是否有任何方法可以使用scrapy.Request()来获取响应,而不是在回调函数中使用它。我需要在与下面相同的位置(类似于下面的内容)进行响应

我知道
scrapy.Request()
require参数调用
callback=self.callbackparsefunction
当scrapy生成响应以处理生成的响应时,将调用该函数。我不想使用回调函数,我想在当前函数中处理响应

或者是否有任何方法可以将回调函数的响应返回到
scrapy.Request()
编写如下的函数(如下所示)


看看软件包,我想它正是您想要的。

您能解释一下为什么回调不是一个选项吗?在我的情况下回调不是一个选项,因为我不希望每个变量都是单独的产品,我想把它作为一个记录的一部分,只有三个字段需要加载变量页有更多的字段是从第一个页面收集的,而不是从变量页收集的,变量不仅仅是一个会有两个以上,所以我不能使用可以通过requestin for循环传递的元数据,如果在Request对象中传递meta,我认为每个请求都会将其解析的数据构建在meta dict之上
response = scrapy.Request(url=variantUrl)
sizes = response.xpath('sizesXpath').extract()
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