mirror of
https://github.com/scrapy/scrapy.git
synced 2025-02-25 11:03:58 +00:00
restore downloader enqueing after middleware
This commit is contained in:
parent
cd1ad337b1
commit
5944f6590a
@ -9,6 +9,7 @@ from twisted.internet import reactor, defer
|
||||
from scrapy.core.exceptions import IgnoreRequest
|
||||
from scrapy.spider import spiders
|
||||
from scrapy.core.downloader.middleware import DownloaderMiddlewareManager
|
||||
from scrapy.core.downloader.handlers import download_any
|
||||
from scrapy.conf import settings
|
||||
from scrapy.utils.defer import chain_deferred, mustbe_deferred
|
||||
|
||||
@ -74,7 +75,7 @@ class Downloader(object):
|
||||
site.active.remove(request)
|
||||
return _
|
||||
|
||||
return self.middleware.download(request, spider).addBoth(_deactivate)
|
||||
return self.middleware.download(self.enqueue, request, spider).addBoth(_deactivate)
|
||||
|
||||
def enqueue(self, request, spider):
|
||||
"""Enqueue a Request for a effective download from site"""
|
||||
@ -116,7 +117,7 @@ class Downloader(object):
|
||||
site.downloading.remove(request)
|
||||
self.process_queue(spider)
|
||||
|
||||
dwld = mustbe_deferred(request, spider)
|
||||
dwld = mustbe_deferred(download_any, request, spider)
|
||||
chain_deferred(dwld, deferred)
|
||||
return dwld.addBoth(_finish)
|
||||
|
||||
|
@ -13,7 +13,6 @@ from scrapy.core.exceptions import NotConfigured
|
||||
from scrapy.utils.misc import load_object
|
||||
from scrapy.utils.defer import mustbe_deferred
|
||||
from scrapy.utils.middleware import build_middleware_list
|
||||
from scrapy.core.downloader.handlers import download_any
|
||||
from scrapy.conf import settings
|
||||
|
||||
class DownloaderMiddlewareManager(object):
|
||||
@ -51,7 +50,7 @@ class DownloaderMiddlewareManager(object):
|
||||
log.msg("Enabled downloader middlewares: %s" % ", ".join([type(m).__name__ for m in mws]))
|
||||
self.loaded = True
|
||||
|
||||
def download(self, request, spider):
|
||||
def download(self, download_func, request, spider):
|
||||
def process_request(request):
|
||||
for method in self.request_middleware:
|
||||
response = method(request=request, spider=spider)
|
||||
@ -60,7 +59,7 @@ class DownloaderMiddlewareManager(object):
|
||||
(method.im_self.__class__.__name__, response.__class__.__name__)
|
||||
if response:
|
||||
return response
|
||||
return download_any(request=request, spider=spider)
|
||||
return download_func(request=request, spider=spider)
|
||||
|
||||
def process_response(response):
|
||||
assert response is not None, 'Received None in process_response'
|
||||
|
Loading…
x
Reference in New Issue
Block a user