技术要点:

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。

Python+django网页设计入门(14):使用中间件对抗爬虫_django

2、在antiCraw.py程序中编写一个类AntiCraw,实现反爬功能。

Python+django网页设计入门(14):使用中间件对抗爬虫_编程语言_02

3、修改网站项目的setting.py文件,启用自定义的中间件。

Python+django网页设计入门(14):使用中间件对抗爬虫_编程语言_03

4、修改apps\questions\views.py,把前面课程中使用修饰器实现的反爬功能注释掉。

Python+django网页设计入门(14):使用中间件对抗爬虫_大数据_04

5、执行命令运行网站,观察中间件中的反爬功能是否起作用,并体会中间件和修饰器这两种实现方法的不同。