分享好友 最新动态首页 最新动态分类 切换频道
014:Django反爬虫和反反爬虫实战讲解
2024-12-26 21:54

最近一直在用django写一个个人音乐在线播放平台。
其中在网页数据保护方面,我采取了很多种的反爬虫措施,所以在本篇文章中,我从源码和实际操作上给大家分析下我所使用的反爬虫及其对应的破解技巧。

首先我们声明的是,爬虫和反爬虫没有高低之分,虽然总有一种方法能突破你的安全保护。
爬虫就像是一个钉子,反爬则是一扇铁窗。钉子坚持不懈,总能搞破窗。但是窗户是不能只针对于一点全力打造的。从此,修修补补,一般双方不下班不休。
下面我把反爬和反反爬分开来写。这样爱好不同的人可以各取所需。

1、我在django-views中设置了登录身份验证,设置了装饰器,通过META.get获取请求头,限制请求头和访问间隔。

 

!记得上面是一个装饰器。
mete.get可以获取请求头部的信息。如果没有请求头User-Agent的话,就只能请求到我的csdn博客链接。在最下面记录了上一次到这一次访问的ip时间,如果频率小于2秒就会跳转到错误页面。

2、设置了cookie和登录成功后的session,并通过url编码方式隐藏cookie
cookie和session是网站的必须品,但是有的爬虫会通过cookie直接省去登录来访问你的主页从而提取数据。
因为url编码方式不支持中文,所以我们可以设置为中文及外文的cookie。
大致如下

 
 

3、设置了自动刷新login页面,30秒计时。
为了防止selenuim和无界面浏览器的侵袭,只能尽量的牺牲一点用户体验,我们把浏览器刷新时间控制在30秒左右,运行缓慢的无界面浏览器就会很难受了。
这里我用JS来实现的。

 

4上面设置了30秒的时间是不够的,所以我在登录界面设置了验证码,这样也能隔绝一大部分的爬虫初学者。

 

这个写起来特别简单,只需要在原click方法上给url+上一个?就可以重复请求。(如果两次请求url相同是不能刷新图片的

下面是验证码生成的代码
(本篇代码为了方便讲解,我都写在视图中,有不懂请留言

 

5、因为只是这样我感觉力度还是不够,有耐心的selenuim还是可以很快破解的。所以我从属性上来限制一下PhantomJS和selenuim。
这个限制是用js来写的。
…我刚突然发现我把这页的JS混淆压缩加密了,不过可以拿去直接用。

 

首先上文中的方框是selenuim不能是别的字符集,会影响他的读取操作,有限制作用,如果添加的够多的话,可能会把他搞崩溃。
第一个if的作用是,如果访问的驱动是webdriver的话,就把页面跳转到别的地方。后面的两个作用是:通过判断访问来源的长度和语言来判断是不是无界面浏览器。最后面那个是通过对图片的识别方式来判断是不是无界面浏览器。
因为无界面浏览器在访问图片的时候,他的访问得到的图片宽高都是0;并且无界面浏览器的语言默认为空,长度默认为0.

9、比较难受人的一种css方法,通过字符集映射来改变页面信息和源码信息的不同。
利用前端字体文件(.ttf)混淆文本来阻止爬虫爬取网站数据.这个我不详细介绍了,举几个列子,大家可以网上搜索下具体操作。

  • 1 FONT-FACE拼凑式
  • 2 BACKGROUND拼凑式
  • 3 字符穿插式
  • 4 伪元素隐藏式
  • 5 元素定位覆盖式
  • 6 IFRAME异步加载式
  • 7 字符分割式
  • 8 字符集替换式

还有点什么反爬方式,我忘记了。。先不写了。
下面我们来逐条破解上面的反爬措施。

最新文章
十大良心手机传奇游戏有哪些 耐玩的传奇游戏前十名2023
今天小编就给大家解答一下十大良心手机传奇游戏有哪些,都是2023年度超级好玩的传奇系列,在这里你可以重温当年的热血传奇,快叫上兄弟一起热血攻沙吧!热门推荐:关注18183传奇频道,体验更多经典传奇游戏。红月战神-0.1折火龙单职业上线就
解读郑州十大舆情危机公关公司排行榜
在当今信息飞速传播的时代,舆情的力量不容小觑。郑州,这座充满活力与机遇的城市,众多的企业、机构和组织面临着复杂多变的舆情环境,而郑州舆情公关公司犹如一盏明灯,在这片领域中发挥着至关重要的作用。郑州舆情拥有专业的团队,他们精
深圳引望智能申请一种升级方法及装置专利,实现签名信息用于特定部件至少一次升级
金融界2024年12月12日消息,国家知识产权局信息显示,深圳引望智能技术有限公司申请一项名为“一种升级方法及装置”的专利,公开号 CN 119105773 A,申请日期为2023年5月。专利摘要显示,本申请公开了一种升级方法及装置,该方法包括:第一
智能AI文案生成器:一键解决文章撰写、营销推广、创意策划等多场景文案需求
1. 在实文案比较时咱们可以发现现代技术已经能够生成流畅、自然的文本。例如文案一:“在这个信息爆炸的时代,咱们需要筛选出最有价值的信息。”而文案二:“在信息泛滥的当下筛选出关键信息至关关键。”两者在表达上各有千秋,但都准确地
网络营销SEO秘诀,高效推广策略大揭秘
快速网络推广优化SEO,关键在于深入理解搜索引擎算法,结合精准关键词布局、高质量内容创作、内外链策略等手段,提升网站排名。本文揭秘高效网络营销策略,涵盖SEO实战技巧,助力企业快速提升在线可见度和率。随着互联网的飞速发展,已经成
规则引擎 Drools--决策表(Decision Table)使用简介
关键字说明是否必须RuleSet相当于drl文件中的package必须,只能有一个。如果没有设置RuleSet对应的值则使用默认值rule_tableSequential取值为Boolean类型。true表示规则按照表格自上到下的顺序执行,false表示乱序可选Import相
百度心理医生免费咨询 解决心理问题的专业平台
随着社会的不断发展,人们的生活压力也越来越大,尤其是在疫情的影响下,许多人的心理健康受到了很大的影响。为了解决这一问题,百度推出了心理医生免费咨询服务,为广大用户提供专业的心理健康咨询服务。百度心理医生免费咨询平台是一项由
建网站之前必须要明白这些才能建一个用户喜欢的网站
网站不是一件容易的事情,不管是网站建设之初的一些准备工作,还是网站建好之后的一系列后续工作;例如建站初期的一些构思、需求,网站页面的设计,网站功能,最后的网站运营维护等,详细一点主要有以下的一些工作内容。 第一、建站之初就
磁力狗bt种子搜索工具
磁力狗BT种子搜索工具——智能搜索,海量资源触手可及在信息化高速发展的今天,我们的生活离不开数字化资源的支持。尤其是在娱乐和学习领域,影视、音乐、软件等各类资源的下载成为了我们日常生活的一部分。而提到资源下载,BT种子一直是最
相关文章
推荐文章
发表评论
0评