sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur man får tag i pipeline-objektet i Scrapy spider

En Scrapy Pipeline har en open_spider metod som exekveras efter att spindeln har initierats. Du kan skicka en referens till databasanslutningen, metoden get_date() eller själva pipelinen till din spindel. Ett exempel på det senare med din kod är:

# 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

Sedan, i spindeln:

class Spider(Spider):
    name = "test"

    def __init__(self):
        self.myPipeline = None

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

Jag tror inte att __init__() metod är nödvändig här, men jag lägger den här för att visa att open_spider ersätter den efter initialisering.



  1. SignalR Core - Fel:Websocket stängd med statuskod:1006

  2. Kan inte ansluta till MongoDB errno:61

  3. elasticsearch v.s. MongoDB för filtreringsprogram

  4. MongoDB C#:ID Serialization bästa mönstret