MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como obter o objeto pipeline no Scrapy spider


Um Scrapy Pipeline tem um open_spider método que é executado após a inicialização do spider. Você pode passar uma referência para a conexão do banco de dados, o método get_date() ou o próprio Pipeline, para o seu spider. Um exemplo deste último com seu código é:
# This is my Pipline
class MongoDBPipeline(object):
    def __init__(self, mongodb_db=None, mongodb_collection=None):
        self.connection = pymongo.Connection(settings['MONGODB_SERVER'], settings['MONGODB_PORT'])
        ....

    def process_item(self, item, spider):
        ....
    def get_date(self):
        ....

    def open_spider(self, spider):
        spider.myPipeline = self

Então, na aranha:
class Spider(Spider):
    name = "test"

    def __init__(self):
        self.myPipeline = None

    def parse(self, response):
        self.myPipeline.get_date()

Eu não acho que o __init__() O método é necessário aqui, mas eu o coloquei aqui para mostrar que o open_spider o substitui após a inicialização.