【Django 023】中间件Middleware(二):结合session和cache实现反爬虫中间件图文详解

上一节《【Django 022】中间件Middleware(一):Django中间件本质和处理流程详解》中,我们了解了中间件的本质和执行逻辑,这一节就来自己动手制作一个用来反爬虫的中间件。

我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。

爬虫

爬虫,就是一段伪装成浏览器,对网站发起请求获得网站资源的程序。例如爬取某求职网站的薪水统计,征婚交友网站的美女资料,或者某电子书网站的电子书等等。因为快速高效,爬虫可以帮助我们自动完成很多在线搜索统计的工作

但是做为服务器,因为爬虫程序的频繁请求,可能造成负载过高,甚至宕机的后果。所以服务端运维通常会对自己的网站加入很多反爬机制。

爬虫与反爬一直是大家津津乐道的话题。今天咱们就来看看如何实现自己的一个反爬小程序,知己知彼,百战不殆。

反爬和频率控制

如果一个爬虫程序频繁对服务器进行请求,会对服务器性能造成极大冲击。所以如果发现某个用户或者某个ip访问极为频繁,基本可以判定其为爬虫,从而对其行为进行一些限制。

这里模仿前面《【Django 013】Django2.2会话技术之Session》中去创建登录页面和个人主页,结合《【Django 021】Django2.2利用装饰器和cache底层API两种方式实现Redis缓存原理和操作详解》对每个sessionid记录访问个人主页时间戳来达到限制用户频繁访问的目的。

正常登录逻辑

  • 访问login/页面,如果session已经存在,跳转到homepage/,否则进入登入页面。提交登陆表单后创建session并进入homepage/,如果用户名为空则一直重定向回login/
  • 如果session已经存在,直接访问homepage/可以成功,否则重定向到login/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值