CN107147640B - 识别网络爬虫的方法及系统 - Google Patents
识别网络爬虫的方法及系统 Download PDFInfo
- Publication number
- CN107147640B CN107147640B CN201710321154.4A CN201710321154A CN107147640B CN 107147640 B CN107147640 B CN 107147640B CN 201710321154 A CN201710321154 A CN 201710321154A CN 107147640 B CN107147640 B CN 107147640B
- Authority
- CN
- China
- Prior art keywords
- crawler
- client
- request
- time
- page
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种识别网络爬虫的方法及系统,其中该方法包括:接收客户端发起的页面请求;判断该页面请求是否是爬虫识别程序的请求;如果是爬虫识别程序的请求,根据爬虫识别程序的请求数据判断客户端是否为正常客户端,并修改数据库中的爬虫判断记录;如果不是爬虫识别程序的请求,在响应内容类型为HTML或JavaScript的页面添加爬虫识别程序代码,并发送给客户端。本发明将爬虫识别程序代码下发给客户端,通过判断接收的页面请求是否是爬虫识别程序的请求,然后根据请求数据和客户端的爬虫判断记录识别客户端是否有爬虫活动,能及时进行爬虫识别,提高了识别结果的准确性。
Description
技术领域
本发明涉及网络安全技术领域,特别涉及一种识别网络爬虫的方法及系统。
背景技术
互联网的广泛普及,使得在线Web应用平台已成为互联网信息交互的中心,各种商业交易均可以在Web应用平台上完成,随之而来的是在线Web应用平台面临的越来越多的安全威胁。其中,黑客们使用各种各样扫描工具扫描Web程序,进行一些非法的网络行为,并依此来获取相关利益。不管是对Web应用平台进行漏洞扫描,还是针对商品页面进行刷单抢单等薅羊毛行为,首先进行的都是页面的爬虫活动,进而从返回的页面里提取相关信息。复杂的网络请求中,存在各式各样页面信息爬取,不正规的、恶意的程序过量爬取会造成服务器负载过大。
目前,识别网络爬虫主要有以下三种方法:(1)统计方法,通过对访问记录进行统计,根据事件类型、访问频率等进行分析;(2)用户代理(User Agent,简称为UA)分析方法,分析UA是否带有明显的爬虫程序的信息;(3)陷阱方法,通过设置一种浏览器渲染不可见的隐藏链接,等待爬虫触发。
上述方法中均存在一些不足,具体如下:
(1)统计方法跟产品自身相关性较大,需根据产品特征来定义。判断的准则具有不确定性,无法根据一个定性的条件来判断。在某些页面存在线上活动时,就会导致局部页面请求的频率出现异常,从而出现爬虫特征。而有些公司、学校统一网络出口的地址其页面访问信息的统计结果也符合爬虫特征。
(2)UA分析方法,UA信息容易被伪造,造成遗漏。UA信息是由超文本传输协议(Hyper Text Transfer Protocol,简称为HTTP)请求发起方主动携带的标记当前请求环境的一个信息字段,这个信息可由发起方进行修改。如常用的各种浏览器均会在UA带上自己浏览器信息的特殊字符,包括谷歌、百度等搜索引擎爬虫的UA均带有特殊标记的字符,而一些恶意爬虫程序利用这个特征伪造UA信息字段,使之和正规的搜索引擎爬虫的UA或者正常浏览器的UA字段信息一样,这样就导致无法对这一类恶意爬虫程序进行有效的识别。
(3)陷阱方法,对于一些指定页面爬取的爬虫请求无法识别,会存在一定的误报。
发明内容
为了解决现有技术中爬虫程序伪造信息字段造成爬虫识别结果判断不准确,以及现有爬虫识别方法存在一定的延时判断,无法及时对请求进行识别判断的问题,本发明实施例提供了一种识别网络爬虫的方法及系统。所述技术方案如下:
根据本发明实施例的一个方面,提供了一种识别网络爬虫的方法,包括:
接收客户端发起的页面请求;
判断所述页面请求是否是爬虫识别程序的请求;
如果所述页面请求是爬虫识别程序的请求,根据所述爬虫识别程序的请求数据判断所述客户端是否为正常客户端,并修改数据库中的爬虫判断记录;
如果所述页面请求不是爬虫识别程序的请求,在响应内容类型为超文本标记语言(HyperText Markup Language,简称为HTML)或JavaScript(简称为JS,是一种脚本语言)的页面添加爬虫识别程序代码,并发送给所述客户端。
进一步的,根据所述爬虫识别程序的请求数据判断所述客户端是否为正常客户端,并修改数据库中的爬虫判断记录,包括:
判断所述页面请求是否是获取焦点请求;
如果是获取焦点请求,则将所述客户端的爬虫判断记录中的缓冲时间修改为当前时间;
如果不是获取焦点请求,则判断所述页面请求是否是失去焦点请求、关闭页面请求和用户行为请求中的任一个;
如果是失去焦点请求、关闭页面请求和用户行为请求中的任一个,则确定所述客户端为正常客户端,并修改所述客户端的爬虫判断记录中的对应字段;
如果不是失去焦点请求、关闭页面请求和用户行为请求中的任一个,则判断所述页面请求是否是需要再下发爬虫识别程序代码的请求;
如果是需要再下发爬虫识别程序代码的请求,则修改所述客户端的爬虫判断记录中的对应字段;
如果不是需要再下发爬虫识别程序代码的请求,则不做任何处理。
进一步的,所述爬虫判断记录包括以下字段:客户端标识、缓冲时间、更新时间、下发状态和爬虫标识位;其中,所述缓冲时间表示所述爬虫识别程序的请求的接收时间范围的计算起点;所述更新时间表示修改所述爬虫标识位的时间;所述下发状态表示所述爬虫识别程序代码是否下发给客户端,0表示默认值,1表示已下发,2表示再下发;爬虫标识位包括:0表示默认值,1表示正常客户端,2表示爬虫可疑客户端。
进一步的,确定所述客户端为正常客户端,并修改所述客户端的爬虫判断记录中的对应字段,包括:将缓冲时间修改为0,更新时间修改为当前时间,下发状态修改为0,爬虫标识位修改为1;
如果是需要再下发爬虫识别程序代码的请求,则修改所述客户端的爬虫判断记录中的对应字段,包括:将缓冲时间修改为0,更新时间修改为0,下发状态修改为2。
进一步的,在响应内容类型为HTML或JavaScript的页面添加爬虫识别程序代码,并发送给所述客户端,包括:
判断所述页面请求是否是HTML页面且支持JavaScript;
如果不是HTML页面和/或不支持JavaScript,则确定不需要下发所述爬虫识别程序代码,直接响应所述页面请求;
如果是HTML页面且支持JavaScript,则确定需要下发所述爬虫识别程序代码。
进一步的,在确定需要下发所述爬虫识别程序代码之后,所述方法还包括:
根据客户端标识判断所述数据库中是否存储有所述客户端的爬虫判断记录;
如果否,则确定所述客户端未做过爬虫识别处理,在响应中添加所述爬虫识别程序代码,发给所述客户端,并在所述数据库中添加所述客户端的爬虫判断记录;
如果是,则确定所述客户端做过爬虫识别处理,根据所述客户端的爬虫判断记录中的下发状态判断是否需要再下发所述爬虫识别程序代码;
如果下发状态为2,则确定需要再下发所述爬虫识别程序代码,在响应中添加所述爬虫识别程序代码,发给所述客户端,并将所述客户端的爬虫判断记录中的缓冲时间修改为当前时间,下发状态修改为1;
如果下发状态不为2,则确定不需要再下发所述爬虫识别程序代码,直接响应所述页面请求。
进一步的,所述方法还包括:
判断所述爬虫判断记录中的缓冲时间与当前时间的差值是否超出预设时间范围;
如果超出所述预设时间范围且未收到所述爬虫识别程序的请求,则确定所述客户端为爬虫可疑客户端,并将缓冲时间修改为0,更新时间修改为当前时间,下发状态修改为0,爬虫标识位修改为2;
如果未超出所述预设时间范围,则根据爬虫标识位与更新时间确定所述客户端的当前情况以及所要执行的操作。
进一步的,根据爬虫标识位与更新时间确定所述客户端的当前情况以及所要执行的操作,包括:
如果爬虫标识位为0,则确定处于判断过程,不做任何处理;
如果爬虫标识位为1,则说明之前已判断该客户端为正常客户端,此时需判断更新时间与当前时间的差值是否超出预设的识别间隔时间;如果是,则删除所述客户端的爬虫判断记录,等待下次接收页面请求进行重新识别;如果否,则不做任何处理;
如果爬虫标识位为2,则说明之前已判断该客户端为爬虫可疑客户端,此时需判断更新时间与当前时间的差值是否超出预设的爬虫处理时间;如果是,则确定需再下发所述爬虫识别程序代码,将下发状态修改为2,缓冲时间修改为当前时间,更新时间修改为空,爬虫标识位修改为0;如果否,则不做任何处理。
根据本发明实施例的另一个方面,提供了一种识别网络爬虫的系统,包括:
接收单元,用于接收客户端发起的页面请求;
第一判断单元,用于判断所述页面请求是否是爬虫识别程序的请求;
第一处理单元,用于在所述页面请求是爬虫识别程序的请求的情况下,根据所述爬虫识别程序的请求数据判断所述客户端是否为正常客户端,并修改数据库中的爬虫判断记录;
第二处理单元,用于在所述页面请求不是爬虫识别程序的请求的情况下,在响应内容类型为HTML或JavaScript的页面添加爬虫识别程序代码,并发送给所述客户端。
进一步的,所述第一处理单元包括:
第一判断模块,用于判断所述页面请求是否是获取焦点请求;
第一处理模块,用于在所述页面请求是获取焦点请求的情况下,将所述客户端的爬虫判断记录中的缓冲时间修改为当前时间;
第二判断模块,用于在所述页面请求不是获取焦点请求的情况下,判断所述页面请求是否是失去焦点请求、关闭页面请求和用户行为请求中的任一个;
第二处理模块,用于在所述页面请求是失去焦点请求、关闭页面请求和用户行为请求中的任一个的情况下,确定所述客户端为正常客户端,并修改所述客户端的爬虫判断记录中的对应字段;
第三判断模块,用于在所述页面请求不是失去焦点请求、关闭页面请求和用户行为请求中的任一个的情况下,判断所述页面请求是否是需要再下发爬虫识别程序代码的请求;
第三处理模块,用于在所述页面请求是需要再下发爬虫识别程序代码的请求的情况下,修改所述客户端的爬虫判断记录中的对应字段;以及在所述页面请求不是需要再下发爬虫识别程序代码的请求的情况下,不做任何处理。
进一步的,所述爬虫判断记录包括以下字段:客户端标识、缓冲时间、更新时间、下发状态和爬虫标识位;其中,所述缓冲时间表示所述爬虫识别程序的请求的接收时间范围的计算起点;所述更新时间表示修改所述爬虫标识位的时间;所述下发状态表示所述爬虫识别程序代码是否下发给客户端,0表示默认值,1表示已下发,2表示再下发;爬虫标识位包括:0表示默认值,1表示正常客户端,2表示爬虫可疑客户端。
进一步的,所述第二处理模块具体用于将缓冲时间修改为0,更新时间修改为当前时间,下发状态修改为0,爬虫标识位修改为1;
所述第三处理模块具体用于将缓冲时间修改为0,更新时间修改为0,下发状态修改为2。
进一步的,所述第二处理单元包括:
第四判断模块,用于判断所述页面请求是否是HTML页面且支持JavaScript;
第四处理模块,用于在所述页面请求不是HTML页面和/或不支持JavaScript的情况下,确定不需要下发所述爬虫识别程序代码,直接响应所述页面请求;
确定模块,用于在所述页面请求是HTML页面且支持JavaScript的情况下,确定需要下发所述爬虫识别程序代码。
进一步的,所述第二处理单元还包括:
第五判断模块,用于在所述确定模块确定需要下发所述爬虫识别程序代码之后,根据客户端标识判断所述数据库中是否存储有所述客户端的爬虫判断记录;
第五处理模块,用于在判断结果为否的情况下,确定所述客户端未做过爬虫识别处理,在响应中添加所述爬虫识别程序代码,发给所述客户端,并在所述数据库中添加所述客户端的爬虫判断记录;
第六判断模块,用于在判断结果为是的情况下,确定所述客户端做过爬虫识别处理,根据所述客户端的爬虫判断记录中的下发状态判断是否需要再下发所述爬虫识别程序代码;
第六处理模块,用于在下发状态为2的情况下,确定需要再下发所述爬虫识别程序代码,在响应中添加所述爬虫识别程序代码,发给所述客户端,并将所述客户端的爬虫判断记录中的缓冲时间修改为当前时间,下发状态修改为1;
第七处理模块,用于在下发状态不为2的情况下,确定不需要再下发所述爬虫识别程序代码,直接响应所述页面请求。
进一步的,所述系统还包括:
第二判断单元,用于判断所述爬虫判断记录中的缓冲时间与当前时间的差值是否超出预设时间范围;
第三处理单元,用于在超出预设时间范围且未收到所述爬虫识别程序的请求的情况下,确定所述客户端为爬虫可疑客户端,并将缓冲时间修改为0,更新时间修改为当前时间,下发状态修改为0,爬虫标识位修改为2;
第四处理单元,用于在未超出所述预设时间范围的情况下,根据爬虫标识位与更新时间确定所述客户端的当前情况以及所要执行的操作。
进一步的,所述第四处理单元具体用于:
如果爬虫标识位为0,则确定处于判断过程,不做任何处理;
如果爬虫标识位为1,则说明之前已判断该客户端为正常客户端,此时需判断更新时间与当前时间的差值是否超出预设的识别间隔时间;如果是,则删除所述客户端的爬虫判断记录,等待下次接收页面请求进行重新识别;如果否,则不做任何处理;
如果爬虫标识位为2,则说明之前已判断该客户端为爬虫可疑客户端,此时需判断更新时间与当前时间的差值是否超出预设的爬虫处理时间;如果是,则确定需再下发所述爬虫识别程序代码,将下发状态修改为2,缓冲时间修改为当前时间,更新时间修改为空,爬虫标识位修改为0;如果否,则不做任何处理。
本发明实施例提供的技术方案带来的有益效果是:将爬虫识别程序代码下发给客户端,通过判断接收的页面请求是否是爬虫识别程序的请求,然后进行相应的处理,根据请求数据和客户端的爬虫判断记录识别客户端是否有爬虫活动,能够根据页面请求及时进行爬虫识别判断。同时,对源服务器中的代码结构和业务逻辑无需做任何改变,识别过程与产品特征无关,也与易于伪造的用户代理信息字段无关,提高了识别结果的准确性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的识别网络爬虫的方法的流程图;
图2是本发明实施例提供的识别网络爬虫的方法中步骤S103的具体流程图;
图3是本发明实施例提供的识别网络爬虫的方法中步骤S104的具体的流程图;
图4是本发明具体实施例提供的识别网络爬虫方法的流程图;
图5是本发明具体实施例提供的时间处理流程图;
图6是本发明实施例提供的识别网络爬虫的系统的结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种识别网络爬虫的方法,可以由服务器执行。图1是本发明实施例提供的识别网络爬虫的方法的流程图,如图1所示,该方法包括如下的步骤S101至步骤S104。
步骤S101,接收客户端发起的页面请求。
步骤S102,判断页面请求是否是爬虫识别程序的请求。具体的,如果爬虫识别程序代码下发到客户端,爬虫识别程序可以利用一些请求进行爬虫识别,例如,该请求可以是敲击键盘、点击鼠标等用户行为请求,或者是关闭页面请求等。
步骤S103,如果页面请求是爬虫识别程序的请求,根据爬虫识别程序的请求数据判断客户端是否为正常客户端,并修改数据库中的爬虫判断记录。其中,爬虫判断记录是存储在数据库中的,用于辅助进行爬虫识别的信息。
步骤S104,如果页面请求不是爬虫识别程序的请求,在响应内容类型为HTML或JavaScript的页面添加爬虫识别程序代码,并发送给客户端。即通过响应向客户端下发爬虫识别程序代码。
上述识别网络爬虫的方法中,将爬虫识别程序代码下发给客户端,通过判断接收的页面请求是否是爬虫识别程序的请求,然后进行相应的处理,根据请求数据和爬虫判断记录识别客户端是否有爬虫活动,后续根据客户端情况实时修改该客户端的爬虫判断记录。该方法能够根据页面请求及时进行爬虫识别判断,同时,对源服务器中的代码结构和业务逻辑无需做任何改变,识别过程与产品特征无关,也与易于伪造的用户代理信息字段无关,提高了识别结果的准确性。
上述爬虫判断记录包括以下字段:客户端标识(即客户端ID)、缓冲时间、更新时间、下发状态和爬虫标识位。其中,客户端标识可以包括MAC(Media Access Control,媒体访问控制)地址、客户端信息(如JS、HTML、HTML5特性等的支持情况)、浏览器类型等。缓冲时间表示爬虫识别程序的请求的接收时间范围的计算起点,在具体应用中,可以计算缓冲时间与当前时间的差值,若该差值超过预设的接收时间范围,即预设的接收时间范围内未收到爬虫识别程序的请求,可以确定客户端为爬虫可疑客户端。更新时间表示修改爬虫标识位的时间。下发状态表示爬虫识别程序代码是否下发给客户端,0表示默认值,1表示已下发,2表示再下发。爬虫标识位的值可以为0、1或2,0表示默认值,1表示正常客户端,2表示爬虫可疑客户端。
初始的爬虫判断记录中,缓冲时间为当前时间戳,更新时间为空,下发状态为1,爬虫标识位为0。
如图2所示,步骤S103中根据爬虫识别程序的请求数据判断客户端是否为正常客户端并修改数据库中的爬虫判断记录,可以包括以下步骤:
步骤S1031,判断页面请求是否是获取焦点请求。其中,获取焦点请求是指鼠标点击屏幕上某一位置,鼠标所点位置为焦点,则该位置或位置所属页面获取了焦点,点击行为所产生的请求即为获取焦点请求。
步骤S1032,如果是获取焦点请求,则将该客户端的爬虫判断记录中的缓冲时间修改为当前时间。此时,并不能判断出客户端是否有爬虫活动,对缓冲时间字段进行修改,以便后续计算接收时间范围内是否接收到爬虫识别程序的请求,从而可以识别客户端是否有爬虫活动。
步骤S1033,如果不是获取焦点请求,则判断页面请求是否是失去焦点请求、关闭页面请求和用户行为请求中的任一个。
举例而言,用户打开了某个页面,然后点击鼠标右键弹出新窗口,那么该页面就失去焦点,该点击右键的行为所产生的请求即为失去焦点请求。用户行为请求包括用户敲击键盘、点击鼠标、滚轮、滑动等用户具体操作行为所产生的请求。在实际应用中,点击右键弹出窗口的位置是随机的,不同的客户端在不同的时间弹出窗口的位置不相同,这样的随机性可以确保不会造成重放攻击。对于这种轻度影响用户正常使用、浏览网页的因素,用户行为上往往有比较简单的下意识操作去进行修正,例如,移动鼠标后点击、鼠标右键点击空白处等,由此可以尽量避免爬虫误报。
步骤S1034,如果是失去焦点请求、关闭页面请求和用户行为请求中的任一个,则确定客户端为正常客户端,并修改该客户端的爬虫判断记录中的对应字段。具体修改字段如下:将缓冲时间修改为0,更新时间修改为当前时间,下发状态修改为0,爬虫标识位修改为1。
本步骤中,确定为正常客户端时,对更新时间字段进行修改,以便后续根据该更新时间计算是否到了识别间隔时间,如果到了识别间隔时间,则需要重新对该客户端进行识别,以免发生漏报。具体的,如果页面请求是用户行为请求,对于隐藏鼠标的方案,服务器需收到至少3个鼠标位置,才能判断为正常客户端,从而减少漏报误报的发生。
步骤S1035,如果不是失去焦点请求、关闭页面请求和用户行为请求中的任一个,则判断页面请求是否是需要再下发爬虫识别程序代码的请求。
步骤S1036,如果是需要再下发爬虫识别程序代码的请求,则修改该客户端的爬虫判断记录中的对应字段。具体修改字段如下:将缓冲时间修改为0,更新时间修改为0,下发状态修改为2。将缓冲时间和更新时间归零,便于下一轮识别过程中对其进行赋值。
步骤S1037,如果不是需要再下发爬虫识别程序代码的请求,则不做任何处理。
通过图2所示的流程,能够根据爬虫识别程序的请求数据判断出客户端是否有爬虫活动,如果暂时未能判断出结果,则等待下一轮再接收到页面请求进行识别。
如图3所示,步骤S104包括以下步骤:
步骤S1041,判断页面请求是否是HTML页面且支持JavaScript,以判断是否需要下发爬虫识别程序代码;
步骤S1042,如果不是HTML页面和/或不支持JavaScript,则确定不需要下发爬虫识别程序代码,直接响应页面请求;
步骤S1043,如果是HTML页面且支持JavaScript,则确定需要下发爬虫识别程序代码,并进入步骤S1044;
步骤S1044,根据客户端标识判断数据库中是否存储有该客户端的爬虫判断记录;
步骤S1045,如果否,则确定客户端未做过爬虫识别处理,在响应中添加爬虫识别程序代码,发给客户端,并在数据库中添加该客户端的爬虫判断记录;
步骤S1046,如果是,则确定客户端做过爬虫识别处理,根据该客户端的爬虫判断记录中的下发状态判断是否需要再下发爬虫识别程序代码;
步骤S1047,如果下发状态为2,则确定需要再下发爬虫识别程序代码,在响应中添加爬虫识别程序代码,发给客户端,并将该客户端的爬虫判断记录中的缓冲时间修改为当前时间,下发状态修改为1;
步骤S1048,如果下发状态不为2,则确定不需要再下发爬虫识别程序代码,直接响应页面请求。
图3所示的流程中,在页面请求不是爬虫识别程序的请求的情况下,根据页面请求的特点以及数据库中是否存在该客户端的爬虫判断记录,决定是否需要下发代码给客户端,以便及时识别爬虫,避免对该客户端的漏报。
在上述识别网络爬虫的过程中,还可以包括时间处理流程,例如,在多长时间内未收到爬虫识别程序的请求,则判定客户端为爬虫可疑客户端;爬虫可疑客户端的爬虫处理时间;对正常客户端进行重新识别的间隔时间。时间处理流程可以是与识别过程并行进行,根据数据库中的爬虫判断记录计算时间差值,与预设值进行对比,并进行相应处理。时间处理流程可以在接收到客户端发起的时间处理请求后启动,也可以由服务器自身决定何时启动,例如,间隔一段时间对所有客户端或部分客户端启动时间处理流程。
具体的,上述识别网络爬虫的方法还可以包括以下时间处理步骤:判断爬虫判断记录中的缓冲时间与当前时间的差值是否超出预设时间范围;如果超出预设时间范围,且未收到爬虫识别程序的请求,则确定客户端为爬虫可疑客户端,并将缓冲时间修改为0,更新时间修改为当前时间,下发状态修改为0,爬虫标识位修改为2;如果未超出预设时间范围,则根据爬虫标识位与更新时间确定客户端的当前情况以及所要执行的操作。
上述时间处理步骤中,确定为爬虫可疑客户端时,对更新时间字段进行修改,以便后续根据该更新时间计算是否到了爬虫处理时间,如果到了爬虫处理时间,则需要重新对该客户端进行识别,以免发生误报。上述预设时间范围可以根据实际需求自行设定,例如,可以配置为1分钟,从缓冲时间起算,超过1分钟未收到爬虫识别程序的请求,则确定客户端为爬虫可疑客户端。
其中,根据爬虫标识位与更新时间确定客户端的当前情况以及所要执行的操作,包括:
(1)如果爬虫标识位为0,则确定处于判断过程,暂时不做任何处理。
(2)如果爬虫标识位为1,则说明之前已判断该客户端为正常客户端,此时需判断更新时间与当前时间的差值是否超出预设的识别间隔时间;如果是,则删除该客户端的爬虫判断记录,等待下次接收页面请求进行重新识别;如果否,则不做任何处理。
(3)如果爬虫标识位为2,则说明之前已判断该客户端为爬虫可疑客户端,此时需判断更新时间与当前时间的差值是否超出预设的爬虫处理时间;如果是,则确定需再下发爬虫识别程序代码,将下发状态修改为2,缓冲时间修改为当前时间,更新时间修改为空,爬虫标识位修改为0;如果否,则不做任何处理。本步骤中,过了爬虫处理时间,对缓冲时间字段进行修改,以便后续计算接收时间范围内是否接受到爬虫识别程序的请求,从而可以及时识别客户端是否有爬虫活动。
对于正常客户端,在经过一段时间后需要重新进行爬虫识别,这段时间即为识别间隔时间,可以根据实际需求自行设定,例如24小时。对于爬虫可疑客户端,在对其进行一段时间的处理(例如,拦截)后,需要重新下发代码,这段时间即为爬虫处理时间,可以根据实际需求自行设定,例如10分钟。
通过上述时间处理流程,对确定为正常客户端或者爬虫可疑客户端的客户端,在间隔一定时间后,重新进行爬虫识别,从而能够及时发现爬虫活动,避免漏报情况发生。
下面结合图4和图5的具体实施例对上述识别网络爬虫的方法进行详细说明。以下具体实施例仅作示例,在实际应用中,在能够实现方案的基础上可以对其步骤的执行顺序或实现方式稍作改变。
图4是本发明具体实施例提供的识别网络爬虫方法的流程图,包括以下步骤:
步骤S4001,接收页面请求。
步骤S4002,判断页面请求是否是爬虫识别程序的请求。如果不是,则进入步骤S4003;如果是,则进入步骤S4010。
步骤S4003,判断页面请求是否是HTML页面且支持JS(Java Script,Java脚本),本步骤是为了判断是否需要下发代码。如果不是HTML页面和/或者不支持JS,说明不能解析JS的请求,则进入步骤S4004;如果是HTML页面且支持JS,则进入步骤S4005。
步骤S4004,直接响应。
步骤S4005,判断数据库中是否存在此客户端的爬虫判断记录,本步骤是为了判断此客户端是否有做过爬虫识别的处理。如果存在,则进入步骤S4007;如果不存在,则进入步骤S4006。
步骤S4006,在响应中加入爬虫识别程序代码,并在数据库中插入一条记录。
初始化记录的各字段值如下:
客户端ID:当前的客户端ID;
缓冲时间:当前时间戳;
更新时间:空;
下发状态:1,表示已下发;
爬虫标识位:0,表示默认值。
步骤S4007,判断下发状态字段是否为2,本步骤是为了判断是否需要再下发代码。如果是,则需要再下发代码,进入步骤S4008;如果不是,则无需再下发代码,进入步骤S4009。
步骤S4008,在响应中加入爬虫识别程序代码,发给客户端,并修改数据库中记录的字段。
客户端ID:当前的客户端ID;
缓冲时间:当前时间戳;
更新时间:空;
下发状态:1,表示已下发;
爬虫标识位:0,表示默认值。
步骤S4009,直接响应。
步骤S4010,判断页面请求是否是获取焦点请求,本步骤是为了判断接收到的页面请求的类型。如果是,则进入步骤S4011;如果不是,则进入步骤S4012。
步骤S4011,将缓冲时间修改为当前时间。
客户端ID:当前的客户端ID;
缓冲时间:当前时间戳;
更新时间:空;
下发状态:1,表示已下发;
爬虫标识位:0,表示默认值。
步骤S4012,判断页面请求是否是失去焦点请求,本步骤是为了判断接收到的页面请求的类型。如果是,则进入步骤S4013;如果不是,则进入步骤S4014。
步骤S4013,判断为正常的客户端,修改数据库中记录的字段。
客户端ID:当前的客户端ID;
缓冲时间:0;
更新时间:当前时间;
下发状态:0,表示默认值;
爬虫标识位:1,表示正常客户端。
步骤S4014,判断页面请求是否是关闭页面请求,本步骤是为了判断接收到的请求的类型。如果是,则进入步骤S4015;如果不是,则进入步骤S4016。
步骤S4015,判断为正常的客户端,修改数据库中记录的字段。
客户端ID:当前的客户端ID;
缓冲时间:0;
更新时间:当前时间;
下发状态:0,表示默认值;
爬虫标识位:1,表示正常客户端。
步骤S4016,判断页面请求是否是用户行为请求,本步骤是为了判断接收到的请求的类型。如果是,则进入步骤S4017;如果不是,则进入步骤S4018。
步骤S4017,判断为正常客户端,修改数据库中记录的字段。
客户端ID:当前的客户端ID;
缓冲时间:0;
更新时间:当前时间;
下发状态:0,表示默认值;
爬虫标识位:1,表示正常客户端。
步骤S4018,判断页面请求是否是需要再下发的请求。如果是,则进入步骤S4019;如果不是,则进入步骤S4020。
步骤S4019,修改下发状态为2。
客户端ID:当前的客户端ID;
缓冲时间:0;
更新时间:0;
下发状态:2,表示再下发;
爬虫标识位:0,表示默认值。
步骤S4020,不做任何处理。
图5是本发明具体实施例提供的时间处理流程图,包括以下步骤:
步骤S5001,接收客户端发起的时间判断请求。
步骤S5002,判断缓冲时间字段的时间戳与当前时间的差值是否超过预设时间范围1分钟。如果超过,进入步骤S5003;如果不超过,进入步骤S5004
步骤S5003,判断此客户端为爬虫可疑客户端,爬虫标识位改为2,更新时间更改为当前时间,缓冲时间和下发状态都改为0。
步骤S5004,判断爬虫标识位是否为非零值。本步骤是为了判断此客户端目前的情况,其中0表示还处于判断阶段,1是正常客户端,2是爬虫客户端。如果为0,进入步骤S5005;如果为非零值,进入步骤S5006。
步骤S5005,还处于判断阶段,等待客户端的页面请求,暂时不做任何处理。
步骤S5006,判断爬虫标识位是否为1。本步骤仍是为了判断此客户端目前的情况。如果为1,进入步骤S5010;如果为2,进入步骤S5007。
步骤S5007,说明是已经判断为爬虫可疑客户端的客户端,判断当前时间与更新时间的时间差是否大于爬虫处理时间10分钟。本步骤是为了判断是否到了爬虫处理时间,对于爬虫可疑客户端,可以做相应的处理,比如拦截,爬虫处理时间到达后重新判断是否有爬虫活动。如果是,进入步骤S5008,如果否,进入步骤S5009。
步骤S5008,说明拦截时间到,需重新下发代码,修改下发状态为2,其他字段改为初始值。
步骤S5009,说明还在拦截时间内,可不做处理。
步骤S5010,说明是已经判断为正常的客户端,判断当前时间与更新时间的时间差是否大于识别间隔时间24小时,本步骤是为了判断是否到了重新识别的时间,例如24小时后重新识别。如果是,进入步骤S5011;如果否,进入步骤S5012。
步骤S5011,删除此条记录,等待下次请求过来重新识别。
步骤S5012,还没到重新识别的时间,可不做处理。
本发明实施例还提供了一种识别网络爬虫的系统,用于实现上述识别网络爬虫的方法,其实施可以参考上述方法实施例。如图6所示,该系统包括:接收单元61、第一判断单元62、第一处理单元63和第二处理单元64。下面对其结构进行详细说明。
接收单元61,用于接收客户端发起的页面请求。
第一判断单元62,连接至接收单元61,用于判断页面请求是否是爬虫识别程序的请求。
第一处理单元63,连接至第一判断单元62,用于在页面请求是爬虫识别程序的请求的情况下,根据爬虫识别程序的请求数据判断客户端是否为正常客户端,并修改数据库中的爬虫判断记录。爬虫判断记录包括的字段参考方法实施例中所述,此处不再赘述。
第二处理单元64,连接至第一判断单元62,用于在页面请求不是爬虫识别程序的请求的情况下,在响应内容类型为HTML或JavaScript的页面添加爬虫识别程序代码,并发送给客户端。
上述识别网络爬虫的系统将爬虫识别程序代码下发给客户端,通过判断接收的页面请求是否是爬虫识别程序的请求,然后进行相应的处理,根据请求数据和爬虫判断记录识别客户端是否有爬虫活动,后续根据客户端情况实时修改该客户端的爬虫判断记录。该方法能够根据页面请求及时进行爬虫识别判断,同时,对源服务器中的代码结构和业务逻辑无需做任何改变,识别过程与产品特征无关,也与易于伪造的用户代理信息字段无关,提高了识别结果的准确性。
优选的,第一处理单元63包括:第一判断模块、第一处理模块、第二判断模块、第二处理模块、第三判断模块和第三处理模块。上述模块用于判断请求数据以及进行相应处理。
具体的,第一判断模块,用于判断页面请求是否是获取焦点请求;第一处理模块,连接至第一判断模块,用于在页面请求是获取焦点请求的情况下,将该客户端的爬虫判断记录中的缓冲时间修改为当前时间;第二判断模块,连接至第一判断模块,用于在页面请求不是获取焦点请求的情况下,判断页面请求是否是失去焦点请求、关闭页面请求和用户行为请求中的任一个;第二处理模块,连接至第二判断模块,用于在页面请求是失去焦点请求、关闭页面请求和用户行为请求中的任一个的情况下,确定客户端为正常客户端,并修改该客户端的爬虫判断记录中的对应字段;第三判断模块,连接至第二判断模块,用于在页面请求不是失去焦点请求、关闭页面请求和用户行为请求中的任一个的情况下,判断页面请求是否是需要再下发爬虫识别程序代码的请求;第三处理模块,连接至第三判断模块,用于在页面请求是需要再下发爬虫识别程序代码的请求的情况下,修改该客户端的爬虫判断记录中的对应字段;以及在页面请求不是需要再下发爬虫识别程序代码的请求的情况下,不做任何处理。
其中,第二处理模块具体用于将缓冲时间修改为0,更新时间修改为当前时间,下发状态修改为0,爬虫标识位修改为1。第三处理模块具体用于将缓冲时间修改为0,更新时间修改为0,下发状态修改为2。
优选的,第二处理单元64包括:第四判断模块、第四处理模块、确定模块、第五判断模块、第五处理模块、第六判断模块、第六处理模块和第七处理模块。
具体的,第四判断模块,用于判断页面请求是否是HTML页面且支持JavaScript;第四处理模块,连接至第四判断模块,用于在页面请求不是HTML页面和/或不支持JavaScript的情况下,确定不需要下发爬虫识别程序代码,直接响应页面请求;确定模块,连接至第四判断模块,用于在页面请求是HTML页面且支持JavaScript的情况下,确定需要下发爬虫识别程序代码;第五判断模块,连接至确定模块,用于在确定模块确定需要下发爬虫识别程序代码之后,根据客户端标识判断数据库中是否存储有该客户端的爬虫判断记录;第五处理模块,连接至第五判断模块,用于在判断结果为否的情况下,确定客户端未做过爬虫识别处理,在响应中添加爬虫识别程序代码,发给客户端,并在数据库中添加该客户端的爬虫判断记录;第六判断模块,连接至第五判断模块,用于在判断结果为是的情况下,确定客户端做过爬虫识别处理,根据该客户端的爬虫判断记录中的下发状态判断是否需要再下发爬虫识别程序代码;第六处理模块,连接至第六判断模块,用于在下发状态为2的情况下,确定需要再下发爬虫识别程序代码,在响应中添加爬虫识别程序代码,发给客户端,并将该客户端的爬虫判断记录中的缓冲时间修改为当前时间,下发状态修改为1;第七处理模块,连接至第六判断模块,用于在下发状态不为2的情况下,确定不需要再下发爬虫识别程序代码,直接响应页面请求。
上述系统还可以包括:第二判断单元、第三处理单元和第四处理单元。
具体的,第二判断单元,用于判断爬虫判断记录中的缓冲时间与当前时间的差值是否超出预设时间范围;第三处理单元,连接至第二判断单元,用于在超出预设时间范围且未收到爬虫识别程序的请求的情况下,确定客户端为爬虫可疑客户端,并将缓冲时间修改为0,更新时间修改为当前时间,下发状态修改为0,爬虫标识位修改为2;第四处理单元,连接至第二判断单元,用于在未超出预设时间范围的情况下,根据爬虫标识位与更新时间确定客户端的当前情况以及所要执行的操作。
其中,第四处理单元具体用于:如果爬虫标识位为0,则确定处于判断过程,不做任何处理;如果爬虫标识位为1,则说明之前已判断该客户端为正常客户端,此时需判断更新时间与当前时间的差值是否超出预设的识别间隔时间;如果是,则删除该客户端的爬虫判断记录,等待下次接收页面请求进行重新识别;如果否,则不做任何处理;如果爬虫标识位为2,则说明之前已判断该客户端为爬虫可疑客户端,此时需判断更新时间与当前时间的差值是否超出预设的爬虫处理时间;如果是,则确定需再下发爬虫识别程序代码,将下发状态修改为2,缓冲时间修改为当前时间,更新时间修改为空,爬虫标识位修改为0;如果否,则不做任何处理。
以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (16)
1.一种识别网络爬虫的方法,其特征在于,包括:
接收客户端发起的页面请求;
判断所述页面请求是否是爬虫识别程序的请求;
如果所述页面请求是爬虫识别程序的请求,根据所述爬虫识别程序的请求数据判断所述客户端是否为正常客户端,并修改数据库中的爬虫判断记录;
如果所述页面请求不是爬虫识别程序的请求,在响应内容类型为超文本标记语言HTML或JavaScript的页面添加爬虫识别程序代码,并发送给所述客户端。
2.如权利要求1所述的识别网络爬虫的方法,其特征在于,根据所述爬虫识别程序的请求数据判断所述客户端是否为正常客户端,并修改数据库中的爬虫判断记录,包括:
判断所述页面请求是否是获取焦点请求;
如果是获取焦点请求,则将所述客户端的爬虫判断记录中的缓冲时间修改为当前时间;
如果不是获取焦点请求,则判断所述页面请求是否是失去焦点请求、关闭页面请求和用户行为请求中的任一个;
如果是失去焦点请求、关闭页面请求和用户行为请求中的任一个,则确定所述客户端为正常客户端,并修改所述客户端的爬虫判断记录中的对应字段;
如果不是失去焦点请求、关闭页面请求和用户行为请求中的任一个,则判断所述页面请求是否是需要再下发爬虫识别程序代码的请求;
如果是需要再下发爬虫识别程序代码的请求,则修改所述客户端的爬虫判断记录中的对应字段;
如果不是需要再下发爬虫识别程序代码的请求,则不做任何处理。
3.如权利要求1或2所述的识别网络爬虫的方法,其特征在于,所述爬虫判断记录包括以下字段:客户端标识、缓冲时间、更新时间、下发状态和爬虫标识位;其中,所述缓冲时间表示所述爬虫识别程序的请求的接收时间范围的计算起点;所述更新时间表示修改所述爬虫标识位的时间;所述下发状态表示所述爬虫识别程序代码是否下发给客户端,0表示默认值,1表示已下发,2表示再下发;爬虫标识位包括:0表示默认值,1表示正常客户端,2表示爬虫可疑客户端。
4.如权利要求2所述的识别网络爬虫的方法,其特征在于,
确定所述客户端为正常客户端,并修改所述客户端的爬虫判断记录中的对应字段,包括:将缓冲时间修改为0,更新时间修改为当前时间,下发状态修改为0,爬虫标识位修改为1;
如果是需要再下发爬虫识别程序代码的请求,则修改所述客户端的爬虫判断记录中的对应字段,包括:将缓冲时间修改为0,更新时间修改为0,下发状态修改为2。
5.如权利要求1所述的识别网络爬虫的方法,其特征在于,在响应内容类型为HTML或JavaScript的页面添加爬虫识别程序代码,并发送给所述客户端,包括:
判断所述页面请求是否是HTML页面且支持JavaScript;
如果不是HTML页面和/或不支持JavaScript,则确定不需要下发所述爬虫识别程序代码,直接响应所述页面请求;
如果是HTML页面且支持JavaScript,则确定需要下发所述爬虫识别程序代码。
6.如权利要求5所述的识别网络爬虫的方法,其特征在于,在确定需要下发所述爬虫识别程序代码之后,所述方法还包括:
根据客户端标识判断所述数据库中是否存储有所述客户端的爬虫判断记录;
如果否,则确定所述客户端未做过爬虫识别处理,在响应中添加所述爬虫识别程序代码,发给所述客户端,并在所述数据库中添加所述客户端的爬虫判断记录;
如果是,则确定所述客户端做过爬虫识别处理,根据所述客户端的爬虫判断记录中的下发状态判断是否需要再下发所述爬虫识别程序代码;
如果下发状态为2,则确定需要再下发所述爬虫识别程序代码,在响应中添加所述爬虫识别程序代码,发给所述客户端,并将所述客户端的爬虫判断记录中的缓冲时间修改为当前时间,下发状态修改为1;
如果下发状态不为2,则确定不需要再下发所述爬虫识别程序代码,直接响应所述页面请求。
7.如权利要求1所述的识别网络爬虫的方法,其特征在于,所述方法还包括:
判断所述客户端爬虫判断记录中的缓冲时间与当前时间的差值是否超出预设时间范围;
如果超出所述预设时间范围且未收到所述爬虫识别程序的请求,则确定所述客户端为爬虫可疑客户端,并将缓冲时间修改为0,更新时间修改为当前时间,下发状态修改为0,爬虫标识位修改为2;
如果未超出所述预设时间范围,则根据爬虫标识位与更新时间确定所述客户端的当前情况以及所要执行的操作。
8.如权利要求7所述的识别网络爬虫的方法,其特征在于,根据爬虫标识位与更新时间确定所述客户端的当前情况以及所要执行的操作,包括:
如果爬虫标识位为0,则确定处于判断过程,不做任何处理;
如果爬虫标识位为1,则说明之前已判断该客户端为正常客户端,此时需判断更新时间与当前时间的差值是否超出预设的识别间隔时间;如果是,则删除所述客户端的爬虫判断记录,等待下次接收页面请求进行重新识别;如果否,则不做任何处理;
如果爬虫标识位为2,则说明之前已判断该客户端为爬虫可疑客户端,此时需判断更新时间与当前时间的差值是否超出预设的爬虫处理时间;如果是,则确定需再下发所述爬虫识别程序代码,将下发状态修改为2,缓冲时间修改为当前时间,更新时间修改为空,爬虫标识位修改为0;如果否,则不做任何处理。
9.一种识别网络爬虫的系统,其特征在于,包括:
接收单元,用于接收客户端发起的页面请求;
第一判断单元,用于判断所述页面请求是否是爬虫识别程序的请求;
第一处理单元,用于在所述页面请求是爬虫识别程序的请求的情况下,根据所述爬虫识别程序的请求数据判断所述客户端是否为正常客户端,并修改数据库中的爬虫判断记录;
第二处理单元,用于在所述页面请求不是爬虫识别程序的请求的情况下,在响应内容类型为超文本标记语言HTML或JavaScript的页面添加爬虫识别程序代码,并发送给所述客户端。
10.如权利要求9所述的识别网络爬虫的系统,其特征在于,所述第一处理单元包括:
第一判断模块,用于判断所述页面请求是否是获取焦点请求;
第一处理模块,用于在所述页面请求是获取焦点请求的情况下,将所述客户端的爬虫判断记录中的缓冲时间修改为当前时间;
第二判断模块,用于在所述页面请求不是获取焦点请求的情况下,判断所述页面请求是否是失去焦点请求、关闭页面请求和用户行为请求中的任一个;
第二处理模块,用于在所述页面请求是失去焦点请求、关闭页面请求和用户行为请求中的任一个的情况下,确定所述客户端为正常客户端,并修改所述客户端的爬虫判断记录中的对应字段;
第三判断模块,用于在所述页面请求不是失去焦点请求、关闭页面请求和用户行为请求中的任一个的情况下,判断所述页面请求是否是需要再下发爬虫识别程序代码的请求;
第三处理模块,用于在所述页面请求是需要再下发爬虫识别程序代码的请求的情况下,修改所述客户端的爬虫判断记录中的对应字段;以及在所述页面请求不是需要再下发爬虫识别程序代码的请求的情况下,不做任何处理。
11.如权利要求9或10所述的识别网络爬虫的系统,其特征在于,所述客户端爬虫判断记录包括以下字段:客户端标识、缓冲时间、更新时间、下发状态和爬虫标识位;其中,所述缓冲时间表示所述爬虫识别程序的请求的接收时间范围的计算起点;所述更新时间表示修改所述爬虫标识位的时间;所述下发状态表示所述爬虫识别程序代码是否下发给客户端,0表示默认值,1表示已下发,2表示再下发;爬虫标识位包括:0表示默认值,1表示正常客户端,2表示爬虫可疑客户端。
12.如权利要求10所述的识别网络爬虫的系统,其特征在于,
所述第二处理模块具体用于将缓冲时间修改为0,更新时间修改为当前时间,下发状态修改为0,爬虫标识位修改为1;
所述第三处理模块具体用于将缓冲时间修改为0,更新时间修改为0,下发状态修改为2。
13.如权利要求9所述的识别网络爬虫的系统,其特征在于,所述第二处理单元包括:
第四判断模块,用于判断所述页面请求是否是HTML页面且支持JavaScript;
第四处理模块,用于在所述页面请求不是HTML页面和/或不支持JavaScript的情况下,确定不需要下发所述爬虫识别程序代码,直接响应所述页面请求;
确定模块,用于在所述页面请求是HTML页面且支持JavaScript的情况下,确定需要下发所述爬虫识别程序代码。
14.如权利要求13所述的识别网络爬虫的系统,其特征在于,所述第二处理单元还包括:
第五判断模块,用于在所述确定模块确定需要下发所述爬虫识别程序代码之后,根据客户端标识判断所述数据库中是否存储有所述客户端的爬虫判断记录;
第五处理模块,用于在判断结果为否的情况下,确定所述客户端未做过爬虫识别处理,在响应中添加所述爬虫识别程序代码,发给所述客户端,并在所述数据库中添加所述客户端的爬虫判断记录;
第六判断模块,用于在判断结果为是的情况下,确定所述客户端做过爬虫识别处理,根据所述客户端的爬虫判断记录中的下发状态判断是否需要再下发所述爬虫识别程序代码;
第六处理模块,用于在下发状态为2的情况下,确定需要再下发所述爬虫识别程序代码,在响应中添加所述爬虫识别程序代码,发给所述客户端,并将所述客户端的爬虫判断记录中的缓冲时间修改为当前时间,下发状态修改为1;
第七处理模块,用于在下发状态不为2的情况下,确定不需要再下发所述爬虫识别程序代码,直接响应所述页面请求。
15.如权利要求9所述的识别网络爬虫的系统,其特征在于,所述系统还包括:
第二判断单元,用于判断所述爬虫判断记录中的缓冲时间与当前时间的差值是否超出预设时间范围;
第三处理单元,用于在超出预设时间范围且未收到所述爬虫识别程序的请求的情况下,确定所述客户端为爬虫可疑客户端,并将缓冲时间修改为0,更新时间修改为当前时间,下发状态修改为0,爬虫标识位修改为2;
第四处理单元,用于在未超出所述预设时间范围的情况下,根据爬虫标识位与更新时间确定所述客户端的当前情况以及所要执行的操作。
16.如权利要求15所述的识别网络爬虫的系统,其特征在于,所述第四处理单元具体用于:
如果爬虫标识位为0,则确定处于判断过程,不做任何处理;
如果爬虫标识位为1,则说明之前已判断该客户端为正常客户端,此时需判断更新时间与当前时间的差值是否超出预设的识别间隔时间;如果是,则删除所述客户端的爬虫判断记录,等待下次接收页面请求进行重新识别;如果否,则不做任何处理;
如果爬虫标识位为2,则说明之前已判断该客户端为爬虫可疑客户端,此时需判断更新时间与当前时间的差值是否超出预设的爬虫处理时间;如果是,则确定需再下发所述爬虫识别程序代码,将下发状态修改为2,缓冲时间修改为当前时间,更新时间修改为空,爬虫标识位修改为0;如果否,则不做任何处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710321154.4A CN107147640B (zh) | 2017-05-09 | 2017-05-09 | 识别网络爬虫的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710321154.4A CN107147640B (zh) | 2017-05-09 | 2017-05-09 | 识别网络爬虫的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107147640A CN107147640A (zh) | 2017-09-08 |
CN107147640B true CN107147640B (zh) | 2019-12-31 |
Family
ID=59778014
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710321154.4A Active CN107147640B (zh) | 2017-05-09 | 2017-05-09 | 识别网络爬虫的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107147640B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111832024A (zh) * | 2020-07-27 | 2020-10-27 | 广州智云尚大数据科技有限公司 | 一种大数据安全防护方法及系统 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107800684B (zh) * | 2017-09-20 | 2018-09-18 | 贵州白山云科技有限公司 | 一种低频爬虫识别方法及装置 |
CN108777687B (zh) * | 2018-06-05 | 2020-04-14 | 掌阅科技股份有限公司 | 基于用户行为画像的爬虫拦截方法、电子设备、存储介质 |
CN109948025B (zh) * | 2019-03-20 | 2023-10-20 | 上海古鳌电子科技股份有限公司 | 一种数据引用记录方法 |
CN110399737B (zh) * | 2019-07-26 | 2023-05-02 | 博雅创智(天津)科技有限公司 | 一种非侵入式的网站内容保护方法 |
CN111368163B (zh) * | 2020-02-24 | 2024-03-26 | 网宿科技股份有限公司 | 一种爬虫数据的识别方法、系统及设备 |
CN113343232A (zh) * | 2021-07-13 | 2021-09-03 | 壹药网科技(上海)股份有限公司 | 一种反制爬虫系统 |
CN115037526B (zh) * | 2022-05-19 | 2024-04-19 | 咪咕文化科技有限公司 | 反爬虫方法、装置、设备以及计算机存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105871850A (zh) * | 2016-04-05 | 2016-08-17 | 携程计算机技术(上海)有限公司 | 爬虫检测方法和系统 |
CN106027564A (zh) * | 2016-07-08 | 2016-10-12 | 携程计算机技术(上海)有限公司 | 检测反爬虫策略安全性的方法及装置 |
CN106411868A (zh) * | 2016-09-19 | 2017-02-15 | 成都知道创宇信息技术有限公司 | 一种自动识别web爬虫的方法 |
CN106528779A (zh) * | 2016-11-03 | 2017-03-22 | 北京知道未来信息技术有限公司 | 一种基于可变url的爬虫识别方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120191693A1 (en) * | 2009-08-25 | 2012-07-26 | Vizibility Inc. | Systems and methods of identifying and handling abusive requesters |
CN102790700B (zh) * | 2011-05-19 | 2015-06-10 | 北京启明星辰信息技术股份有限公司 | 一种识别网页爬虫的方法和装置 |
CN102495861B (zh) * | 2011-11-24 | 2013-09-04 | 中国科学院计算技术研究所 | 一种网络爬虫识别系统及方法 |
CN103279516B (zh) * | 2013-05-27 | 2016-09-14 | 百度在线网络技术(北京)有限公司 | 网络爬虫识别方法 |
CN103678492B (zh) * | 2013-11-13 | 2018-01-19 | 复旦大学 | 基于网络爬虫行为识别与缓冲更新策略的Web点击计数方法 |
CN104834550A (zh) * | 2015-05-29 | 2015-08-12 | 北京京东尚科信息技术有限公司 | 对分布式网络爬虫进行更新的方法及装置 |
-
2017
- 2017-05-09 CN CN201710321154.4A patent/CN107147640B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105871850A (zh) * | 2016-04-05 | 2016-08-17 | 携程计算机技术(上海)有限公司 | 爬虫检测方法和系统 |
CN106027564A (zh) * | 2016-07-08 | 2016-10-12 | 携程计算机技术(上海)有限公司 | 检测反爬虫策略安全性的方法及装置 |
CN106411868A (zh) * | 2016-09-19 | 2017-02-15 | 成都知道创宇信息技术有限公司 | 一种自动识别web爬虫的方法 |
CN106528779A (zh) * | 2016-11-03 | 2017-03-22 | 北京知道未来信息技术有限公司 | 一种基于可变url的爬虫识别方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111832024A (zh) * | 2020-07-27 | 2020-10-27 | 广州智云尚大数据科技有限公司 | 一种大数据安全防护方法及系统 |
CN111832024B (zh) * | 2020-07-27 | 2021-09-24 | 东方财富信息股份有限公司 | 一种大数据安全防护方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107147640A (zh) | 2017-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107147640B (zh) | 识别网络爬虫的方法及系统 | |
US10567412B2 (en) | Security threat detection based o patterns in machine data events | |
CN107204960B (zh) | 网页识别方法及装置、服务器 | |
US7966395B1 (en) | System and method for indicating interest of online content | |
CN107241296B (zh) | 一种Webshell的检测方法及装置 | |
US20150026301A1 (en) | Systems, apparatus, and methods for mobile device detection | |
US8745151B2 (en) | Web page protection against phishing | |
CN101370008A (zh) | Sql注入web攻击的实时入侵检测系统 | |
WO2016188029A1 (zh) | 解析二维码的方法及装置、计算机可读存储介质、计算机程序产品与终端设备 | |
CN112491784A (zh) | Web网站的请求处理方法及装置、计算机可读存储介质 | |
US20140338000A1 (en) | Apparatus, Method And Computer-Readable Storage Medium For Securing Javascript | |
US7630987B1 (en) | System and method for detecting phishers by analyzing website referrals | |
CN112532624B (zh) | 一种黑链检测方法、装置、电子设备及可读存储介质 | |
US20130347067A1 (en) | Dynamic human interactive proof | |
CN112131507A (zh) | 网站内容处理方法、装置、服务器和计算机可读存储介质 | |
CN111586005A (zh) | 扫描器扫描行为识别方法及装置 | |
CN114244564A (zh) | 攻击防御方法、装置、设备及可读存储介质 | |
US20190138711A1 (en) | System and method for webpages scripts validation | |
CN108804501B (zh) | 一种检测有效信息的方法及装置 | |
US20140283028A1 (en) | Malicious request attribution | |
US10127319B2 (en) | Distributed failover for unavailable content | |
CN111314298B (zh) | 验证识别方法和装置、电子设备和存储介质 | |
CN111581637A (zh) | Sql注入检测方法、装置、设备及计算机存储介质 | |
US20160323399A1 (en) | Method of and a system for monitoring web site consistency | |
US20160299964A1 (en) | Method and apparatus for evaluating search prompting system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |