我创建了一个继承自 CrawlSpider 的蜘蛛。
我需要使用 __init__
函数,但总是出现此错误:
代码:
class mySpider(CrawlSpider):
def __init__(self):
super(mySpider, self).__init__()
.....
这是我得到的错误: 找不到 KeyError Spider:mySpider。
没有 __init__
函数一切正常
最佳答案
你需要这样写:
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 用于在 spider 中注册 scrapy 信号,我在这个例子中需要它在 spider 中而不是通常在管道中
关于python - Scrapy:无法覆盖 __init__function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11594485/