MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak zdobyć obiekt rurociągu w Scrapy Spider

Scrapy Pipeline ma open_spider metoda, która jest wykonywana po zainicjowaniu pająka. Możesz przekazać do swojego pająka odwołanie do połączenia z bazą danych, metody get_date() lub samego potoku. Przykładem tego ostatniego z twoim kodem jest:

# 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

Następnie w pająku:

class Spider(Spider):
    name = "test"

    def __init__(self):
        self.myPipeline = None

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

Nie sądzę, aby __init__() metoda jest tutaj konieczna, ale umieściłem ją tutaj, aby pokazać, że open_spider zastępuje ją po inicjalizacji.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jakieś szczegółowe i konkretne powody, dla których MongoDB jest znacznie szybszy niż bazy danych SQL?

  2. Nie można usunąć, wyczyścić, odinstalować mongodb z Debiana

  3. zaktualizuj wiele rekordów za pomocą mongoosejs w węźle

  4. Funkcje definiowane przez użytkownika Mongo i redukcja mapy

  5. Scal dwa pola tablicy w mongoDB