爬虫与反爬虫,永恒的道高一尺魔高一丈

打从有采集这件事情开始,就有防采集的诞生。

今天,我们就一起来说说这些年遇到的各种防采集策略。

1限制IP单位时间访问次数还有频率

背景:没有哪个常人一秒钟内能访问相同网站N次(不管是不是同一个网页)

解决办法:一般遇到这种情况我们就放缓采集频率,不管你写代码添加Sleep,或者在我们八爪鱼里面设置间隔时间都可以解决

进化1:有些高级点的防采集策略,他甚至监控到每个请求的频率,如果一直处于同一个频率,比如一秒一次,他也是会封。

解决办法:这种情况一般就需要我们在采集间隔里面加上随机数,每次访问的频率相对随机。

进化2:有些更残忍的防采集策略,他甚至会监控每IP每天或每时段请求网页的数量。因为他可以通过数据分析,知道大体上他真实的用户一般最多会访问他多少网页,如果超过,他也照样封。

解决办法:这种情况也就只有用多IP或者多服务器来解决了,虚拟出许多不同的终端在访问,平摊访问资源。八爪鱼在这块也提供了代理IP池套餐与旗舰版云服务器集群来保障。

2验证码

背景:验证码天生就是一个识别你到底是人还是机器的神器

 验证码

解决办法:

这一招是被用烂的一招,现在普通的验证码,即使加了混淆,都可以通过图像识别技术给破解了,所以市面就多了好多诡异的验证码,最经典的,应该算是12306的验证码了吧。但是再复杂的验证码,包括那些中文成语,中文加减乘除之类的,都是有破解之法。因为这世上还有打码平台在,就是一种人工帮你输入验证码的平台。

八爪鱼内置支持绝大多数验证码的破解,除了少数的一两种特别极端,现在满世界还找不到破解之法,其他都支持。

3用户登录带COOKIE才能访问网站内容

背景:通过帐号来限制你访问的权限

解决办法

普通的,我们只需要通过八爪鱼采集进行登陆操作,只要你能提供相对应的帐号密码,八爪鱼可以进行模拟操作登陆网站,你就可以进去获取数据了。如果你没有帐号,那就一点办法都没有了。就像IT桔子,你没帐号,你只能看到前1000条数据。你只有付费购买他们的SAAS帐号,你才能看到更多数据。

进化一:即使有帐号也不管用

解决办法

就像京东的评论,你只能看到最新的1000条。这种时候就必须用上八爪鱼的定时采集,我们进行某种频率的监控,一有新数据就马上采集下来,保持跟进,保持积累。

4利用JS加密网页内容

背景:通过浏览器的JS运算出网页内容结果

解决办法

这种招术,在对付HTTP POST请求的时候,是一种增加复杂度与难度的招术。但是八爪鱼天生就是对抗这种,八爪鱼内置浏览器访问网页数据,在打开网页的时候就会去执行JS调用代码获取数据,然后再解析网页数据。所以自带JS运算,轻轻松松就把这种给绕过去了。

而一般通过代码或HTTP请求模式的爬虫技术,是怎么绕都绕不开这种,而通过写代码进行采集的同学,他必须把JS加密给破解了。

5链接随机化

背景:网站页面链接随机化,同一个页面有多个链接或根据不同情况生成链接

解决办法:这种情况,一般要求我们从源头开始访问,模拟人访问,比如从首页,进入到列表,再到内容页。他内页链接随机化,首页地址总不能随机吧。这种只要以不变应万变,即可破解。

进化1:利用脚本生成分页地址

解决办法:这种情况,在八爪鱼浏览器面前,也是一点效力都没有。因为八爪鱼是一种模拟人的操作,除非他生成的分页地址不是要给人访问的,要不,照样采。

6网页里面增加混淆不可见元素

背景:常规的网页数据解析为结构化数据,均是通过字符串定位与正则表达式匹配。所以增加混淆代码或文字,增加你破解的难度,给你增加麻烦。笔者曾见过某网页解析出来的时候写着:”不要采,不要采,再采我就又得被叼了“

解决办法:因为八爪鱼主要还是能通过XPATH定位的方式,这种小技俩在XPATH面前,轻松就被绕开了。大不了我们再用字符串替换,把一些混淆的字符段通过某种规则给替换掉即可。毕竟网页开发者留下混淆代码也是遵循某种规律留下的。

7网站随机出现模板

背景:增加采集难度,同一类页面,但是多种模板展现

解决办法:这种情况主要是耐心点,笔者见过分页列表页面,单数页是一种模板,双数页是另外一种,或者常规是一种,逢10就另外一种。这种就需要我们在一开始采集的时候,观察清楚。但这种又很好观察,一般换了模板,我们就采不到数据。

不可能同一模板,前面一页采得好好的,后面一页就不行了。多数是出现在模板不一致导致的。八爪鱼内置判断逻辑,你可以通过页面不同的特征,引导八爪鱼用不一样的解析来破解。

8人工智能防采集

背景:互联网99.9%以上的防采集措施,估计来来回回就这一些招吧,但是另外那0.01%,才是让人费劲的。像某些大公司,有专门的人工智能防采集团队。

他们可以通过识别你的网络请求,不管是走浏览器,还是走请求的方式,只要你访问他们网站的轨迹,不像是一般用户访问的轨迹,或绝大多数用户的轨迹,他们都会进行一些防采集的策略,比如增加验证码,或出现假数据等等。

解决办法:这种时候就要求我们,更加像”人“的操作一样,去进行采集。比如我们一般会先访问首页,然后点点一些位置,拖拉一下,然后再进行列表页,再看一看,再进入详情页等等。这些摸拟人的操作,均可通过八爪鱼完成,包括自动下拉多少屏,停留时间,鼠标停留位置等等。

进化一:建立黑IP池

些大型公司,还会建立黑IP池,一旦是池子里的IP进行访问,马上拒绝。这一般是出现在境外IP,或一些机房IP,说白就是已经被用烂的IP了。而这时候,优质的代理IP资源,就显得特别宝贵了。

 

                                                     

在笔者看来,采集与防采集,永远都是一个矛盾的问题,无法说绝对采集到,或绝对采集不到。在这一行当里面,真正考究的是采集成功与收益的问题,比如说增加验证码,IP等方式,均是需要一定的开销开本,特别在大数据量面前,这个成本有时是非常巨大的。

而网站方,也是通过这一点,来增加你的采集难度采集成本,从而达到一个相对平衡可控的范围。笔者经手过的项目,有些项目每年需要花费上百万的IP或验证码成本才可获取到想要的数据,八爪鱼能做到的是,以相对较低的成本,帮你获取到你想要的数据,而不是0成本。

发布了85 篇原创文章 · 获赞 28 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/BAZHUAYUdata/article/details/100660923