一种基于访问日志IP分析的网络爬虫检测方法技术

技术编号:20916700 阅读:73 留言:0更新日期:2019-04-20 09:43
本发明专利技术公开了一种基于访问日志IP分析的网络爬虫检测方法,具体步骤是:使用特征检测法检测访问请求数据包中的特征来判断是否为普通爬虫;使用访问行为检测法检测IP访问静态资源和动态资源的比例来判断该IP是否为高级爬虫;使用特殊爬虫检测法检测网站接口的访问量来判断是否为爬虫;输出判定结果;本发明专利技术通过三种检测方法对IP进行识别,可以覆盖普通爬虫、高级爬虫和特殊爬虫,能够从更大范围内进行有效爬虫识别,在检测过程中还可以通过调节参数控制误报率,更加符合实际工作需要。

A Web Crawler Detection Method Based on IP Analysis of Access Log

The invention discloses a network crawler detection method based on IP analysis of access log. The specific steps are: using the feature detection method to detect the features in the access request data packet to determine whether it is a common crawler; using the access behavior detection method to detect the proportion of IP accessing static and dynamic resources to determine whether the IP is a high-level crawler; and using the special crawler detection method to detect website connection. The invention identifies IP by three detection methods, which can cover ordinary, advanced and special crawlers, can effectively identify crawlers from a larger range, and can control the false alarm rate by adjusting parameters in the detection process, which is more in line with the actual work needs.

【技术实现步骤摘要】
一种基于访问日志IP分析的网络爬虫检测方法
本专利技术涉及网络爬虫检测领域,具体涉及一种基于访问日志IP分析的网络爬虫检测方法。
技术介绍
随着互联网的发展,越来越多的行业开始通过网站的形式向广大网民展示其主营的各项业务和数据,而网络爬虫则可以自动的获取这些数据,从而爬虫所有者可以通过这些数据获利,例如有的人通过编写爬虫程序爬取电商网站的商品信息,从这些数据中可以获取到每个商品的价格,而作为竞争对手可以以此价格为参考,适当降低自己商场的同款商品的价格,从而保持销售优势。又或者对于一些权威信息,如企业信用信息查询,这些数据只能通过政府网站进行查询,而爬虫编写者可以通过网络爬虫批量获取数据,然后将这些数据转卖给需要这些信息的人从而获利。目前常用的反爬虫手段是通过访问频率来对爬虫IP进行封锁。首先设置一个访问阈值,当某个IP的访问频率超过阈值则拦截此IP的访问请求。这种方法对于普通爬虫来说可以起到很好的拦截效果,但是对于高级爬虫则并不能有效进行拦截。爬虫可以通过降低访问频率、增加IP数量等方式绕过检测。而且这种方法还容易产生误拦截,如公司出口IP、小区出口IP等,一个IP并不一定代表唯一一个正常用户,有时候一个IP可能有几百个用户在使用,如果单通过访问频率来识别则有可能会对正常用户进行误拦截。术语定义:网络爬虫:又称为网页蜘蛛,网络机器人,是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。网络爬虫被广泛应用于搜索引擎或用来爬取特定网站内容。访问日志:即网站用户访问记录,访问日志详细记录了每个用户访问网站的情况,其中包含访问者的IP地址、访问的RUL、访问时间等等内容。
技术实现思路
为解决上述问题,本专利技术分别从特征识别、访问行为识别的角度针对普通爬虫、高级爬虫和特殊爬虫进行多重检测。本专利技术提供一种基于访问日志IP分析的网络爬虫检测方法,具体包括以下步骤:1、使用特征检测法检测访问请求数据包中的特征来判断是否为普通爬虫,如果识别成功则判定该IP属于网络爬虫,否则进入下一步;2、使用访问行为检测法检测IP访问静态资源和动态资源的比例来判断该IP是否为高级爬虫,如果识别成功则判定该IP属于网络爬虫,否则进入下一步;3、使用特殊爬虫检测法检测网站接口的访问量来判断是否为爬虫,如果识别成功则判定该IP属于网络爬虫,否则判定为非爬虫IP;4、输出判定结果。其中三种检测方法具体如下:一、特征检测法特征检测法适用于普通爬虫,首先获取访问请求中的UserAgent字段,检测UserAgent中是否包含自动化程序特征,包括python、ruby、PhantomJS、pycurl、httpunit、Wget、Java,如果检测到以上关键词特征则判定为爬虫。二、访问行为检测法访问行为检测法适用于高级爬虫,分为以下几个步骤:(1)、将网站访问日志按照IP维度进行划分,即获取每个IP的全部网站访问日志;(2)、在步骤(1)的基础上过滤出HTTP状态码等于200的日志,其它日志均去除掉;(3)、在步骤(2)的基础上统计每个IP访问日志中访问静态资源和动态资源的比例;所述动、静态资源的区分标准通过访问资源的后缀名进行判断;(4)、通过步骤(3)得到每个IP访问静态资源和动态资源的比例,如果该IP访问动态资源的比例超过静态资源的比例+预设值,则判定该IP属于爬虫IP。静态资源文件后缀名包括但不限于:.jpg、.png、.js、.css、.gif、.ttf、.ico、.pdf、.mp3、.xls,可以根据网站的静态资源类型进行增减。三、特殊爬虫检测法特殊爬虫检测法适用于特殊爬虫,分为以下几个步骤:(1)、筛选出网站日志中HTTP状态码等于200的日志,其它日志均去除掉;(2)、从步骤(1)筛选的日志中过滤出动态资源的访问日志;(3)、统计步骤(2)结果中的日志条数和去重复后IP数,从而可以得到每个IP访问动态资源的平均次数;(4)、在步骤(2)的基础上,统计出每个IP访问单个动态资源的次数列表;(5)、将每个IP访问单个动态资源的次数与步骤3得到的平均访问次数进行对比,如果该IP访问某个动态资源的次数高于平均访问次数+预设值,则判定该IP为爬虫IP。本专利技术技术方案带来的有益效果为:从特征识别和访问行为识别两个角度切入,通过三种检测方法对IP进行识别,可以覆盖普通爬虫、高级爬虫和特殊爬虫,能够从更大范围内进行有效爬虫识别,在检测过程中还可以通过调节参数控制误报率,更加符合实际工作需要。附图说明图1为本方案的流程图;图2为访问行为检测法的流程图;图3为特殊爬虫检测法平均参考值获取流程图;图4为特殊爬虫检测法的流程图。具体实施方式下面结合附图对本专利技术进一步详细说明。本专利技术的流程如图1所示,具体为:1、使用特征检测法检测访问请求数据包中的特征来判断是否为普通爬虫,如果识别成功则判定该IP属于网络爬虫。首先获取访问请求中的UserAgent字段,检测UserAgent中是否包含自动化程序特征,包括python、ruby、PhantomJS、pycurl、httpunit、Wget、Java,如果检测到以上关键词特征则判定为爬虫。注:以上的特征关键词是通过收集常见的自动化程序的UserAgent而来,在
能够发起HTTP请求的工具通常是被技术人员熟知的,因此收集这些工具的特征并不困难。如果遇到新的工具出现可以将其特征添加到我们的UserAegnt特征库中。如果识别失败则进入下一步。2、使用访问行为检测法检测IP访问静态资源和动态资源的比例来判断该IP是否为高级爬虫,如果识别成功则判定该IP属于网络爬虫。问行为检测法如图2所示,具体分为以下几个步骤:2.1、将网站访问日志按照IP维度进行划分,即获取每个IP的全部网站访问日志;2.2、在步骤2.1的基础上过滤出HTTP状态码等于200的日志,其它日志均去除掉;2.3、在步骤2.2的基础上统计每个IP访问日志中访问静态资源和动态资源的比例;所述动、静态资源的区分标准通过访问资源的后缀名进行判断;2.4、通过步骤2.3得到每个IP访问静态资源和动态资源的比例,如果该IP访问动态资源的比例超过静态资源的比例+预设值,则判定该IP属于爬虫IP。注:在一般情况下,正常用户访问一个网页通常会附带多个静态资源请求,即在正常情况下网站用户访问动态资源的比例应当比访问静态资源的比例小得多,而网络爬虫通常不会去访问静态资源,它们多以获取数据为主(某些以获取静态资源的爬虫除外),由于静态资源通常对于爬虫没有意义,因此这类爬虫多以访问动态资源为主,由此,这些爬虫具备了访问动态资源明显多于访问静态资源的行为特征。本方法也是基于这样的行为特征来判断该IP是否为网络爬虫。如果识别失败则进入下一步;3、使用特殊爬虫检测法检测网站接口的访问量来判断是否为爬虫,如果识别成功则判定该IP属于网络爬虫,特殊爬虫检测法如图4所示,具体分为以下几个步骤:3.1、筛选出网站日志中HTTP状态码等于200的日志,其它日志均去除掉;3.2、从步骤3.1筛选的日志中过滤出动态资源的访问日志;3.3、统计步骤3.2结果中的日志条数和去重复后IP数,从而可以得到每个IP访问动态资源的平均次数,如图3所示;例如,整个网站的动态资源访问次数为10本文档来自技高网
...

