2016-05-13 5 views
0

複数のスパイダーを連結して1つの出力がもう1つのフィードになるようにしたい。私はScrapyが構文解析関数を連結し、アイテムのcomunicateに要求のMetaパラメータを使用する方法を認識しています。スパイダーで連結する

class MySpider(scrapy.Spider): 
    start_urls = [url1] 
    def parse(self, response): 
     # parse code and item generated 
     yield scrapy.Request(url2, call_back=self.parse2, meta={'item': item}) 

    def parse2(self, response): 
     item = response.meta['item']    
     # parse2 code 

しかし、私が連結する機能を解析し、この複雑さの増大は、よりモジュールと複数のクモとデバッグが容易になるのは非常に長いリストを持っています。

ありがとうございます!あなたはclose_spider信号をオーバーライドして、そこから次のクモを呼び出す必要があり、各ユースケース次

のために複数のクモを書かれているようcronジョブのschedulibg以外

+0

だけでセットアップ別のクモからの情報を渡すことについて、私は考えて実行していくつかの 'cron'、だ完了すると次の依存クモを呼び出す必要

私は別のファイル、dbsなどでそれを扱う方が良いでしょう。 – eLRuLL

答えて

0

アプローチが使用して、close_spider信号

を上書きすることであろうスクリプト。あなたはすべてのスパイダーのために、この信号のオーバーライドを行うとすぐに現在のスパイダーは、それが操作