阅读背景:

scrapy 监控spider启动和关闭

来源:互联网 

在pipeline中,可以监听spider的启动和关闭,代码如下:
 

from scrapy.xlib.pydispatch import dispatcher
from scrapy import signals
from scrapy.exceptions import DropItem
class DuplicatesPipeline(object):
def __init__(self):
    self.duplicates = {}
    dispatcher.connect(self.spider_opened, signals.spider_opened)
    dispatcher.connect(self.spider_closed, signals.spider_closed)
def spider_opened(self, spider):
    self.duplicates[spider] = set()
def spider_closed(self, spider):
    del self.duplicates[spider]
def process_item(self, item, spider):
    if item[’id’] in self.duplicates[spider]:
        raise DropItem("Duplicate item found: %s" % item)
    else:
        self.duplicates[spider].add(item[’id’])
    return itemfr



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: