sql >> Database teknologi >  >> NoSQL >> MongoDB

Sådan får du rørledningsobjektet i Scrapy spider

En Scrapy Pipeline har en open_spider metode, der bliver udført efter at edderkoppen er initialiseret. Du kan videregive en reference til databaseforbindelsen, get_date()-metoden eller selve Pipeline til din edderkop. Et eksempel på sidstnævnte med din kode er:

# 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

Så i edderkoppen:

class Spider(Spider):
    name = "test"

    def __init__(self):
        self.myPipeline = None

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

Jeg tror ikke, at __init__() metode er nødvendig her, men jeg sætter den her for at vise, at open_spider erstatter den efter initialisering.



  1. Mongoose-opdatering uden tilbagekald

  2. Mongoose Mongodb forespørger på en række objekter

  3. $lookup på ObjectId'er i et array

  4. Hvordan får jeg data fra Mongodb