本文主要是介绍网站防采集之-攻与防,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1)限制IP单位时间访问次数或频率
背景:没有哪个常人一秒钟内能访问相同网站N次(不管是不是同一个网页)
攻:一般遇到这种情况我们就放缓采集频率,不管你写代码添加Sleep,或者在我们八爪鱼里面设置间隔时间都可以解决
防:监控到每个请求的频率,如果一直处于同一个频率,比如一秒一次,封。
攻:这种情况一般就需要我们在采集间隔里面加上随机数,每次访问的频率相对随机。
防:监控每IP每天或每时段请求网页的数量。因为他可以通过数据分析,知道大体上他真实的用户一般最多会访问他多少网页,如果超过,他也照样封。
攻:这种情况也就只有用多IP或者多服务器来解决了,虚拟出许多不同的终端在访问,平摊访问资源。
防:每天需要微信登录,来监控每个用户的访问行为,单位时间内超出一定访问次数,需要重新登录。
2)验证码
背景:验证码天生就是一个识别你到底是人还是机器的神器
方案:
这一招是被用烂的一招,现在普通的验证码,即使加了混淆,都可以通过图像识别技术给破解了,所以市面就多了好多诡异的验证码,最经典的,应该算是12306的验证码了吧。但是再复杂的验证码,包括那些中文成语,中文加减乘除之类的,都是有破解之法。因为这世上还有打码平台在,就是一种人工帮你输入验证码的平台。
所以,中文成语,中文加减乘除之类的验证方案推荐使用。
3)用户登录带COOKIE才能访问网站内容
背景:通过帐号来限制你访问的权限
解决办法:
普通的,我们只需要采集进行登陆操作,只要你能提供相对应的帐号密码,八爪鱼可以进行模拟操作登陆网站,你就可以进去获取数据了。如果你没有帐号,那就一点办法都没有了。
方案:微信扫码登录后,保留COOKIE信息作为访问凭据。
4)利用JS加密网页内容
防:通过浏览器的JS运算出网页内容结果
攻:
这种招术,在对付HTTP POST请求的时候,是一种增加复杂度与难度的招术。但是采集器内置浏览器访问网页数据,在打开网页的时候就会去执行JS调用代码获取数据,然后再解析网页数据。所以自带JS运算,轻轻松松就把这种给绕过去了。而一般通过代码或HTTP请求模式的爬虫技术,是怎么绕都绕不开这种,而通过写代码进行采集的同学,他必须把JS加密给破解了。
5)人工智能防采集
防:像某些大公司,有专门的人工智能防采集团队。他们可以通过识别你的网络请求,不管是走浏览器,还是走请求的方式,只要你访问他们网站的轨迹,不像是一般用户访问的轨迹,或绝大多数用户的轨迹,他们都会进行一些防采集的策略,比如增加验证码,或出现假数据等等。
攻:这种时候就要求我们,更加像”人“的操作一样,去进行采集。比如我们一般会先访问首页,然后点点一些位置,拖拉一下,然后再进行列表页,再看一看,再进入详情页等等。这些摸拟人的操作 ,包括自动下拉多少屏,停留时间,鼠标停留位置等等。
防:建立黑IP池一些大型公司,还会建立黑IP池,一旦是池子里的IP进行访问,马上拒绝。这一般是出现在境外IP,或一些机房IP,说白就是已经被用烂的IP了。而这时候,优质的代理IP资源,就显得特别宝贵了。
这篇关于网站防采集之-攻与防的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!