स्क्रैपी पाइपलाइन में एक 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 आरंभीकरण के बाद इसे बदल देता है।