URL去重方法、装置、设备与计算机可读存储介质与流程

文档序号:19991524发布日期:2020-02-22 02:20阅读:216来源:国知局
URL去重方法、装置、设备与计算机可读存储介质与流程

本发明涉及金融科技(fintech)技术领域,尤其涉及url去重方法、装置、设备与计算机可读存储介质。



背景技术:

近年来,随着金融科技(fintech),尤其是互联网金融的不断发展,去重技术被引入银行等金融机构日常服务中,在银行等金融机构日常服务过程中,不可避免的会出现漏洞问题,针对漏洞问题,银行等金融机构一般是通过网站爬虫爬取相关网站的url(uniformresourcelocator,统一资源定位符),并通过存储有相关特征的漏洞仓库进行漏洞扫描,当扫描到有对应的特征时,即认为当前网站有漏洞存在。而url去重则是指将重复爬取的url去除,避免多次抓取同一页面,增加扫描工作量。

现有的url去重通常采用hash表、bloomfilter(布隆过滤器)等工具对url进行去重,其基本原理都是将待去重url与其他url进行比较,剔除重复的url,然而现有的url去重工具,都不太友好,要么去重标准过于严苛,导致扫描任务加重,扫描效率偏低;要么去重标准过于宽松,导致未能发现潜藏的漏洞,使得漏洞发现覆盖率偏低,影响扫描结果等,因此,如何平衡扫描效率以及扫描结果,从而提高url的去重精度,是亟待解决的技术问题。



技术实现要素:

本发明的主要目的在于提出一种url去重方法、装置、设备与计算机可读存储介质,旨在提高url的去重精度。

为实现上述目的,本发明提供一种url去重方法,所述url去重方法包括如下步骤:

获取预设的原始url集合,并对所述原始url集合进行过滤处理,以得到待去重url集合;

构建所述待去重url集合中各待去重url之间的差异特征集合,所述差异特征集合中包含同类相似值,所述同类相似值用于表征与该所述差异特征集合满足预设同类条件的差异特征集合的数量;

确定包含的所述同类相似值超过预设阈值的目标差异特征集合,并对所述目标差异特征集合对应的待泛化url进行泛化处理;

根据泛化结果,确定并剔除重复url。

优选地,所述构建所述待去重url集合中各待去重url之间的差异特征集合的步骤包括:

依次从所述待去重url集合中选择当前待去重url,并从其他的待去重url中确定所述当前待去重url对应的一个以上的比较url,确定当前待去重url与各个所述比较url之间的相同特征的位置和差异特征的位置;

基于所述相同特征的位置和所述差异特征的位置,构建当前待去重url与所述比较url的差异特征集合。

优选地,所述基于所述相同特征的位置和所述差异特征的位置,构建当前待去重url与所述比较url的差异特征集合的步骤包括:

从所述当前待去重url对应的一个以上的所述比较url中依次选取出当前比较url,将所述当前待去重url与所述当前比较url的相同特征的位置和差异特征的位置分别作为目标相同位置和目标差异位置;

判断在已构建的差异特征集合中,是否存在同时包含全部所述目标相同位置和所述目标差异位置的差异特征集合;

若未存在,则基于所述目标相同位置、所述目标差异位置和预设的初始同类相似值,构建所述差异特征集合;

若存在,则将所述差异特征集合中的同类相似值进行更新。

优选地,所述构建所述待去重url集合中各待去重url之间的差异特征集合的步骤包括:

依次从所述待去重url集合中选择当前待去重url,并从其他的待去重url中确定所述当前待去重url对应的一个以上的比较url是否具备泛化属性;

若当前比较url不具备泛化属性,则构建当前待去重url与所述当前比较url的差异特征集合。

优选地,所述依次从所述待去重url集合中选择当前待去重url,并从其他的待去重url中确定所述当前待去重url对应的一个以上的比较url是否具备泛化属性的步骤之后,所述url去重方法还包括:

若所述当前比较url具备泛化属性,则获取所述当前比较url的泛化结果,以及所述当前比较url对应的差异特征集合;

基于所述泛化结果,检测当前待去重url与所述当前比较url是否属于同一类url类型;

若是,则更新所述当前比较url对应的差异特征集合中同类相似值。

优选地,所述确定包含的所述同类相似值超过预设阈值的目标差异特征集合,并对所述目标差异特征集合对应的待泛化url进行泛化处理的步骤包括:

