Middleware is mainly used to process before request and process after response,
such as listening request and response.
- Middleware().request: do some operations before request;
- Middleware().response: do some operations after response.
- The function should receive a special argument;
- The function return nothing.
The arguments are listed in the following example:
from ruia import Middleware middleware = Middleware() @middleware.request async def print_on_request(spider_ins, request): """ This function will be called before every request. request: an object of Request """ print("request: print when a request is received") @middleware.response async def print_on_response(spider_ins, request, response): """ This function will be called after every request. request: an object of Request response: an object of Response """ print("response: print when a response is received")
How It Works?
Middleware used decorators to implement the callback function, aims at writting middlewares easier for developers.
Middleware().response_middleware are two queues, stands for the user-defined functions.