技术要点:
1)使用中间件;
2)设置反爬功能。
相关基础:
在django中,中间件实际上就是一个类,在请求到来和结束后、处理视图时以及响应返回前,django会根据自己的规则在合适的时机执行中间件中相应的方法,在中间件中可以实现并起作用的方法主要有:
- process_request(self,request)
- process_view(self, request, callback, callback_args, callback_kwargs)
- process_template_response(self,request,response)
- process_exception(self, request, exception)
- process_response(self, request, response)
在客户端发起的所有请求到达view层得到处理之前,都会先依次经过settings.py文件中设置的每个中间件的process_request()方法,此时实现拦截爬虫的功能。
===========================
1、在网站项目文件夹中创建包middle,在middle中创建文件antiCraw.py。
2、在antiCraw.py程序中编写一个类AntiCraw,实现反爬功能。
3、修改网站项目的setting.py文件,启用自定义的中间件。
4、修改apps\questions\views.py,把前面课程中使用修饰器实现的反爬功能注释掉。
5、执行命令运行网站,观察中间件中的反爬功能是否起作用,并体会中间件和修饰器这两种实现方法的不同。