确定包含的所述同类相似值超过预设阈值的目标差异特征集合,并确定所述目标差异特征集合对应的差异url的泛化内容;

基于所述预设算法,对所述泛化内容进行泛化处理,以得到对应的泛化结果。

优选地,所述获取预设的原始url集合,并对所述原始url集合进行过滤处理,以得到待去重url集合的步骤包括:

获取预设的原始url集合,并对所述原始url集合中的url进行预处理,以得到所述原始url集合中各url对应的关键特征;

基于所述关键特征,将所述原始url集合中的url进行两两比较,并过滤重复的url,以得到待去重url集合。

此外,为实现上述目的,本发明还提供一种url去重装置,所述url去重装置包括:

基础去重模块,用于获取预设的原始url集合,并对所述原始url集合进行过滤处理,以得到待去重url集合;

差异构建模块,用于构建所述待去重url集合中各待去重url之间的差异特征集合,所述差异特征集合中包含同类相似值,所述同类相似值用于表征与该所述差异特征集合满足预设同类条件的差异特征集合的数量;

泛化处理模块,用于确定包含的所述同类相似值超过预设阈值的目标差异特征集合,并对所述目标差异特征集合对应的待泛化url进行泛化处理;

泛化去重模块,用于根据泛化结果,确定并剔除重复urll。

优选地,所述差异构建模块还用于:

依次从所述待去重url集合中选择当前待去重url,并从其他的待去重url中确定所述当前待去重url对应的一个以上的比较url,确定当前待去重url与各个所述比较url之间的相同特征的位置和差异特征的位置;

基于所述相同特征的位置和所述差异特征的位置,构建当前待去重url与所述比较url的差异特征集合。

优选地,所述差异构建模块还用于:

从所述当前待去重url对应的一个以上的所述比较url中依次选取出当前比较url,将所述当前待去重url与所述当前比较url的相同特征的位置和差异特征的位置分别作为目标相同位置和目标差异位置;

判断在已构建的差异特征集合中,是否存在同时包含全部所述目标相同位置和所述目标差异位置的差异特征集合;

若未存在,则基于所述目标相同位置、所述目标差异位置和预设的初始同类相似值,构建所述差异特征集合;

若存在,则将所述差异特征集合中的同类相似值进行更新。

优选地,所述差异构建模块还用于:

依次从所述待去重url集合中选择当前待去重url,并从其他的待去重url中确定所述当前待去重url对应的一个以上的比较url是否具备泛化属性;

若当前比较url不具备泛化属性,则构建当前待去重url与所述当前比较url的差异特征集合。

优选地,所述差异构建模块还用于:

若所述当前比较url具备泛化属性,则获取所述当前比较url的泛化结果,以及所述当前比较url对应的差异特征集合;

基于所述泛化结果,检测当前待去重url与所述当前比较url是否属于同一类url类型;

若是,则更新所述当前比较url对应的差异特征集合中同类相似值。

优选地,所述泛化处理模块还用于:

确定包含的所述同类相似值超过预设阈值的目标差异特征集合,并确定所述目标差异特征集合对应的差异url的泛化内容;

基于所述预设算法,对所述泛化内容进行泛化处理,以得到对应的泛化结果。

优选地,所述基础去重模块还用于:

获取预设的原始url集合,并对所述原始url集合中的url进行预处理,以得到所述原始url集合中各url对应的关键特征;

基于所述关键特征,将所述原始url集合中的url进行两两比较,并过滤重复的url,以得到待去重url集合。

此外,为实现上述目的,本发明还提供一种url去重设备,所述url去重设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的url去重程序,所述url去重程序被所述处理器执行时实现如上所述的url去重方法的步骤。

此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有url去重程序,所述url去重程序被处理器执行时实现如上所述的url去重方法的步骤。

本发明提出的url去重方法,获取预设的原始url集合,并对所述原始url集合进行过滤处理,以得到待去重url集合;构建所述待去重url集合中各待去重url之间的差异特征集合,所述差异特征集合中包含同类相似值,所述同类相似值用于表征与该所述差异特征集合满足预设同类条件的差异特征集合的数量;确定包含的所述同类相似值超过预设阈值的目标差异特征集合,并对所述目标差异特征集合对应的待泛化url进行泛化处理;根据泛化结果,确定并剔除重复url。本发明采用双重去重,在一开始过滤明显重复的url,再通过泛化处理,将存在差异的但实际所属同一类的url进行剔除,进而提高url的去重精度。

