有没有办法在Spider类终止之前触发它?
我可以自己终止蜘蛛,像这样:
class MySpider(CrawlSpider):
#Config stuff goes here...
def quit(self):
#Do some stuff...
raise CloseSpider('MySpider is quitting now.')
def my_parser(self, response):
if termination_condition:
self.quit()
#Parsing stuff goes here...
Run Code Online (Sandbox Code Playgroud)
但我找不到任何关于如何确定蜘蛛何时会自然戒烟的信息.
我在scrapy管道上遇到了一些麻烦.我的信息正在从网站上删除,并正确调用process_item方法.但是没有调用spider_opened和spider_closed方法.
class MyPipeline(object):
def __init__(self):
log.msg("Initializing Pipeline")
self.conn = None
self.cur = None
def spider_opened(self, spider):
log.msg("Pipeline.spider_opened called", level=log.DEBUG)
def spider_closed(self, spider):
log.msg("Pipeline.spider_closed called", level=log.DEBUG)
def process_item(self, item, spider):
log.msg("Processsing item " + item['title'], level=log.DEBUG)
Run Code Online (Sandbox Code Playgroud)
无论是__init__和process_item日志消息持续显示在日志中,但spider_open和spider_close日志消息都没有.
我需要使用spider_opened和spider_closed方法,因为我想使用它们来打开和关闭与数据库的连接,但是在日志中没有显示任何内容.
如果有人有任何建议会非常有用.