【技术保护点】
1.一种基于访问日志IP分析的网络爬虫检测方法,其特征在于,包括以下步骤:(1)、使用特征检测法检测访问请求数据包中的特征来判断是否为普通爬虫,如果识别成功则判定该IP属于网络爬虫,否则进入下一步;(2)、使用访问行为检测法检测IP访问静态资源和动态资源的比例来判断该IP是否为高级爬虫,如果识别成功则判定该IP属于网络爬虫,否则进入下一步;(3)、使用特殊爬虫检测法检测网站接口的访问量来判断是否为爬虫,如果识别成功则判定该IP属于网络爬虫,否则判定为非爬虫IP;(4)、输出判定结果。

【技术特征摘要】
1.一种基于访问日志IP分析的网络爬虫检测方法,其特征在于,包括以下步骤:(1)、使用特征检测法检测访问请求数据包中的特征来判断是否为普通爬虫,如果识别成功则判定该IP属于网络爬虫,否则进入下一步;(2)、使用访问行为检测法检测IP访问静态资源和动态资源的比例来判断该IP是否为高级爬虫,如果识别成功则判定该IP属于网络爬虫,否则进入下一步;(3)、使用特殊爬虫检测法检测网站接口的访问量来判断是否为爬虫,如果识别成功则判定该IP属于网络爬虫,否则判定为非爬虫IP;(4)、输出判定结果。2.根据权利要求1所述的一种基于访问日志IP分析的网络爬虫检测方法,其特征在于,所述特征检测法适用于普通爬虫,首先获取访问请求中的UserAgent字段,检测UserAgent中是否包含自动化程序特征,包括python、ruby、PhantomJS、pycurl、httpunit、Wget、Java,如果检测到以上关键词特征则判定为爬虫。3.根据权利要求1所述的一种基于访问日志IP分析的网络爬虫检测方法,其特征在于,所述访问行为检测法适用于高级爬虫,分为以下几个步骤:(1)、将网站访问日志按照IP维度进行划分,即获取每个IP的全部网站访问日志;(2)、在步骤(1)的基础上过滤出HTTP状态码等于200的日志,其它日志均去除掉;(...

【专利技术属性】
技术研发人员:仲俊霖
申请(专利权)人:成都知道创宇信息技术有限公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1