附图说明

图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图;

图2为本发明url去重方法第一实施例的流程示意图;

图3为本发明url去重方法第二实施例的流程示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。

本发明实施例设备可以是pc机或服务器设备。

如图1所示,该设备可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及url去重程序。

其中,操作系统是管理和控制url去重设备与软件资源的程序,支持网络通信模块、用户接口模块、url去重程序以及其他程序或软件的运行;网络通信模块用于管理和控制网络接口1002;用户接口模块用于管理和控制用户接口1003。

在图1所示的url去重设备中,所述url去重设备通过处理器1001调用存储器1005中存储的url去重程序,并执行下述url去重方法各个实施例中的操作。

基于上述硬件结构,提出本发明url去重方法实施例。

参照图2,图2为本发明url去重方法第一实施例的流程示意图,所述方法包括:

步骤s10,获取预设的原始url集合,并对所述原始url集合进行过滤处理,以得到待去重url集合;

步骤s20,构建所述待去重url集合中各待去重url之间的差异特征集合,所述差异特征集合中包含同类相似值,所述同类相似值用于表征与该所述差异特征集合满足预设同类条件的差异特征集合的数量;

步骤s30,确定包含的所述同类相似值超过预设阈值的目标差异特征集合,并对所述目标差异特征集合对应的待泛化url进行泛化处理;

步骤s40,根据泛化结果,确定并剔除重复url。

本实施例url去重方法运用于理财机构或者银行等金融机构的url去重设备中,url去重设备可以是终端、机器人或者pc设备,为描述方便,url去重设备以去重设备进行描述。去重设备通过url去重队列与url爬取设备连接,url爬取设备通过爬虫程序爬取目标网站的url,并将爬取的url插入url去重队列中,去重设备即可获取url去重队列中的url进行去重处理,在本实施例中,具体包括两重去重,第一重为基础去重,第二重为泛化去重,其中基础去重主要针对相同的url,具体将相同的url进行过滤,仅保留其中一个url;泛化去重则是针对伪静态url结构参数类似,但值不一致,相似度较高的url,如http://test.com/ext/sact/xdeda/1231,与http://test.com/ext/sact/spolma/271341,虽然从结构上看,两者属于不同的url,但是对于漏洞扫描工具来说,其实质是属于同类功能型参数,即两者为同一类url类型,属于同一类接口,因此,需要去重,具体通过泛化处理,从两者不同的泛化内容提炼出共性特征,以确定是否属于同一类url类型,进而对同一类url类型的url进行去重。

以下将对各个步骤进行详细说明:

步骤s10,获取预设的原始url集合,并对所述原始url集合进行过滤处理,以得到待去重url集合。

在本实施例中,去重设备可获取预设的原始url集合,其中,原始url集合即为爬取设备爬取的目标网站的一手url的集合,并将其插入到url去重队列中,以便去重设备从url去重队列中获取,原始url集合在具体实施时,至少包括两个url。去重设备在获取到原始url集合后,对原始url集合进行第一重去重,也即基础去重,具体将重复的url去重,从而过滤掉相同的url,得到待去重url集合,也即待去重url集合中的url不完全相同,各待去重url之间存在差异。

具体的,去重设备将原始url集合中的各个url进行两两比较,判断是否存在相同的url,若是存在,则将重复的url去除,以得到待去重url集合。

进一步地,步骤s10包括:

步骤a,获取预设的原始url集合,并对所述原始url集合中的url进行预处理,以得到所述原始url集合中各url对应的关键特征;

在该步骤中,为加快第一重去重,去重设备先对原始url集合中的url进行预处理,从而得到各url的关键特征,接着,判断原始url集合中,各url之间的关键特征是否相同。

具体的,确定原始url集合中各url的关键特征,并以所述关键特征作为分割点,对各url进行拆分标识,其中,关键特征包括url主机host头、请求方法get\post、path路径、请求参数等。如当前url为http://test.com/?in_track=home_tuan_content&tag=leixing_shushixing,通过预处理后,得到的关键特征为:请求host头:test.com,请求方法:get,path路径:/,请求参数名:in_track、tag等。

步骤b,基于所述关键特征,将所述原始url集合中的url进行两两比较,并过滤重复的url,以得到待去重url集合。

