我有继承问题。可能初学者错了。我做了两个Scrapy蜘蛛:
from scrapy.spiders import SitemapSpider
class SchemaorgSpider(SitemapSpider):
name = 'schemaorg'
def parse(self, response):
print "parse"
...
和
from schemaorg import SchemaorgSpider
class SchemaorgSpider_two(SchemaorgSpider):
name = 'schemaorg_two'
sitemap_urls = [
urltoparse
]
sitemap_rules= [('/stuff/','parse_fromrule')]
def parse_fromrule(self, response):
print "parsefromrule"
self.parse(response)
我基本上定义了mparse中的所有逻辑,然后在所有子类中使用它。当我运行我的第二只蜘蛛时,我只能看到" parsefromrule"而不是"解析"。这对我来说就像"继承101"但它不起作用。 它有什么问题? 编辑:测试没有scrapy工作:
class a(object):
def aa(self):
print "hello"
class b(a):
def bb(self):
self.aa()
class c(b):
def cc(self):
self.aa()
hello = c()
hello.cc()
hello.bb()
hello.aa()
我看到所有3"你好"。我很困惑为什么它不能与Scrapy合作。
Edit2:如果我把self.blabla(响应)而不是self.parse(响应)我得到一个错误。这意味着它正在寻找现有的方法。