sql >> Databáze >  >> NoSQL >> MongoDB

Jak získat objekt potrubí ve Scrapy spider

Scrapy Pipeline má open_spider metoda, která se spustí po inicializaci pavouka. Svému pavouku můžete předat odkaz na připojení k databázi, metodu get_date() nebo samotný kanál. Příkladem druhého s vaším kódem je:

# 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

Pak v pavouku:

class Spider(Spider):
    name = "test"

    def __init__(self):
        self.myPipeline = None

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

Nemyslím si, že __init__() metoda je zde nezbytná, ale vložil jsem ji sem, abych ukázal, že ji open_spider po inicializaci nahradí.



  1. Jak provést vložení, pokud neexistuje jiná aktualizace pomocí mongoengine?

  2. MongoDB - Odstranit dokument

  3. Jak importovat soubor Geojson do MongoDB

  4. Mongodb upsert vyvolá výjimku DuplicateKeyException