在该步骤中,去重设备根据预处理得到的关键特征,将原始url集合中的url进行两两比较,也即,将两两之间的关键特征进行比较,若是关键特征相同,则确定当前进行比较的两个url为相同url,此时,过滤掉重复的url,从而得到待去重url集合。

需要说明的是在过滤重复的url时,可保留相同url中的任意一个,其他url则去除,也可以将当前url作为保留对象。

步骤s20,构建所述待去重url集合中各待去重url之间的差异特征集合,所述差异特征集合中包含同类相似值,所述同类相似值用于表征与该所述差异特征集合满足预设同类条件的差异特征集合的数量。

在本实施例中,去重设备通过第一重基础去重后,得到待去重url集合,此时待去重url集合中的待去重url属于结构不同,但还不能排除存在重复嫌疑的url,因此,需要搜集差异特征,以便确定是否属于同一类url类型,为后续的第二重去重,也即泛化去重做准备。因此,去重设备构建待去重url集合中各待去重url之间的差异特征集合,其中,需要说明的是,差异特征集合中包含同类相似值,同类相似值用于表征与当前差异特征集合满足预设同类条件的差异特征集合的数量,在具体实施时,判断两两差异特征集合是否满足预设同类条件,若是,则更新上述两差异特征集合中的同类相似值,如与当前差异特征集合满足预设同类条件的差异特征集合有1个,则差异特征集合中的同类相似值为2,与当前差异特征集合满足预设同类条件的差异特征集合有2个,则差异特征集合中的同类相似值为3,以此类推,其中,预设同类条件为两差异特征集合包含有同样的相同特征的位置和差异特征的位置,如差异特征集合m与差异特征集合n同时包含有同样的相同特征的位置和差异特征的位置,则认为差异特征集合m与差异特征集合n满足预设同类条件;或者,两差异特征集合对应的待去重url的泛化结果相同,如差异特征集合m对应的待去重urlm和o的泛化结果,与差异特征集合n对应的待去重urlm和o的泛化结果相同,则认为差异特征集合m与差异特征集合n满足预设同类条件等。

在另一实施例中,同类相似值还可用于表征与当前待去重url满足预设同类条件的待去重url的数量,在具体实施时,若当前待去重url已构建的差异特征集合中同时包含的相同特征的位置和差异特征的位置,与当前待去重url与其他待去重url的相同特征的位置和差异特征的位置一致,则认为该其他待去重url与当前待去重url满足预设同类条件,该其他待去重url的数量即为同类相似值,如待去重urlm与待去重urln满足预设同类条件,则m与n构建的差异特征集合中同类相似值为1,若此时待去重urlo与m也满足预设同类条件,则m对应的差异特征集合中同类相似值则为2,以此类推;在另一实施例中,若存在与当前待去重url的泛化结果相同的待去重url,则认为该待去重url与当前待去重url满足预设同类条件,该待去重url的数量即为同类相似值等。如该待去重url的数量为1,那么该待去重url与当前待去重url构建的差异特征集合中包含的同类相似值则为1,若该待去重url为n个,则同类相似值为n等。

具体的,步骤s20包括:

步骤c,依次从所述待去重url集合中选择当前待去重url,并从其他的待去重url中确定所述当前待去重url对应的一个以上的比较url,确定当前待去重url与各个所述比较url之间的相同特征的位置和差异特征的位置;

在该步骤中,去重设备依次从待去重url集合中选择当前待去重url,并确定当前待去重url对应的一个以上的比较url,其中,比较url为待去重url集合中,除当前待去重url以外的其他待去重url,如当前有a,b,c,d四个url,那么a的比较url为b,c,d,而b的比较url为a,c,d;在另一实施例中,为减少比较量,避免重复比较,若是当前待去重url曾作为比较url,则当前待去重url作为比较url时,对应的待去重url无需再作为当前待去重url的比较url,如当前有a,b,c,d四个url,那么a的比较url为b,c,d,当当前待去重url为b时,由于b曾作为a的比较url,因此,b的比较url为c,d,而没有a,同理,c的比较url为d等。

接着,将各待去重url与对应的比较url进行两两比较,依次确定当前待去重url与对应的比较url的相同特征和差异特征,并确定相同特征的相同位置和差异特征的差异位置。

具体的,将当前待去重url的关键特征与比较url的关键特征进行比较,确定哪些特征是相同,哪些特征是不同的,然后,以相同特征的相同位置以及差异特征的差异位置作为参数,构建差异特征集合,在具体实施时,定义similar_location_index表示相似的位置索引集合,unsimlar_location_index表示不相似位置索引集合,similar_location_index和unsimlar_location_index构成的整体即为一对一差异特征集合。

