カスタム ミドルウェアとカスタム パイプラインを使用してエントリをチェックし、Postgres DB に保存する Scrapy プロジェクトがあります。ミドルウェアは次のようになります。
class ExistingLinkCheckMiddleware(オブジェクト):
def __init__(自己):
... データベースへの接続を開く
def process_request (自己、要求、スパイダー):
... DB での各リクエスト チェックの前に
ページが以前にスクレイピングされていないこと
パイプラインは似ています。
クラス MachinelearningPipeline(オブジェクト):
def __init__(自己):
... データベースへの接続を開く
def process_item(自分、アイテム、スパイダー):
... 項目をデータベースに保存します
問題なく動作しますが、スパイダーが終了したときにこれらのデータベース接続をきれいに閉じる方法が見つからず、イライラします。
誰もそれを行う方法を知っていますか?