2017-05-22 12 views
0

私は異なるstart_requestsメソッドを使って2つのスパイダーをScrapyに書きますが、まったく同じparseメソッドを書きます。しかし、parseはインスタンスメソッドなので、すべてのコードを単純にコピー&ペーストすることなく、スパイダーから他のスパイダーにコピーする方法がわかりません。私はどうすればこれについて行くことができますか?Scrapyでは、コードを繰り返さずに同じ解析メソッドで2つのスパイダーを書く方法は?

答えて

2

あなたは、他の場合には同様に内在使用することができます任意の方法はfun(the_self, other_args...)のような関数である

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 
1

。したがって、共通コードをself引数を持つ関数として実装することはできますが、クラス外で実装することは可能です。次に、これを最初の引数としてselfに渡して呼び出します。

関連する問題