步骤d,基于所述相同特征的位置和所述差异特征的位置,构建当前待去重url与所述比较url的差异特征集合。

在该步骤中,去重设备根据相同位置和差异位置,构建当前待去重url与比较url的差异特征集合。

如有a,b,c三个url,其中,a为:http://test.com/ext/sact/xdeda/1231;

b为:http://test.com/ext/sact/spolma/271341;

c为:http://test.com/ext/sact/jkbma/1412313

对上述三个url进行预处理,得到a的关键特征为[“test.com”,“ext”,“sact”,“xdeda”,“1231”],b的关键特征为[“test.com”,“ext”,“sact”,“spolma”,“271341”],c的关键特征为[“test.com”,“ext”,“sact”,“jkbma”,“1412313”]通过两两进行比较,确定a与b的相同特征为“test.com”,“ext”,“sact”,差异特征为“xdeda”,“1231”与“spolma”,“271341”,并进一步确定相同特征的相同位置为1,2,3,差异特征的差异位置为4,5,因此,a与b的差异特征集合为{“similar_location_index”:[1,2,3],“unsimlar_location_index”:[4,5]},同理,a与c的差异特征集合为{“similar_location_index”:[1,2,3],“unsimlar_location_index”:[4,5]},也即a所对应的差异特征集合为两个{“similar_location_index”:[1,2,3],“unsimlar_location_index”:[4,5]},在本实施例中,同类相似值也可设为固定值,如1等,并且可省略表示。在另一实施例中,在后续进行泛化处理,确定同类相似值时,即计算差异特征集合相同的数量,如上所示例子,由于a与b,a与c的差异特征集合相同,则同类相似值为2,如上所述例子最终a对应的差异特征集合为{“similar_location_index”:[1,2,3],“unsimlar_location_index”:[4,5],“count”:2}。

进一步地,为方便后续确定同类相似值,步骤d包括:

从所述当前待去重url对应的一个以上的所述比较url中依次选取出当前比较url,将所述当前待去重url与所述当前比较url的相同特征的位置和差异特征的位置分别作为目标相同位置和目标差异位置;

在该步骤中,在确定了当前待去重url与比较url的相同位置和差异位置后,进一步确定是否存在对应的差异特征集合,也即确定在此之前是否已构建过相同的差异特征集合,若是,则无需再重复构建。

具体的,从当前待去重url对应的一个以上的比较url中依次选取出当前比较url,将当前待去重url与当前比较url进行比较,确定两者的相同特征的位置和差异特征的位置,并将相同特征的位置和差异特征的位置分别作为目标相同位置和目标差异位置。

判断在已构建的差异特征集合中,是否存在同时包含全部所述目标相同位置和所述目标差异位置的差异特征集合;

在该步骤中,去重设备为避免重复构建差异特征集合,会先判断已构建的差异特征集合中,是否存在同时包含全部目标相同位置和目标差异位置的差异特征集合,也即确定是否存在一个差异差异特征集合,与即将要构建的差异特征集合满足预设同类条件,若是存在,则说明已构建过相同的差异特征集合;若是未存在,则说明未构建过相同的差异特征集合。

若未存在,则基于所述目标相同位置、所述目标差异位置和预设的初始同类相似值,构建对应的差异特征集合;

若是未存在,则说明需要进行构建,因此,基于确定的目标相同位置、目标差异位置和预设的初始同类相似值,构建对应的差异特征集合,构建方式与上述类似,在具体实施时,由于是第一次构建差异特征集合,因此,初始同类相似值赋值为1,在本实例中,定义“count”:1,然后,根据确定的相同位置、差异位置,以及初始同类相似值,构建差异特征集合,如上述所示例子的情况,则最终a与b的差异特征集合为{“similar_location_index”:[1,2,3],“unsimlar_location_index”:[4,5],“count”:1}。

若存在,则将同时包含全部所述目标相同位置和所述目标差异位置的差异特征集合中的同类相似值进行更新。

若是存在,则无需再重复构建,因此,只需在已构建的同时包含全部目标相同位置和目标差异位置的差异特征集合中更新同类相似值的值即可,如上所示例子,由于a与c的差异特征集合与a与b的差异特征集合一样,因此,a最终的差异特征集合为{“similar_location_index”:[1,2,3],“unsimlar_location_index”:[4,5],“count”:2},即将原先差异特征集合中的“count”:1,更新为“count”:2。

