Не удается получить Scrapy spider_opened для вызова - PullRequest
0 голосов
/ 29 мая 2018

Мне нужно проверить, заблокирован ли файл при открытии моего паука.Я не могу получить сигнал к стрельбе.Вот мой код на данный момент:

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)

Любые идеи о том, как я могу заставить это работать?

1 Ответ

0 голосов
/ 29 мая 2018

Статические методы не получают класс в качестве первого аргумента, фактически дополнительный аргумент не предоставляется.Удалите cls, и это должно исправить ошибку.

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

Обновление

from_crawler() должно быть методом класса, а нестатический метод:

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