本发明涉及信息处理
技术领域:
,具体而言,涉及一种url模式获取方法、装置、电子设备及可读存储介质。
背景技术:
:随着互联网技术的不断发展,网络的数据正呈现爆炸式的增长,其中表现最突出之一就是url(uniformresourcelocator,统一资源定位符)数量的大量增长。而在互联网数据搜索、数据采集、数据清洗、网站构建等领域均需要对相似的url进行处理,处理的质量和效率将直接影响服务器、存储资源的使用,以及网站用户的体验。url一般由五部分组成:<scheme>://<netloc>/<path>?<query>#<fragement>;其中,scheme:协议;netloc:域名;path:路径;query:参数;fragment:锚。目前,一般采用的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中的参数部分中key字段相同的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中的参数部分中key字段相同的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为本发明第一实施例提供的一种url模式获取方法的方法流程图。图2为图1中步骤s30的子步骤方法流程图。图3为本发明第二实施例提供的一种url模式获取方法的方法流程图。图4为本发明第三实施例提供的一种url模式获取方法的方法流程图。图5为本发明第四实施例提供的一种url模式获取装置的功能模块图。图6为本发明一具体示例提供的一种url模式获取装置的结构框图。图7为本发明另一具体示例提供的服务器的结构示意图。具体实施方式下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明提供一种url模式获取方法,用于处理url数据,并得到具有高精确度的url模式。第一实施例请参阅图1,在本实施例中提供一种url模式获取方法,图1示出了该方法的方法流程图,该方法包括以下步骤:步骤s10:对url集合中的每个url分别进行分段,并对每个url分段后生成的字段根据字符类型进行基础模式标记,所述基础模式由与被标记的字段的字符类型相同的任意字符形成。步骤s20:根据所述进行基础模式标记后的字段,获取url集合中具有相同分段数且在相同分段位置具有相同基础模式的url,形成url组。步骤s30:将所述url组中相同分段位置的字段根据所标记的基础模式进行合并,得到所述url组的url模式。在步骤s10中,将url集合中的每个url分别进行分段,即根据url的特征将url分割为多个不同的部分。url的特征可为:url的组成规则,url的字符类型,url中的特殊字符位置等。比如,根据url的组成规则来分段,具体的:根据url的组成规则,可将url分为5个部分:<scheme>://<netloc>/<path>?<query>#<fragement>。其中:scheme:协议,如:http,https,ftp等。netloc:域名,不同站点独立的标识,如www.sohu.com,www.sina.com.cn等。path:路径,标识一个文件在服务器根路径下的虚拟地址,可能有多个层级,如/a/b/c.html,/a/b/d.shtml,/a/b/e.jsp(页面格式有:.htm、dhtml、.xhtml、.shtm、.shtml、.asp、.jsp、.php、.aspx、.jspx、.cgi)等。query:参数,由多组(key,value)组成,每组(key,value)中的key和value可以以等号(=)连接,不同组(key,value)之间以‘&’连接,如key1=value1&key2=value2。fragment:锚,定位到页面中的特定位置(即后文所述的定位部分)。例如:urlhttp://www.example.com/an/example.html?lang=zh&loc=bj#nowhere该url的各个部分为:scheme:http;netloc:www.example.com;path:/an/example.html;query:lang=zh&loc=bj;fragment:nowhere。步骤s10在进行url分段的时候可以包括如下操作方法:本实施例提供的一种分段方式,可直接按照url的组成规则,从url中提取出各个组成部分的字符内容,再对提取出来的各个组成部分的字符内容进行分段。其中,该url的组成规则可以为:url包括scheme部分、netloc部分、path部分、query部分、以及fragement部分。上述对提取出来的各个组成部分的字符内容进行分段,可以包括:path部分可根据“/”与字符类型进行分割;query部分可根据“&”进行分割。其中,query部分中,可根据“&”分割形成若干个“key=value”形式,并对“=”之后的value部分进行保留作为该部分的字段,将“=”之前的key部分作为一个识别特征(也可将“key=”共同作为识别特征),需要说明的是,该key部分可用于步骤s20中作为url分组的识别特征,提高url组归类的准确性;该处的value部分根据字符类型可进行进一步的分段,并为分段后的字段进行基础模式标记。例如:query部分为k=v1,将“k=”做为识别特征,v1分割为v与1。在对提取出来的各个组成部分的字符内容进行分段之后,在scheme部分、netloc部分、path部分、query部分、fragment部分中的任一组成部分的字符内容所对应的分段中,若存在相邻的两个或多个分段的字符类型相同,则可将该相邻的且字符类型相同的分段进行连接成为一个分段,由此可减少后续合并的字段的个数。例如,path部分为“a/b/123.html”,按照“/”分段后得到a、b、123.html三个字段;字符类型相同的且相邻的字段为a和b。则将a、b两个字段进行连接,最后得到:ab、123.html两个字段。在具体实施的时候为了减少冗余信息,可分段后将url中的“:”、“//”、“/”“?”、“#”等连接符进行丢弃或过滤处理,即在分段时,仅需提取scheme部分、netloc部分、path部分、query部分、fragment部分中各组成部分对应的字符内容作为分段后的字段。在本实施例中,还可将scheme部分与netloc部分进行丢弃处理,实现了在可保留url类型特点的情况下,进一步简化了url的分段长度,还扩大了对url的处理范围,可处理更加复杂的url。本实施例中还提供第二种url分段方式,与第一种分段方式不同的是,可直接将url中的path部分、query部分、fragment部分中各组成部分对应的字符内容提取出来,再对该三个组成部分对应的字符内容按照字符类型进行分割,例如:url1:http://example.com/test01.html?k=v1#abc中,先提取出path部分、query部分、fragment部分分别对应的字符内容,例如path部分test01.html;再对各组成部分对应的字符内容按照字符类型进行分割,例如路径部分test01.html,按照字符类型分割为test、01、.与html;query部分k=v1,按照字符类型分割为k、=、v与1。在步骤s10中,对分段后生成的字段根据字符类型进行基础模式标记,可保证采用一种基础模式表示多个内容不同但字符类型相同的字段。其中字符类型具体可指字母、数字、符号等,其中字母还可分为大写字母、小写字母,符号可分为标准字符(下文中的“.”为标准字符)和标准字符之外的字符。标准字符包括:“abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz0123456789-._~:/?#[]@!$&'()*+,;=%<>\"{}^|”。基础模式,由与被标记的字段的字符类型相同的任意字符形成,一个基础模式可包括一个或多个相同类型的字符以及其他特殊符号。例如,由小写字母组成的字段对应的基础模式可为a+z,a*z,a&z,a-z,az,bz,b-z,a/z,[az],[a/z]等等;由大写字母组成的字段对应的基础模式可为a-z,a+z,a*z,az,bz,(az),a/z,[az]等等;由数字组成的字段对应的基础模式可为0-9,0+9,0*9,0&9,09,19,29,[0-9],[09]等。除字母、数字之外的其他字符由于具有一定的特殊意义或具有一定的识别度,可直接采用字符本身作为其基础模式,例如“.”、“-”,标记的形式可为“/字符”、“\字符”、“字符”等。需要说明的是,上述步骤s10在一般情况下还可等同为:在url分段时,首先将url的path部分,query部分与fragment部分中的每个字符进行基础模式标记,对url中除上述三部分之外的其他组成部分的字符内容以及“/”作丢弃处理,然后再将上述三部分中的相邻且基础模式相同的的字符进行合并,再分段,得到各个字段,每个基础模式对应一个字段。以path部分为“a/b/123.html”的例子进行说明,如下:对“a/b/123.html”丢弃“/”后得到“ab123.html”,对每个字符进行基础模式标记后为:[a-z][a-z][0-9][0-9][0-9][.][a-z][a-z][a-z][a-z],针对相邻的且字符类型相同的基础模式进行合并,得到[a-z],[0-9][.][a-z]。步骤s20:根据所述进行基础模式标记后的字段,获取url集合中具有相同分段数且在相同分段位置具有相同基础模式的url,形成url组。另外,当url集合中存在含有query部分的url时,要提高分类的准确度,在步骤s20中可以将query部分包括的key部分引入作为一个识别特征。即根据所述进行基础模式标记后的字段,获取url集合中具有相同分段数且在相同分段位置具有相同基础模式,且相同分段位置的key部分相同的url,形成url组。通过步骤s20后可针对url集合中已经分段完成后的url,筛选出相同类型的url,形成url组。如筛选出分段长度相同并且相同分段位置的字段字符类型相同的url,并将筛选出的url形成一组。例如:url1:http://example.com/123/test01.html?k=1#abcurl2:http://example.com/456/test02.html?k=2#abcurl3:http://example.com/789/test03.html?k=3#abc则在url集合中url1、url2、url3在分段后可构成一组,其分段信息如表1所示:表1分段位置1分段位置2分段位置3分段位置4分段位置5分段位置6分段位置7123test01.html1abc456test02.html2abc789test03.html3abc又如:url4:http://bbs.qyer.com/thread-1086156-1.htmlurl5:https://bbs.niuyou5.com/thread-1728466-1.htmlurl6:http://bbs.letv.com/thread-971782-1.html则在url集合中url4、url5、url6在分段后可构成一组,其分段信息如表2所示:表2分段位置1分段位置2分段位置3分段位置4分段位置5分段位置6分段位置7thread-1086156-1.htmlthread-1728466-1.htmlthread-971782-1.html步骤s30:将所述url组中相同分段位置的字段根据所标记的基础模式进行合并,得到所述url组的url模式。在步骤s30中,合并的形式可以包括,采用统一的形式来表示相同分段位置的各个字段。进一步的,可将所述url组中相同分段位置的字段根据所标记的基础模式以及每个字段的字符数进行合并,得到所述url组的url模式。为了进一步的防止得到过于泛化的url模式,还可在合并时对相同分段位置所合并的字段的个数进行标记(可单独记录),该标记用于表明:url模式是由多少条url合并而来。在执行上述步骤s30的时候,由于各个分段位置的字段的类型存在区别,在一个url组中在某一分段位置的各个字段执行合并操作的时候可根据该分段位置的字段的基础模式以及字段的字符数进行不同的合并操作,因此在本实施例中可以对同一url组中的不同分段位置的字段进行单独的合并操作。具体的,如图2所示,步骤s30包括的子步骤:步骤s31:获取url组中各分段位置对应的模式串;该模式串为:针对url组中各个url在相同分段位置对应各个字段执行合并操作后,采用统一表达形式得到的字符串。步骤s32:将url组中的各个分段位置对应的所述模式串进行组合,得到所述url组的url模式。其中,将模式串进行组合的操作可以包括:采用连接符将path部分、query部分以及fragment部分连接起来。在执行步骤s31的时候,具体的一种实施方式可以为:将url组中各个url在相同分段位置且字段内容相同的目标字段进行合并操作;其中,所述目标字段的字符类型可以为字母(如表1中的分段位置2)或数字(如表2中的分段位置5);合并完成后,将所述目标字段包括的字符内容(组成该目标字段的字符)作为该分段位置的模式串。在执行步骤s31的时候,具体的另一种实施方式可以为:将url组中各个url在相同分段位置具有相同字符的多个目标字段进行合并操作,且该目标字段包括的相同字符为非字母非数字类型(例如表1中的分段位置4);合并操作完成后,根据所述目标字段包括的相同字符的字符内容和字符个数,获得该分段位置的模式串。其中,该分段位置的模式串的表达形式可根据所述目标字段包括的字符是否为正则表达式中使用的特殊字符进行具体细分;其中,正则表达式中使用的特殊字符可以如:()$*.[]等,从而可以进一步强化合并后url模式的结构特点。具体的,若所述目标字段的字符不为正则表达式中使用的特殊字符,则模式串可以表示为:[字符]{个数}或(字符){个数}等;若所述目标字段的字符为正则表达式中使用的特殊字符,则模式串可以表示为[\字符]{个数}、或(\字符){个数}等;例如表1中的分段位置4可表示为[\.]{1};其中,字符为目标字段的字符内容;个数为目标字段的字符个数。其中,“[]”、“()”等符号仅仅用于区别各个分段位置的模式串,不对本发明的保护范围构成限制,采用其他符号进行区分也可,例如“{}”“<>”““””等,[\字符]中的“\”也可采用其他可用于区别的符号进行替代(如“/”“|”等),下同。在本实施例中采用[字符]{个数},其中当个数为1的时候可以省略{个数},个数表示该分段位置中的一个字段的字符个数。在本实施例中采用[\字符]{个数}或[字符]{个数},其中当个数为1的时候可以省略{个数},例如表1中的分段位置4可直接表示为[\.]。在执行步骤s31的时候,具体的又一种实施方式可以为:将url组中各个url在相同分段位置,标记的基础模式相同且字符不同的目标字段(例如表1中的分段位置1和分段位置3)进行合并;合并完成后,根据所述目标字段标记的基础模式与合并前该分段位置的各个url中的字段的字段长度,获得该分段位置的模式串。在本实施例中,若字段长度相同(字段长度的大小表征字符个数多少,在本实施例中字段长度为字符的个数),该分段位置的模式串的表达形式可表示为:“[基础模式]{长度}”,若字符长度为1则可以表示为“[基础模式]”;若字段长度不同,则该分段位置的模式串的表达形式可表示为:“[基础模式]+”表示。其中当字段长度为1的时候可以省略{长度},其中“+”用于表征所合并的分段位置的字段长度不同的情况,也可采用其他符号予以区别,例如-、*、%、!、~等均可。更进一步的,为了提高系统的兼容性,降低实施本发明的学习成本,上述步骤s31中采用基础模式进行标记的字段,并在合并之后形成的模式串,均可采用正则表达式进行表示,例如:[a-z]、[a-z]、[0-9]、[字符]、{长度}等。另外在正则表达式中还可进行简写替代,正则表达式的简写替代为已知技术手段,在此不过多赘述。请参照表3,为了使本实施例中的方案更加清楚,下面以例说明,有以下url集合:http://example.com/11.html?k=1#abchttp://example.com/12.html?k=2#abchttp://example.com/13.html?k=3#abchttp://bbs.qyer.com/thread-1086-1.htmlhttp://bbs.letv.com/thread-982-1.html对上述url执行步骤s10的分段与基础模式标记,并进行冗余信息的丢弃处理后得到表3:表3对表3继续进行步骤s20得到url组1与url组2,如表4所示:表4继续以表4中的url组1为例,对表4中的url组1执行步骤s30,在执行步骤s30时,将分别执行步骤s31和步骤s32。得到表5所示:表5将合并后各分段位置形成的模式串进行组合可得到url模式:[0-9]{2}[\.]html[0-9]abc。若记录url个数,则可得到:[0-9]{2}[\.]html[0-9]abc(3)。进一步的,为了增强url模式结构的识别度,可采用预设的连接符对path部分、query部分、fragment部分进行连接。例如,在本实施例中预设的连接符可以包括:采用“/”作为起始连接符,采用“[\?]”作为path部分与query部分的连接符,采用“#”作为query部分与fragment部分的连接符,得到url模式:/[0-9]{2}[\.]html[\?][0-9]#abc。再进一步的,为保证各个模式串组合之后形成的url模式的识别度,可将分段时保留的识别特征(key部分,此处key部分为k)添加到指定位置,可得到url模式:/[0-9]{2}[\.]html[\?]k=[0-9]#abc第二实施例请参阅图3,在本实施例中提供的还提供一种url模式获取方法,该方法具体包括:步骤s10:对url集合中的每个url分别进行分段,并对每个url分段后生成的字段根据字符类型进行基础模式标记,所述基础模式由与被标记的字段的字符类型相同的任意字符形成。步骤s20:根据所述进行基础模式标记后的字段,获取url集合中具有相同分段数且在相同分段位置具有相同基础模式的url,形成url组。步骤s301:根据所述url组中每个url分段后得到的各个字段构建前缀树;其中,所述前缀树的每个分支为一条已分段的url,所述前缀树的每个分支的每个节点为分段得到的一个字段,所述前缀树中的相同深度的节点组成所述前缀树的一层,所述前缀树中的每一层对应一个相同分段位置。步骤s302:将所述前缀树由根节点向下进行合并,并根据所述前缀树每一层包括的字段的基础模式和字符数,得到所述url组的url模式。上述的步骤s10与步骤s20参照第一实施例执行,在此不再赘述。与第一实施例不同的是,在本实施例中需要执行步骤s301构建前缀树,构建前缀树时,以空节点为根节点。在执行步骤s302时,使用构建前缀树依次从根节点向下进行合并,在合并过程中发生错误可在当前节点停止,避免其他节点继续运算,浪费计算资源。需要说明的是,在本实施例中步骤s301中对前缀树的各层进行合并操作可参考第一实施例的步骤s30的合并方式进行。对前缀树的各层的节点进行合并(前缀树的每一层对应url组中的一个分段位置),得到该层的模式串。具体过程可以通过下述示例说明,如下所示(括号内的数字为节点个数):url组:http://example.com/11.html?k=1#abchttp://example.com/12.html?k=2#abchttp://example.com/13.html?k=3#abc分段后构建前缀树为,小括号内为节点数量:/11(1)[\.]html(1)1(1)abc(1)-(3)|—12(1)[\.]html(1)2(1)abc(1)\13(1)[\.]html(1)3(1)abc(1)合并第一层,得到模式串:/[\.]html(1)1(1)abc(1)-(3)[0-9]{2}(3)|—[\.]html(1)2(1)abc(1)\[\.]html(1)3(1)abc(1)合并第二层,得到模式串:/html(1)1(1)abc(1)-(3)[0-9]{2}(3)[\.]|—html(1)2(1)abc(1)\html(1)3(1)abc(1)合并第三层,得到模式串:/html(1)1(1)abc(1)-(3)[0-9]{2}(3)[\.](3)|—html(1)2(1)abc(1)\html(1)3(1)abc(1)合并第四层,得到模式串:/1(1)abc(1)-(3)[0-9]{2}(3)[\.](3)html(3)|—2(1)abc(1)\3(1)abc(1)合并第五层,得到模式串:/abc(1)-(3)[0-9]{2}(3)[\.](3)html(3)[0-9(3)]|—abc(1)\abc(1)合并第六层,得到模式串:-(3)[0-9]{3}(3)[\.](3)html(3)[0-9(3)]abc(3)采用连接符将各个模式串进行组合,得到url模式:/[0-9]{2}[\.]html[\?]k=[0-9]#abc第三实施例请参照图4,在本实施例中提供一种可以保留url的指定分段位置的字段中的字符内容,并将该字段的字符内容作为该字段所在分段位置的模式串的一种url模式获取方法。与第一实施例不同的是,本实施例中可根据url的结构特征,对具有较高识别性的字段进行保留(指定分段位置可以是url中具有较高识别作用的字段的字符内容,例如url中的页面格式尾缀),并作为该字段的字符内容作为该字段所在分段位置的模式串以进一步提高url模式的准确度。具体包括如下步骤:步骤s10:对url集合中的每个url分别进行分段,并对每个url分段后生成的字段根据字符类型进行基础模式标记,所述基础模式由与被标记的字段的字符类型相同的任意字符形成。步骤s20:根据所述进行基础模式标记后的字段,获取url集合中具有相同分段数且在相同分段位置具有相同基础模式的url,形成url组。步骤s401:获取url组中指定分段位置的模式串与非指定分段位置的模式串。步骤s402:将url组中的各个分段位置对应的所述模式串进行组合,得到所述url组的url模式。在步骤s401中,获取非指定位置的模式串可参照第一实施例中的方法进行获取,在此不再赘述。步骤s402可参照第一实施例中的步骤s30执行,不再赘述。在步骤s401中,获取指定位置的模式串的方法如下:获取预定义字符在所述url组中的分段位置,并将在所述预定义字符的分段位置之后的字段所包含的相同字符内容作为该字段所在分段位置的模式串。以此,将url的具有识别作用的字符内容保留下来,作为模式串,提高url模式的准确度。为保证保留的字符内容具有较高识别作用,可设置第一阈值,该第一阈值用于限制某一分段位置的字段的字符个数。第一阈值取值可根据需要保留的字段所存在url中的分段位置进行设定,一般不超过6个字符(即可取值为1、2、3、4、5、6)。可限定预定义字符所在分段位置之后的字段的字符个数小于等于第一阈值;在path部分、query部分、以及fragement部分的任一者中,预定义字符之后的字段的数量小于等于第二阈值,第二阈值可取为1或2。若满足上述第一阈值和/或第二阈值要求,则可将指定位置的字段的字符内容保留下来作为该指定位置所在的分段位置的模式串,在此之前还可进一步确定在预定义字符之后的字段均标记有基础模式,避免预定义字符为url的末尾字符。以此可定位到指定分段位置的指定字段并保留该字段,以增强url的结构特征提高url模式的表示精度。当然根据需要字段数与字符数可仅限定第一阈值或第二阈值二者之一。需要说明的是,第一阈值和第二阈值可根据情况进行调整,例如,要保留其他分段位置的字段的字符内容作为该分段位置的模式串时,可根据该分段位置的字段的字符个数进行对应更改和限定第一阈值,可根据该分段位置所存在的path部分或query部分或fragement部分中的相邻位置的字段数进行更改和限定第二阈值。例如第一阈值可以取值为大于6的值,7、8、9等均可;第二阈值可以取值为大于2的值,3、4、5、6、7等均可。例如,需要将url组中的页面格式信息保留下来作为模式串,则其中预定义字符可为“.”,页面格式的后缀一般不超过6个字符,在寻找“.”字符的时候可将需找范围定位到路径部分,在path部分中,“.”之后的字段数量小于两个,并且“.”之后的字段均标记有基础模式,则可判定在路径部分中的“.”之后的字段为页面格式的尾缀,对其进行保留,并将保留字段的字符内容作为该分段位置的模式串。提高了url模式的准确度。同样的,若需要保留其他识别信息可对应的调整预定义字符为“=”“?”“#”等,不作限定。例如url组:url1:http://example.com/123/test01.html?k=1#abcurl2:http://example.com/456/test02.html?k=2#abcurl3:http://example.com/789/test03.html?k=3#abc路径部分分段后的各个字段为:test、01、.、htmltest、02、.、htmltest、03、.、html预定义字符为“.”。合并时,定位到“.”的位置,字符“.”之后的字段为1个(即html,小于2),并且字符数为4(小于6),在合并时就可保留html作为该分段位置的模式串。该路径部分合并完成可得到:test[0-9]{2}[\.]html。进一步提高了url模式的准确度。第四实施例请参阅图5,基于同一发明构思,本实施例提供了一种url模式获取装置,该装置包括:标记模块11、url组生成模块12和url模式生成模块13。标记模块11,用于对url集合中的每个url分别进行分段,并对每个url分段后生成的字段根据字符类型进行基础模式标记,所述基础模式由与被标记的字段的字符类型相同的任意字符形成。url组生成模块12,用于根据所述进行基础模式标记后的字段,获取url集合中具有相同分段数且在相同分段位置具有相同基础模式的url,形成url组。url模式生成模块13,用于将所述url组中相同分段位置的字段根据所标记的基础模式进行合并,得到所述url组的url模式。可选的,所述url模式生成模块13,具体用于将所述url组中相同分段位置的字段根据所标记的基础模式和每个字段的字符数进行合并,得到所述url组的url模式。可选的,所述url模式生成模块13,包括:构建单元,用于将所述url组中各条url分段后得到的各个字段构建为前缀树;其中,所述前缀树的每个分支为一条已分段的url,所述前缀树的每个分支的每个节点为分段得到的一个字段,所述前缀树中的每一层对应一个相同分段位置。第一url模式生成单元,用于将所述前缀树由根节点向下进行合并,并根据所述前缀树每一层包括的字段的基础模式和字符数,得到所述url组的url模式。可选的,url模式生成模块13,包括:模式串生成单元,用于获取url组中各分段位置对应的模式串;所述模式串为url组中各个url在相同分段位置对应各个字段执行合并操作后,采用统一表达形式得到的字符串。第二url模式生成单元,用于将url组中的各个分段位置对应的所述模式串进行组合,得到所述url组的url模式。可选的,所述模式串生成单元,包括:第一合并子单元,用于将url组中各个url在相同分段位置且字段内容相同的目标字段进行合并,所述目标字段的字符类型为字母或数字。还用于,合并后,将所述目标字段的字符内容作为该分段位置的模式串。可选的,所述模式串生成单元,包括:第二合并子单元,用于将url组中各个url在相同分段位置具有相同字符的目标字段进行合并,所述目标字段包括的相同字符为非字母非数字类型。还用于,合并后,根据所述目标字段包括的相同字符的字符内容和字符个数,获得该分段位置的模式串。可选的,所述模式串生成单元,包括:第三合并子单元,用于将url组中各个url在相同分段位置,标记的基础模式相同且字符不同的目标字段进行合并;还用于,合并后,根据所述目标字段标记的基础模式与合并前该分段位置的各个url中的字段的字段长度,获得该分段位置的模式串。可选的,所述模式串生成单元,包括:第四合并子单元,用于获取预定义字符在所述url组中的分段位置,并将在所述预定义字符的分段位置之后的字段所包含的相同字符内容作为该字段所在分段位置的模式串。可选的,所述预定义字符的分段位置之后的字段的字符数小于等于预设的第一阈值;和/或在url的路径部分、参数部分和定位部分的任一部分中,所述预定义字符之后的字段数量小于等于预设的第二阈值;和/或在url的路径部分、参数部分和定位部分任一部分中,所述预定义字符之后的字段均标记有基础模式。可选的,所述url组生成模块12,具体用于根据所述进行基础模式标记后的字段,获取url集合中具有相同分段数且在相同分段位置具有相同基础模式的url;将所获取的url中的参数部分中key字段相同的url作为一个url组。第五实施例本实施例中还提供一种可应用上述url模式获取方法及装置的电子设备。该电子设备包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:对url集合中的每个url分别进行分段,并对每个url分段后生成的字段根据字符类型进行基础模式标记,所述基础模式由与被标记的字段的字符类型相同的任意字符形成。根据所述进行基础模式标记后的字段,获取url集合中具有相同分段数且在相同分段位置具有相同基础模式的url,形成url组;将所述url组中相同分段位置的字段根据所标记的基础模式进行合并,得到所述url组的url模式。该电子设备中可执行的其他操作指令,可具体参考第一实施例至第五实施例中的方法,或装置中各个模块及单元的可执行操作。在此不再赘述。图6是本发明的一具体实例示出的一种url模式获取装置800的结构框图。例如,装置800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。参照图6,装置800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(i/o)的接口812,传感器组件814,以及通信组件816。处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理元件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理部件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。存储器804被配置为存储各种类型的数据以支持在设备800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。电力组件806为装置800的各种组件提供电力。电力组件806可以包括电源管理系统,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。多媒体组件808包括在所述装置800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(mic),当装置800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。i/o接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到设备800的打开/关闭状态,组件的相对定位,例如所述组件为装置800的显示器和小键盘,传感器组件814还可以检测装置800或装置800一个组件的位置改变,用户与装置800接触的存在或不存在,装置800方位或加速/减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置800可以接入基于通信标准的无线网络,如wifi,2g或3g,或它们的组合。在一个示例性实施例中,通信部件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信部件816还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。在示例性实施例中,装置800可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由装置800的处理器820执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。一种可读存储介质,具体为一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行上述实施例中的url模式获取方法,所述方法包括:对url集合中的每个url分别进行分段,并对每个url分段后生成的字段根据字符类型进行基础模式标记,所述基础模式由与被标记的字段的字符类型相同的任意字符形成;根据所述进行基础模式标记后的字段,获取url集合中具有相同分段数且在相同分段位置具有相同基础模式的url,形成url组;将所述url组中相同分段位置的字段根据所标记的基础模式进行合并,得到所述url组的url模式。图7是本发明实施例中服务器的结构示意图。该服务器1900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessingunits,cpu)1922(例如,一个或一个以上处理器)和存储器1932,一个或一个以上存储应用程序1942或数据1944的存储介质1930(例如一个或一个以上海量存储设备)。其中,存储器1932和存储介质1930可以是短暂存储或持久存储。存储在存储介质1930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1922可以设置为与存储介质1930通信,在服务器1900上执行存储介质1930中的一系列指令操作。服务器1900还可以包括一个或一个以上电源1926,一个或一个以上有线或无线网络接口1950,一个或一个以上输入输出接口1958,一个或一个以上键盘1956,和/或,一个或一个以上操作系统1941,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本
技术领域:
中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3