步骤s30,确定包含的所述同类相似值超过预设阈值的目标差异特征集合,并对所述目标差异特征集合对应的待泛化url进行泛化处理。

在本实施例中,在依次构建好当前待去重url的差异特征集合,直至遍历所有的待去重url后,去重设备确定差异特征集合中,同类相似值超过预设阈值的目标差异特征,如预设阈值为4,那么只需锁定差异特征集合中,count值大于4的差异特征集合即为目标差异特征集合,或者,统计相同差异特征集合个数超过的4的那一类差异特征集合即为目标差异特征集合。

也即同类相似值超过预设阈值的即符合泛化条件,此时,对目标差异特征集合对应的待泛化url进行泛化处理,其中,预设阈值为一个经验值,根据爬取的目标网站的url的不同而设置不同的预设阈值。

具体的,步骤s30包括:

步骤e,确定包含的所述同类相似值超过预设阈值的目标差异特征集合,并确定所述目标差异特征集合对应的差异url的泛化内容;

在该步骤中,先确定包含的同类相似值超过预设阈值的目标差异特征集合,然后,确定目标差异特征集合对应的差异url的泛化位置,再确定泛化位置上的泛化内容,其中,差异url为目标差异特征集合对应的待去重url,如目标差异特征集合是通过待去重urla、b、c构建的,那么,目标差异特征集合对应的差异url即为待去重urla、b和c。

可以理解的,由于伪静态url的结构与静态url和动态url都不尽相同,因此,在确定泛化内容时,先读取当前差异url的功能参数以及功能参数值,根据功能参数和功能参数值,确定当前差异url的泛化位置,再确定泛化内容,其中,在具体实施时,功能参数包括url参数和url路径参数,如当前差异url的功能参数和功能参数值为in_track=home_tuan_content&tag=12345,即确定泛化位置为url参数,泛化内容即为home_tuan_content,12345;若当前待去重url的功能参数和功能参数值为ext/sact/xdeda/1231,即确定泛化位置为url路径参数(假设为“/”分隔符后两位)泛化内容即为xdeda,1231。

步骤f,基于所述预设算法,对所述泛化内容进行泛化处理,以得到对应的泛化结果。

在该步骤中,根据预设算法,对泛化内容进行泛化处理,从而得到对应的泛化结果。

具体的,根据泛化内容,选择对应的预设算法对泛化内容进行泛化处理,其中,预设算法在具体实施时,定义为当泛化内容包括字符串时,用{hash}特征符标识,当泛化内容包括数字时,用{number}特征符标识,也即,字符串用hash算法进行转换,数字则以数字显示,如上述所示例子,泛化内容为home_tuan_content,12345的泛化结果为in_track={hash}&tag={number};泛化内容为xdeda,1231的泛化结果为ext/sact/{hash}/{number}。

步骤s40,根据泛化结果,确定并剔除重复url。

在本实施例中,在得到泛化结果后,即可根据泛化结果确定重复url,并剔除重复url,具体的,将泛化结果进行两两比较,确定当前待去重url与比较url的泛化结果是否相同,若是相同,则确定两者为同类url,因此,需要剔除重复url。

需要注意的是,在将当前待去重url的泛化结果与比较url的泛化结果进行比较时,是将当前待去重url的{hash}与比较url的{hash}进行比较,将当前待去重url的{number}与比较url的{number}进行比较,两者相同即确定当前待去重url与比较url互为重复url,此时,保留其中任意一个,其他重复url剔除。

本实施例获取预设的原始url集合,并对所述原始url集合进行过滤处理,以得到待去重url集合;构建所述待去重url集合中各待去重url之间的差异特征集合,所述差异特征集合中包含同类相似值,所述同类相似值用于表征与该所述差异特征集合满足预设同类条件的差异特征集合的数量;确定包含的所述同类相似值超过预设阈值的目标差异特征集合,并对所述目标差异特征集合对应的待泛化url进行泛化处理;根据泛化结果,确定并剔除重复url。本发明采用双重去重,在一开始过滤明显重复的url,再通过泛化处理,将存在差异的但实际所属同一类的url进行剔除,进而提高url的去重精度。

进一步地,基于本发明url去重方法第一实施例,提出本发明url去重方法第二实施例。

