Scrapy:无法覆盖__init__function

Dja*_*oPy 3 python scrapy

我创建了一个继承自CrawlSpider的蜘蛛.

我需要使用该__init__函数,但始终收到此错误:

码:

class mySpider(CrawlSpider):

 def __init__(self):
   super(mySpider, self).__init__()
     .....
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:未找到KeyError Spider:mySpider.

没有这个__init__功能一切正常

ibl*_*vic 7

你需要这样说:

def __init__(self, *a, **kw):
    super(MySpider, self).__init__(*a, **kw)
    # your code here
Run Code Online (Sandbox Code Playgroud)

工作范例:

class MySpider(CrawlSpider):
    name = "company"
    allowed_domains = ["site.com"]
    start_urls = ["http://www.site.com"]

    def __init__(self, *a, **kw):
        super(MySpider, self).__init__(*a, **kw)
        dispatcher.connect(self.spider_closed, signals.spider_closed)
Run Code Online (Sandbox Code Playgroud)

这里init用于在spider中注册scrapy信号,我在蜘蛛中需要它,而不是通常在管道中