3
我正在使用scrapy在内部Web应用程序上执行测试。 一旦我所有的测试都完成了,我使用CrawlSpider来检查每个地方,并且我为每个响应运行一个HTML验证器,然后查找404个媒体文件。动态更改scrapy请求调度程序优先级
它工作得很好,除了这个:最后抓取,GET
东西以随机顺序... 因此,执行DELETE操作的URL正在其他操作之前执行。
我想安排在最后删除所有内容。我试过很多方法,用这类调度:
从scrapy导入日志
class DeleteDelayer(object):
def enqueue_request(self, spider, request):
if request.url.find('delete') != -1:
log.msg("delay %s" % request.url, log.DEBUG)
request.priority = 50
但它不工作...我看到删除被“延迟”在日志中,但他们是在执行执行。
我想过使用一个中间件,它可以在内存中堆积所有的删除URL,并且当调用spider_idle
信号将它们重新放回去,但我不知道如何做到这一点。
实现这个目标的最佳方法是什么?对于要求