url去重方法的第二实施例与url去重方法的第一实施例的区别在于,参照图3,步骤s20包括:

步骤s21,依次从所述待去重url集合中选择当前待去重url,并从其他的待去重url中确定所述当前待去重url对应的一个以上的比较url是否具备泛化属性;

步骤s22,若当前所述比较url不具备泛化属性,则构建当前待去重url与所述当前比较url的差异特征集合。

本实施例是一个循环遍历结构,上一个待去重url集合在进行第二重去重后,会保留泛化结果以及对应的差异特征集合,因此,在进行当前待去重url的差异特征集合的构建时,先确定当前待去重url对应的比较url是否具备泛化属性,若不具备,则正常构建差异特征集合;若是具备,则应当先确定当前待去重url与比较url是否为同一类url类型,若是的话,则不需要再构建差异特征集合,而是对比较url对应的差异特征集合中的同类相似值进行更新。

以下将对各个步骤进行详细说明:

步骤s21,依次从所述待去重url集合中选择当前待去重url,并从其他的待去重url中确定所述当前待去重url对应的一个以上的比较url是否具备泛化属性。

在本实施例中,去重设备在进行待去重url两两比较时,依次从待去重url集合中选择当前待去重url,并从其他的待去重url中确定当前待去重url对应的一个以上的比较url是否具备泛化属性,也即依次确定当前待去重url对应的各个比较url是否已构建过相应的差异特征集合,并且已被泛化处理,在上一实施例中可知,泛化处理后,对应的url为泛化结果值,若是未被泛化处理,对应的url还是url数据。因此,只需判断当前比较url为泛化结果值还是url数据即可确定当前比较url是否具备泛化属性,其中,若为泛化结果值,则确定比较url具备泛化属性,反之,则不具备。

步骤s22,若当前比较url不具备泛化属性,则构建当前待去重url与所述当前比较url的差异特征集合。

在本实施例中,若是确定当前待去重url对应的当前比较url不具备泛化属性,则说明当前比较url还是url数据,并且还是经过了第一重去重之后的url数据,因此,应当正常构建当前待去重url与当前比较url的差异特征集合。

进一步地,步骤s22包括:

若当前比较url不具备泛化属性,则确定当前待去重url与所述当前比较url的相同特征的数量是否大于差异特征的数量;

若是,则构建当前待去重url与所述当前比较url的差异特征集合。

在该步骤中,在确定当前比较url不具备泛化属性后,将当前待去重url与当前比较url进行一对一差异比较,从而得到当前待去重url与当前比较url的相同特征和差异特征,此时,分别统计相同特征的数量以及差异特征的数量,确定相同特征的数量是否大于差异特征的数量,若是大于,在构建差异特征集合,若是不大于,则说明两者的差异较大,可直接保留,减少构建差异特征集合的次数,以提高url的去重效率。

需要说明的是,在确定当前比较url不具备泛化属性后,在将当前待去重url与当前比较url进行比较时,也可以两者path路径最后一位的泛化结果来判断,若两者path路径最后一位的泛化结果相同,则构建差异特征集合;若不相同,则无需构建,保留当前待去重url,以达到减少构建差异特征集合的次数的目的。

进一步地,步骤s21之后,所述url去重方法还包括:

步骤g,若所述当前比较url具备泛化属性,则获取所述当前比较url的泛化结果,以及所述当前比较url对应的差异特征集合;

在该步骤中,由于经过第一重去重后,得到的各待去重url已明显不完全相同,但是是否真的是不同的url还不能确定,有可能存在结构上不同,但属于同一类url类型的重复url,因此,需要依次判断当前待去重url与各个比较url是否属于同一类url类型,因此,若是确定当前待去重url对应的当前比较url具备泛化属性,则获取当前比较url的泛化结果,以及对应的差异特征集合,作为后续判断的标准。

步骤h,基于所述泛化结果,检测当前待去重url与所述当前比较url是否属于同一类url类型;

在该步骤中,根据当前比较url的泛化结果,检测当前待去重url与当前比较url是否属于同一类url类型,具体将当前待去重url进行泛化处理,得到当前待去重url的泛化结果,并将当前待去重url的泛化结果与已经得到的当前比较url的泛化结果进行比较,判断是否相同,从而确定当前待去重url与当前比较url是否属于同一类url类型。

步骤i,若是,则更新所述当前比较url对应的差异特征集合中同类相似值。

