无法调用 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):
....
我需要检查我的蜘蛛打开时文件是否被锁定。我无法得到开火的信号。到目前为止,这是我的代码:
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):
....