我创建了一个继承自CrawlSpider的蜘蛛.
我需要使用该__init__函数,但始终收到此错误:
码:
class mySpider(CrawlSpider):
def __init__(self):
super(mySpider, self).__init__()
.....
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误:未找到KeyError Spider:mySpider.
没有这个__init__功能一切正常
你需要这样说:
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信号,我在蜘蛛中需要它,而不是通常在管道中