2016-09-15 30 views
1

私はその質問に対する回答を見つけることができません。どのように私はscrapyスパイダーの終了後にPythonコードを実行することができますPython Scrapy - スパイダー終了後にコードを実行

を私は(DEF(自己、応答)parse_item :)応答を解析し、関数内で次のようでした: self.my_function() 私はmy_functionのを定義したより()しかし、問題はそれがまだクモのループの内側にあるということです。私の主な考えは、収集されたデータでスパイダーのループの外の関数でコードを実行することです。おかげさまで 次のように

答えて

3

はScrapyクラスの機能closedを使用します。

class MySpider(scrapy.Spider): 
    # some attributes 
    spider_attr=[] 

    def parse(self, response): 
     # do your logic here 
     # page_text = response.xpath('//text()').extract() 
     self.spider_attr.append(whatever) 

    def closed(self, reason): 
     # will be called when the crawler process ends 
     # any code 
     # do something with collected data 
     for i in self.spider_attr: 
      print i 
+0

は、その機能に収集したデータを提供する方法は、(「閉」)はありますか? –

+0

MySpiderクラスに属性を追加できます。次に、closed()メソッド内の属性に 'self.attributename'でアクセスします。 – Kruser

関連する問題