首页 > 解决方案 > Scrapy 自定义函数无法触发 scrapy.Requests

问题描述

似乎yield scrapy.Requests无法在类似以下代码的函数中触发。任何人都可以帮我清除或帮助我开火吗?非常感谢您的帮助。

class MySpider(CrawlSpider):
    ...

    def start_requests(self):
        yield scrapy.Request(url,
                             callback=self.parse_items)

    ...

    def parse_items(self, response):
        def __fire_here(response)

    ...

    def __fire_here(response):
        # Cannot fire here, why?
        yield scrapy.Request(url,
                             callback=self.parse_items) 

标签: scrapy

解决方案


为避免代码重复,您可以通过__fire_here以下方式调用您的函数:

def parse_items(self, response):
    yield self.__fire_here(response)

def __fire_here(self, response):
    # yield some request here

您的代码似乎从一个函数到另一个函数进行了无休止的调用。你能检查你的逻辑吗?


推荐阅读