Scrapy:无法覆盖__init__function

时间:2012-07-21 17:43:30

标签: python scrapy

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

我需要使用__init__函数,但总是收到此错误:

代码:

class mySpider(CrawlSpider):

 def __init__(self):
   super(mySpider, self).__init__()
     .....

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

没有__init__功能一切正常

1 个答案:

答案 0 :(得分:5)

你需要这样说:

def __init__(self, *a, **kw):
    super(MySpider, self).__init__(*a, **kw)
    # your code here

工作示例:

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)

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