我需要在发出超过 1 次的重试请求时向我的蜘蛛发送一条消息。
我正在考虑使用信号并修补scrapy中的内置RetryMiddleWare,以便在满足条件时发送此类信号。
它会起作用吗?
如何在 Scrapy 中触发信号?
我在网上没有找到任何线索。
谢谢
RetryMiddleware
源代码在这里 - 查看它并将其子类化以放置所需的功能:
scrapy.contrib.downloadermiddleware.retry.RetryMiddleware
然后禁用原始并启用修改后的:
DOWNLOADER_MIDDLEWARES = {
'scrapy.contrib.downloadermiddleware.retry.RetryMiddleware': None,
'middlewares.MyRetryMiddleware': 500,
}
在您自定义的中间件中,您可以调用蜘蛛的方法来执行操作,或使用调度程序发出自定义信号(我会选择第一种方法)。