アクティブなpostgreSQL接続を利用するために変数にアクセスしたいのですself.cursor
が、パイプラインクラスのscrapyのインスタンスにアクセスする方法がわかりません。
class ScrapenewsPipeline(object):
def open_spider(self, spider):
self.connection = psycopg2.connect(
host= os.environ['HOST_NAME'],
user=os.environ['USERNAME'],
database=os.environ['DATABASE_NAME'],
password=os.environ['PASSWORD'])
self.cursor = self.connection.cursor()
self.connection.set_session(autocommit=True)
def close_spider(self, spider):
self.cursor.close()
self.connection.close()
def process_item(self, item, spider):
print ("Some Magic Happens Here")
def checkUrlExist(self, item):
print("I want to call this function from my spider to access the
self.cursor variable")
process_item
を使用してアクセスできることに注意してください。ただし、yield item
その関数は他のことを行っており、in経由self.cursor
で接続にアクセスcheckUrlExist
し、スパイダーからクラスのインスタンスを自由に呼び出すことができます! ありがとうございました。