技术要点:
1)识别请求来自浏览器还是来自爬虫程序,根据不同的访问方式给出不同的响应。
2)获取客户端IP地址并限制其访问时间间隔,如果来自爬虫程序,则多次访问之间的间隔会很短,判断这种情况并给出相应的响应。
3)使用自定义修饰器实现代码复用。
===================
1、修改questions应用的views.py文件,导入time标准库中的time()函数,并定义修饰器函数isCraw()。
2、把定义的修饰器作用到相应的视图函数上,以登录界面为例。
3、执行命令,运行网站,使用浏览器打开登录界面,一切正常。
4、使用Python模块urllib编写简单爬虫程序,尝试读取登录界面信息,失败。
5、修改程序,伪装浏览器访问登录页面,成功。
6、进一步修改爬虫程序,连续多次读取登录页面,第一次成功,后面失败。