Python 在Scrapy中,如何使用相同的解析方法编写两个spider而不重复代码?
我想用不同的方法写两个spider,但方法完全相同。但是,由于Python 在Scrapy中,如何使用相同的解析方法编写两个spider而不重复代码?,python,scrapy,dry,Python,Scrapy,Dry,我想用不同的方法写两个spider,但方法完全相同。但是,由于parse是一种实例方法,因此我不知道如何在不简单地复制粘贴所有代码的情况下将它从一个spider“复制”到另一个spider。我怎样才能做到这一点呢?您可以像在任何其他情况下一样使用inherence: class BaseSpider(scrapy.Spider): def parse(self, request): pass # Common parse code class SpiderOne(Ba
parse
是一种实例方法,因此我不知道如何在不简单地复制粘贴所有代码的情况下将它从一个spider“复制”到另一个spider。我怎样才能做到这一点呢?您可以像在任何其他情况下一样使用inherence:
class BaseSpider(scrapy.Spider):
def parse(self, request):
pass # Common parse code
class SpiderOne(BaseSpider):
def start_requests(self):
pass # Code for this spider
class SpiderTwo(BaseSpider):
def start_requests(self):
pass # Code for other spider
您可以像在任何其他情况下一样使用inherence:
class BaseSpider(scrapy.Spider):
def parse(self, request):
pass # Common parse code
class SpiderOne(BaseSpider):
def start_requests(self):
pass # Code for this spider
class SpiderTwo(BaseSpider):
def start_requests(self):
pass # Code for other spider
任何方法都是类似于
fun的函数(自身、其他参数…
)。因此,您可以使用self
参数将公共代码实现为函数,但不在任何类之外。然后通过传递这个self
作为第一个参数来调用它。任何方法都是类似fun的函数(self、其他参数…
)。因此,您可以使用self
参数将公共代码实现为函数,但不在任何类之外。然后通过将此self
作为第一个参数来调用它