[发明专利]一种针对爬虫的数据处理方法在审
申请号: | 201510200123.4 | 申请日: | 2015-04-26 |
公开(公告)号: | CN104902008A | 公开(公告)日: | 2015-09-09 |
发明(设计)人: | 严澜 | 申请(专利权)人: | 成都创行信息科技有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;H04L29/06 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 610000 四川*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 针对 爬虫 数据处理 方法 | ||
技术领域
本发明涉及大数据处理技术领域,具体是一种针对爬虫的数据处理方法。
背景技术
网络爬虫是捜索引擎抓取系统的重要组成部分。爬虫的主要目的是将互联网上的网页下载到本地形成一个或联网内容的镜像备份。通过分析apache日志发现,某系统40%的带宽和服务器资源都消耗在爬虫上,如果除去10%-15%搜索引擎的爬虫,做好反爬虫策略,能节省20%-25%的资源,其实是变向优化了web系统。
爬虫请求是类似httpClient的机制或curl、wget的命令,而正常用户请求一般走浏览器。 爬虫请求一般不会执行页面里的异步JavaScript操作,而用户请求则执行Jquery提供的异步JavaScript操作。
发明内容
本发明的目的在于提供一种针对爬虫的数据处理方法,可以以有效的区分爬虫请求和正常用户请求,从而将爬虫请求阻挡,节省系统资源。
本发明的目的主要通过以下技术方案实现:一种针对爬虫的数据处理方法,包括以下步骤:
步骤1:管理登录并利用黑白名单池在后台录入白名单,并将黑名单的操作时间设定为X分钟有效;
步骤2:判断当前登录页面的IP为黑名单还是白名单;
步骤3:当前登录页面的IP为白名单时,让该IP进行正常页面逻辑操作;
步骤4:当前登录页面的IP为黑名单时,让该IP进入验证码页面操作,在该IP写完验证码后,释放该IP不在为黑名单,同时让该IP进行正常页面逻辑操作;
步骤5:当前登录页面的IP为非黑名单和非白名单时,利用流量统计工具进行筛查,进入计数器池,在Cache计数器会在Cache计数器过期前加1操作,然后比较累加后的计数值和阀值,当计数值小于阀值,判定该IP为非爬虫,让该IP进行正常页面逻辑操作,当计数值大于阀值,将该IP设置成黑名单,并让该IP进入验证码页面操作,在该IP写完验证码后,释放该IP不在为黑名单,若该IP不填写验证码,则判定该IP为爬虫;
步骤6:当该IP退出登录页面时,异步的JS请求,cache计数值减1操作。
上述方法的设置原理在于:由于爬虫请求是类似httpClient的机制或curl、wget的命令,而正常用户请求一般走浏览器。 爬虫请求一般不会执行页面里的异步JavaScript操作,而用户请求则执行Jquery提供的异步JavaScript操作。
因此,本发明利用异步JavaScript操作,从而筛选出爬虫请求,并将爬虫请求设置成黑名单。同时由于网络IP的变化,有时同一个IP前一天为黑名单,而第二天则是正常用户登录请求,因此不能将所有的IP设置为一成不变的固定死请求IP,因此需要实时沿着当前黑名单,同时利用异步JavaScript操作区分当前黑名单是否继续为爬虫请求。
WEB系统都是走http协议跟WEB容器连通的,每次请求至少会产生一次客户端与服务器的tcp连接。通过netstat命令,就可以查看到当前同时连接服务器所对应的IP以及连接量。 命令 /bin/netstat -nat -n | grep 80 一般都几百或几千个。 同一个IP对应的连接数超过我们观察到的一个阀值时,就可判断为非正常的用户请求。阀值设定至关重要,大型网吧或同一个学校、公司出来的IP也可能会被误判为非法请求。 此策略包括两个定时脚本,一个定时封IP( tcpForbidCmd.sh ),一个定时释放IP ( tcpReleaseCmd.sh ),分别是每隔5分钟和40分钟各执行一次。此策略相当于给我们的系统设定了门槛,类似公路交通系统内,某马路设定限高4米栏杆,高于4米的车不能在此通行。该策略能预防恶意的或新手写的请求频率不规则的爬虫。
本发明的反爬虫过滤机制实现起来也比较简单,我们可以用memcached或本地内存来做访问计数器,在缓存过期之前的时间段内(如3分钟),每个IP访问一次,计数器加1,缓存的KEY包括IP,通过计数器得到的值,判断超过一个阀值,这个IP很可能有问题,那么就可以返回一个验证码页面,要求用户填写验证码。如果是爬虫的话,当然不可能填写验证码,就被拒掉了,保护了后端的资源。 阀值的设定也是很重要的,不同的系统不一样。 我们将这个过滤机制改进一下,将更加准确。 即我们在网页的最下面添加一个JS的异步请求,此异步请求用来减计数器的值,进页面时对IP进行加值,出页面时减值,生成一个差值。根据我们之前的分析,爬虫不会执行异步JS减值请求。这样可以从生成的值的大小上判断这个IP是否为爬虫。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都创行信息科技有限公司,未经成都创行信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510200123.4/2.html,转载请声明来源钻瓜专利网。