无法调用 Scrapy spider_opened

Can't get Scrapy spider_opened to be called

我需要检查我的蜘蛛打开时文件是否被锁定。我无法得到开火的信号。到目前为止,这是我的代码:

from scrapy import signals

class MySpider(Spider):

    @staticmethod
    def from_crawler(cls, crawler, *args, **kwargs):

        spider = MySpider.from_crawler(crawler, *args, **kwargs)
        crawler.signals.connect(spider.spider_opened, signal=signals.spider_opened)
        return spider

    def spider_opened(self):
        if lockFile(self.name + ".lock"):
        sys.exit()

我收到以下错误:

TypeError: from_crawler() takes at least 2 arguments (1 given)

关于如何让它工作的任何想法?

静态方法不接收 class 作为第一个参数,实际上没有提供额外的参数。删除 cls 它应该更正错误。

@staticmethod
def from_crawler(crawler, *args, **kwargs):
    ....

更新

from_crawler() 应该是 class 方法,而不是静态方法:

@classmethod
def from_crawler(cls, crawler, *args, **kwargs):
    ....