若确定当前待去重url与当前比较url属于同一类url类型,则无需再另外构建当前待去重url与当前比较url的差异特征集合,而是在当前比较url对应的差异特征集合中更新同类相似值,在具体实施时,将同类相似值加1。

进一步地,若否,即确定当前待去重url与当前比较url不属于同一类url类型,说明当前待去重url在结构上与其他待去重url不同,在功能上,也与其他待去重url不同,不属于同一类url类型,则保留当前待去重url。

本实施例若是确定当前待去重url对应的比较url具备泛化属性,则确定比较url已被泛化处理过,那么其应当也有相应的差异特征集合,那么只需确定当前待去重url是否与比较url属于同一类url类型,若是,则无需再构建差异特征集合,只需更新比较url对应的差异特征集合中同类相似值即可,若不是,则直接保留当前待去重url;若是不具备泛化属性,则应当正常构建差异特征集合,以便对当前待去重url进行进一步确认,可有效减少比较次数以及差异特征集合的构建次数,从而提高url去重的效率。

本发明还提供一种url去重装置。本发明url去重装置包括:

基础去重模块,用于获取url去重队列中的原始url集合,并对所述原始url集合进行过滤处理,以得到待去重url集合;

基础去重模块,用于获取预设的原始url集合,并对所述原始url集合进行过滤处理,以得到待去重url集合;

差异构建模块,用于构建所述待去重url集合中各待去重url之间的差异特征集合,所述差异特征集合中包含同类相似值,所述同类相似值用于表征与该所述差异特征集合满足预设同类条件的差异特征集合的数量;

泛化处理模块,用于确定包含的所述同类相似值超过预设阈值的目标差异特征集合,并对所述目标差异特征集合对应的待泛化url进行泛化处理;

泛化去重模块,用于根据泛化结果,确定并剔除重复url。

进一步地,所述差异构建模块还用于:

依次从所述待去重url集合中选择当前待去重url,并从其他的待去重url中确定所述当前待去重url对应的一个以上的比较url,确定当前待去重url与各个所述比较url之间的相同特征的位置和差异特征的位置;

基于所述相同特征的位置和所述差异特征的位置,构建当前待去重url与所述比较url的差异特征集合。

进一步地,所述差异构建模块还用于:

从所述当前待去重url对应的一个以上的所述比较url中依次选取出当前比较url,将所述当前待去重url与所述当前比较url的相同特征的位置和差异特征的位置分别作为目标相同位置和目标差异位置;

判断在已构建的差异特征集合中,是否存在同时包含全部所述目标相同位置和所述目标差异位置的差异特征集合;

若未存在,则基于所述目标相同位置、所述目标差异位置和预设的初始同类相似值,构建对应的差异特征集合;

若存在,则将同时包含全部所述目标相同位置和所述目标差异位置的差异特征集合中的同类相似值进行更新。

进一步地,所述差异构建模块还用于:

依次从所述待去重url集合中选择当前待去重url,并从其他的待去重url中确定所述当前待去重url对应的一个以上的比较url是否具备泛化属性;

若当前比较url不具备泛化属性,则构建当前待去重url与所述当前比较url的差异特征集合。

进一步地,所述差异构建模块还用于:

若所述当前比较url具备泛化属性,则获取所述当前比较url的泛化结果,以及所述当前比较url对应的差异特征集合;

基于所述泛化结果,检测当前待去重url与所述当前比较url是否属于同一类url类型;

若是,则更新所述当前比较url对应的差异特征集合中同类相似值。

进一步地,所述泛化处理模块还用于:

确定包含的所述同类相似值超过预设阈值的目标差异特征集合,并确定所述目标差异特征集合对应的差异url的泛化内容;

基于所述预设算法,对所述泛化内容进行泛化处理,以得到对应的泛化结果。

进一步地,所述基础去重模块还用于:

获取预设的原始url集合,并对所述原始url集合中的url进行预处理,以得到所述原始url集合中各url对应的关键特征;

基于所述关键特征,将所述原始url集合中的url进行两两比较,并过滤重复的url,以得到待去重url集合。

本发明还提供一种计算机可读存储介质。

本发明计算机可读存储介质上存储有url去重程序,所述url去重程序被处理器执行时实现如上所述的url去重方法的步骤。

其中,在所述处理器上运行的url去重程序被执行时所实现的方法可参照本发明url去重方法各个实施例,此处不再赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书与附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1