2012-10-08 68 views
0

我看到this question,我看到this question,但對信號the official Scrapy page on pipelines提什麼。Scrapy管道open_sider不會被調用

這是我到目前爲止的代碼:

import sqlite3 
import datetime 
from scrapy import signals 
from scrapy.xlib.pydispatch import dispatcher 
from scrapy import log 

class Sqlite3StorePipeline(object): 
    def __init__(self): 
     print 'wtf' 
     dispatcher.connect(self.open_spider, signals.spider_opened) 
     dispatcher.connect(self.close_spider, signals.spider_closed) 

    def open_spider(self, spider): 
     print 'wtf2' 
     ... 

當我使用命令scrapy crawl <spider name>運行我的蜘蛛,我只看到「跆拳道」,而不是「wtf2」被輸出。

我怎樣才能讓我的open_spider函數被調用?

回答

0

我玩scrapy,現在,到目前爲止,我已經受夠了標準輸出奇怪的問題。你有沒有試過記錄'wtf'2?即

def open_spider(self,spider): 
     spider.log('wtf2 from spider %s' % spider.name) 
+0

咦,有趣。我也嘗試了spider.log。那裏沒有運氣。我很確定函數沒有被調用,因爲如果是這樣的話,我的數據庫將以某種方式被初始化,而不是。 – wrongusername

0

你正在使用哪種版本的scrapy?信號API是changed約7個月前,影響0.15及更高版本。

+0

我正在使用Scrapy 14.4。我應該升級到開發分支嗎? – wrongusername