python - Scrapy middleware order -
python - Scrapy middleware order -
scrapy documentation says :
the first middleware 1 closer engine , lastly 1 closer downloader.
to decide order assign middleware see downloader_middlewares_base setting , pick value according want insert middleware. order matter because each middleware performs different action , middleware depend on previous (or subsequent) middleware beingness applied
i'm not exclusively clear whether higher value result in middleware getting executed first or vice versa.
e.g.
'myproject.middlewares.mw1': 543, 'myproject.middlewares.mw2': 542,
question :
which of these executed first? trial says mw2 first. what's valid range orders ? 0 - 999 ?which of these executed first? trial says mw2 first.
as quoted docs:
the first middleware 1 closer engine , lastly 1 closer downloader.
so downloader middleware value of 542 executed before middleware value 543. means first myproject.middlewares.mw1.process_request(request, spider)
called, , after altered (if needed) request, passed next downloader middleware.
the value integer.
update:
look @ architecture.
also, total quote:
the downloader_middlewares setting merged downloader_middlewares_base setting defined in scrapy (and not meant overridden) , sorted order final sorted list of enabled middlewares: first middleware 1 closer engine , lastly 1 closer downloader.
so, values integers, have range of python integers.
python middleware scrapy
Comments
Post a Comment