MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment obtenir l'objet pipeline dans Scrapy spider

Un pipeline Scrapy a un open_spider méthode qui est exécutée après l'initialisation de l'araignée. Vous pouvez transmettre une référence à la connexion à la base de données, à la méthode get_date() ou au Pipeline lui-même, à votre spider. Un exemple de ce dernier avec votre code est :

# 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

Puis, dans l'araignée :

class Spider(Spider):
    name = "test"

    def __init__(self):
        self.myPipeline = None

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

Je ne pense pas que le __init__() est nécessaire ici, mais je l'ai mise ici pour montrer que open_spider la remplace après l'initialisation.