MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да получите тръбопроводния обект в Scrapy spider

Scrapy Pipeline има open_spider метод, който се изпълнява след инициализиране на паяка. Можете да предадете препратка към връзката към базата данни, метода get_date() или самия конвейер към вашия паяк. Пример за последното с вашия код е:

# 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

След това в паяка:

class Spider(Spider):
    name = "test"

    def __init__(self):
        self.myPipeline = None

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

Не мисля, че __init__() методът е необходим тук, но го поставям тук, за да покажа, че open_spider го замества след инициализация.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. неуспешно инсталиране на mongoose npm

  2. (Angular 2) Как да попълните падащо меню въз основа на друг избор от падащо меню

  3. Драйверът на Mongodb C# връща само съвпадащи поддокументи в масива

  4. Mongod се оплаква, че няма папка /data/db

  5. грешка при дублиране на ключ в поле mongo _id