2回以上発行された再試行要求について、スパイダーにメッセージを配信する必要があります。
シグナルを使用し、組み込みのRetryMiddleWareにパッチを適用して、条件が満たされたときにそのようなシグナルを送信することを考えていました。
それはうまくいくでしょうか?
Scrapyでシグナルをトリガーするにはどうすればよいですか?
ネット上で手がかりは見つかりませんでした。
ありがとう
RetryMiddleware
ソースはここにあります-それを見て、必要な機能を配置するためにサブクラス化します:
scrapy.contrib.downloadermiddleware.retry.RetryMiddleware
次に、元のファイルを無効にして、変更したものを有効にします。
DOWNLOADER_MIDDLEWARES = {
'scrapy.contrib.downloadermiddleware.retry.RetryMiddleware': None,
'middlewares.MyRetryMiddleware': 500,
}
カスタマイズされたミドルウェアでは、スパイダーのメソッドを呼び出してアクションを実行したり、ディスパッチャーを使用してカスタムシグナルを発行したりできます(最初のメソッドを選択します)。