MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

So erhalten Sie das Pipeline-Objekt in Scrapy Spider

Eine Scrapy-Pipeline hat eine open_spider Methode, die ausgeführt wird, nachdem der Spider initialisiert wurde. Sie können eine Referenz auf die Datenbankverbindung, die Methode get_date() oder die Pipeline selbst an Ihren Spider übergeben. Ein Beispiel für letzteres mit Ihrem Code ist:

# 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

Dann in der Spinne:

class Spider(Spider):
    name = "test"

    def __init__(self):
        self.myPipeline = None

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

Ich glaube nicht, dass __init__() -Methode ist hier notwendig, aber ich habe sie hier eingefügt, um zu zeigen, dass open_spider sie nach der Initialisierung ersetzt.