相关疑难解决方法(0)

scrapy:当蜘蛛退出时调用一个函数

有没有办法在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)

但我找不到任何关于如何确定蜘蛛何时会自然戒烟的信息.

python scrapy

41
推荐指数
5
解决办法
2万
查看次数

Scrapy管道spider_opened和spider_closed没有被调用

我在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_openspider_close日志消息都没有.

我需要使用spider_opened和spider_closed方法,因为我想使用它们来打开和关闭与数据库的连接,但是在日志中没有显示任何内容.

如果有人有任何建议会非常有用.

python pipeline scrapy

13
推荐指数
2
解决办法
5807
查看次数

标签 统计

python ×2

scrapy ×2

pipeline ×1