Đường ống trị liệu có open_spider phương thức được thực thi sau khi khởi chạy trình thu thập thông tin. Bạn có thể chuyển một tham chiếu đến kết nối cơ sở dữ liệu, phương thức get_date () hoặc chính Pipeline cho trình thu thập thông tin của bạn. Ví dụ về cái sau với mã của bạn là:
# 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
Sau đó, trong con nhện:
class Spider(Spider):
name = "test"
def __init__(self):
self.myPipeline = None
def parse(self, response):
self.myPipeline.get_date()
Tôi không nghĩ __init__()
phương thức này là cần thiết ở đây, nhưng tôi đặt nó ở đây để cho thấy rằng open_spider sẽ thay thế nó sau khi khởi tạo.