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