Python 如何回到Scrapy中以前的蜘蛛

Python 如何回到Scrapy中以前的蜘蛛,python,web-scraping,scrapy,Python,Web Scraping,Scrapy,我想做一件事。我有一只蜘蛛是用刮痧写的。它有两个解析函数,如下所示 def parse(self, response): ... for var in dict ... scrapy.Request(link + var, callback=self.parse_info) def parse_info(self, response) ... do something 我想做的是在parse_info中获取数据,完成后返回pars

我想做一件事。我有一只蜘蛛是用刮痧写的。它有两个解析函数,如下所示

def parse(self, response):

   ...
   for var in dict
      ...

      scrapy.Request(link + var, callback=self.parse_info)


 def parse_info(self, response)

    ...
    do something

我想做的是在parse_info中获取数据,完成后返回parse方法继续迭代。在scrapy中是否存在这样做的方法?

您将在解析调用中使用'Yield',在解析信息调用中使用'return'

def parse(self, response):

...
for var in dict
  ...

  yield Request(item['page_url'], callback=self.parse_info)


def parse_info(self, response)

  ...
  do something
  return something

你确定这样做我会继续迭代吗?不幸的是,这不是我需要的。当parse_info完成执行时,它将继续在parse方法中迭代,但我无法再调用解析中的任何返回。相反,我会打电话给return返回里面的字典parse@eng_mazzy:是的,我非常确定,因为我所有的刮刀都是这样工作的,我不知道你是否需要它,但这就是它的工作原理,这就是你问题的答案。你的问题和评论可能会更宝贵。像呼叫“返回”这样的事情并不存在,至少我没有听说过这样的事情。调用函数时,可能返回值,也可能不返回值。在提交此类评论时,将我的答案标记为否定是非常荒谬的。不要试图在一个解析函数中塞进太多东西。一个函数应该只做一件事。def parse:def parse_info:def parse_more_info:etc。。。。