sql >> Database >  >> NoSQL >> MongoDB

Hoe het pijplijnobject in Scrapy-spider te krijgen

Een Scrapy Pipeline heeft een open_spider methode die wordt uitgevoerd nadat de spider is geïnitialiseerd. Je kunt een verwijzing naar de databaseverbinding, de methode get_date() of de Pipeline zelf doorgeven aan je spider. Een voorbeeld van de laatste met uw code is:

# 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

Dan, in de spin:

class Spider(Spider):
    name = "test"

    def __init__(self):
        self.myPipeline = None

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

Ik denk niet dat de __init__() methode is hier nodig, maar ik plaats het hier om te laten zien dat open_spider het vervangt na initialisatie.



  1. Wat is het exacte verschil tussen mongod en mongo's?

  2. Voorkom dat er null-velden in resultaat zijn wanneer $dateFromString op een veld wordt gebruikt

  3. Spring Data Mongo - Querymethoden en onderscheiden veld

  4. Meteor Subscribe werkt de sorteervolgorde van de collectie niet bij