输入关键字 抓取所有网页(—种基于图标对比的android应用搜索山寨应用剔除方法技术领域)
优采云 发布时间: 2021-12-08 23:18输入关键字 抓取所有网页(—种基于图标对比的android应用搜索山寨应用剔除方法技术领域)
- 一种基于图标比较从Android应用搜索中去除假应用的方法
技术领域
[0001] 本发明涉及一种搜索剔除方法,尤其涉及一种基于图标对比和签名对比的安卓应用副本剔除方法。
背景技术
[0002] 在android应用搜索领域,目前存在一个严重的问题,即山寨应用层出不穷,大量相似(或相同)的应用让用户似乎无法分辨在各种应用市场,让用户无所适从;山寨应用的创建者,打包方式主要有两种:一种是不改变原有应用包名,添加恶意代码并用自己的签名发布;另一种是修改应用包名,同时用自己的签名发布。即使在Google Play上,这种形式的山寨软件也不少,而这个问题在第三方市场上更是普遍。在人工审核中,这个问题可以通过审阅者在特别知名的应用程序中的知识更好地手动过滤。但是对于知名度不高的软件,以及在全网爬取应用程序,这个问题就更加困难了,因为人类或网络爬虫无法通过简单的标准判断一个应用程序是否是山寨应用程序。
[0003] 请参考中国发明专利:《网页搜索方法及装置》,申请号:CN2.X,公开了一种网页搜索方法及装置,并在浏览器搜索栏中加载预设搜索引擎。类别信息生成搜索引擎类别列表;接收浏览器搜索栏输入框中输入的搜索关键词;接收搜索引擎类别列表中搜索引擎类别的选择信息;加载对应的搜索引擎类别搜索引擎列表;接收搜索引擎列表中搜索引擎的选择信息,根据搜索关键词向选择的搜索引擎发起搜索请求。该专利使用搜索关键词形成搜索引擎列表,在搜索过程中无需识别和确认,
[0004] 针对上述不足,本发明的创造者经过长时间的研究和实践,最终获得了创作。
发明内容
[0005] 本发明的目的在于提供一种去除安卓应用搜索仿冒应用的方法,以克服上述技术缺陷。
[0006] 为实现上述目的,本发明提供了一种从安卓应用搜索中去除虚假应用的方法,包括以下步骤:
[0007] 步骤a,爬虫网络对符合条件的应用进行爬取;
[0008] 步骤b:判断上述步骤a中捕获的符合条件的应用程序是否与认证数据库中存在的应用程序包名相同;如果捕获到的符合条件的应用程序和认证数据库中存在的应用程序存在包名相同,则跳到下面的步骤d;如果不存在,跳到下面的步骤c;
[0009] 步骤C:判断爬取到的符合条件的应用程序是否与认证数据库中存储的应用程序具有相同的图标。如果鉴权库中存在与抓取的应用程序图标相同但包名不同的应用程序,则可以更改如果判断为山寨应用程序,则跳至以下步骤e;如果不存在,则符合条件的应用程序属于新的应用程序,跳到下面的步骤f;
[0010] 步骤d,判断抓取到的应用是否为正品,如果判断为正品,则跳到下面的步骤f;若判断结果为否,则判断为山寨应用,跳至步骤e;
[0011] 步骤e,将捕获的应用程序从网络中移除,跳转到下一步骤h;
[0012] 步骤f,将抓取到的应用加入正版应用索引列表;
[0013] 步骤g,对上述步骤f中得到的原创应用索引列表进行排序,发送至前端展示给用户;
[0014] 步骤h,结束。
[0015] 优选地,鉴权数据库的形成过程为:
[0016] 步骤bl中,想要收录进入鉴权数据库的正版应用向鉴权数据库发送认证请求;
[0017] 步骤b2,鉴权数据库对请求的正版应用进行鉴权;
[0018] 步骤b3,解析上述步骤b2中认证的正版应用,得到正版作者的签名;
[0019] 步骤b4,获取正版应用图标;
[0020] 步骤b5:从经认证的正版应用中获取正版应用包名,并将其存储在认证签名库中;
[0021] 步骤b6,将原作者的签名散列成一长串序列码进行存储比较,并将数字签名以上述长串序列码的形式存储在认证签名库中;
[0022] 步骤b7将所有正版应用的包名保存在认证签名库中;
[0023] 步骤b8,将所有正版应用图标存储到应用图标库中;
[0024] 步骤b9,通过上述步骤b8存储在应用图标库中的应用图标形成应用图标库;
[0025] 步骤b10,将认证签名库中存储的认证签名与上述步骤b7后存储的正版包名组成认证签名库;
[0026] 步骤b11,认证签名库和应用图标库构成认证数据库。
[0027] 优选地,步骤c中的图标比较过程为:
[0028] 步骤C1,抓取到的应用程序与鉴权数据库中存在的应用程序包名不同;
[0029] 步骤c2,获取抓取的应用图标;
[0030] 步骤c3,将上述步骤c2中捕获的应用图标发送至应用图标库进行检测;
[0031] 步骤c4,查看应用图标库中的所有图标;如果鉴权库中存在与抓取的应用图标包名相同的图标,则跳至步骤c5;如果不是,则跳到步骤 c6;
[0032] 步骤c5,跳至上述步骤e;
[0033] 步骤c6,跳至上述步骤f。
[0034] 优选地,步骤d中的签名比较过程为:
[0035] 步骤dl,搜索到的应用与认证数据库中存在的应用具有相同的包名;
[0036] 步骤d2,抓取抓取的应用的签名;
[0037] 步骤d3,将步骤dl中获取的签名信息发送至认证签名数据库进行检查;
[0038] 步骤d4,在认证签名库中定位步骤d2中检测到的认证库中相同包名对应的签名;
[0039] 步骤d5,检查步骤d3提交检验的签名是否与步骤d4中的认证签名相同;如果相同,则跳到下面的步骤d6;如果它们不同,则跳到下一个提到的步骤d7;
[0040] 步骤d6,跳至上述步骤e;[0041] 步骤d7,跳至上述步骤f。
[0042] 优选地,上述步骤a中,用户在前端输入关键词,爬虫网络根据用户输入的关键词搜索全网,抓取匹配的信息关键词 有条件的 android 应用程序并形成初步列表。
[0043] 优选地,在上述步骤c中比较所有应用图标库中的图标的过程中,采用模板匹配的方法进行比较,该过程为:
[0044] 步骤cll,将鉴权库中的图标与抓取的应用程序的图标大小统一;
[0045] 步骤cl2,将认证数据库中图标的平均颜色与抓取到的应用程序图标进行比较,如果平均色差小于预设值k(k>0),则跳转到以下步骤cl3,否则,跳到上面的步骤e;
[0046] 步骤cl3,根据基于标准相关匹配的乘法运算的模板匹配,将认证数据库中的图标与抓取到的应用的图标进行比较,计算匹配度Rl。若R1大于预设阈值K1(K1≤0),则执行以下步骤cl4;如果不是,跳到上面的步骤e;
[0047] 步骤cl4,基于标准相关匹配的平均值的相对值的乘法运算的模板匹配,将认证数据库中的图标与抓取的应用程序的图标进行比较,计算匹配度R2,如果R2大于预设的阈值K2(K2≤0),则执行以下步骤cl5;如果不是,跳到上面的步骤e;
[0048] 步骤cl5,根据基于标准平方差匹配的模板匹配,将认证数据库中的图标与抓取的应用程序的图标进行比较,计算匹配度R3,如果R3大于预设阈值K3( K3^O),然后跳到上面的步骤f;如果不是,请跳到上面的步骤 e。
[0049] 优选地,上述步骤cl3中的匹配度R1根据下式(1)计算,
[0050]
[0051] 式中,x和y分别表示抓取到的应用图标的横纵坐标值,X'、y'分别表示认证数据库中某个图标的横纵坐标值;τ表示认证数据库中某个图标的像素点计算值,I表示捕获的应用图标的像素点计算值;
[0052] 上述步骤cl4中的匹配度R2根据下式(2),
[0053]
[0054] 其中,T'和Γ由下式定义(3), (4),
[0055] T'U丨,yr) =T(x/,yr )-l/(wh).Σ x〃,y〃 T(x",y") (3)
[0056] I'(χ+χ,,y+y') = I(χ+χ', y+y;)-1/(wh).Σχ», y"T(χ+χ", y +y ")(4)
[0057] 式中,x和y分别表示抓取的应用图标的横纵坐标值,X'、γ'分别表示认证数据库中图标的横纵坐标值;X", y" 分别代表抓取的应用图标的抓取图片的横纵坐标值,w代表抓取图片的宽度,h代表抓取图片的高度,T代表一个像素操作认证数据库中的图标,I代表捕获的应用图标的像素点计算;
[0058] 上述步骤cl5中的匹配度R3根据下式计算(5), [0059]
[0060] 式中,x和y分别表示抓取的应用图标的横纵坐标值;X'、y'分别代表认证数据库中某个图标的横纵坐标值;τ表示认证数据库中的值 图标的一个图标的像素点计算,I表示捕获的应用程序图标的像素点计算。
[0061] 优选地,预设值k为10度;阈值K1取值为0.99;阈值 K2 取一个值
0.95;阈值 1 (3 取值 0.01.
[0062] 优选地,鉴权数据库包括鉴权签名库和应用图标库,鉴权签名库中的包名和签名对应。
[0063] 优选地,所述包名、签名和图标判断过程的执行程序存储在比较器中,比较器获取爬虫网络中待爬取的应用程序的包名和认证数据库中的应用程序的包名分别是,签名,图标信息;并将处理结果传送到索引数据库,形成真正的应用索引列表,排序后发送给前端。
[0064] 与现有技术相比,本发明的有益效果在于:本发明的安卓应用抓取去除虚假应用的方法,将需要抓取的应用分别映射到同一应用中的应用中。包名称、签名和图标的身份验证数据库。比对验证可以有效识别出被*敏*感*词*的应用属于修改正版应用包名的山寨应用,或者被*敏*感*词*的应用是全新的应用,或者被*敏*感*词*的应用继承了原有的包名。认证数据库中存在具有相同应用程序包名称和不同签名的山寨或山寨应用程序。经过三种不同的比较方法,可以有效杜绝山寨应用;在判断过程中,参考一个预先存在的情况。形成的鉴权数据库包括应用图标库和鉴权签名库,使得图标鉴权和签名鉴权能够有序进行。
图纸说明
[0065] 图 附图说明图1为本发明安卓应用搜索中剔除仿冒应用的方法实施例一流程图;
[0066] 图 图2为本发明安卓应用搜索仿冒方法的鉴权数据库实现过程流程图;
[0067] 图 图3为本发明的android应用搜索的淘汰应用剔除方法的图标对比实现方法流程图;
[0068] 图 图4是本发明的android应用搜索的淘汰应用剔除方法中图标模板匹配过程的流程图;
[0069] 图 图5为本发明安卓应用搜索的山寨应用清除方法的签名比对的实现方法流程图。
详细方法
[0070] 下面将结合附图更详细地描述本发明的上述和附加的技术特征和优点。
[0071] 实施例一:
[0072] 本发明的android应用搜索山寨应用消除方法可以通过以下步骤实现:
[0073] 请参考图。参见图1,为本发明安卓应用搜索剔除仿冒应用的方法实施例一流程图。流程为: [0074] 步骤a101:从爬虫网络中抓取符合条件的应用,具体为:用户在前端输入关键词,爬虫网络抓取满足关键词@条件的android应用> 并形成初步清单;
[0075] 步骤a102:判断抓取到的应用程序是否与认证数据库中存在的应用程序包名相同,将步骤a101形成的列表中的应用程序依次发送到认证数据库,抓取到的应用程序包将应用程序名称与全库应用程序的包名称进行比较,以确定是否存在相同的包名称;如果捕获到的应用与认证数据库中存在的应用具有相同的包名,则跳至步骤al04;如果不存在,则跳至步骤a103;本发明的鉴权数据库包括应用图标库和鉴权签名库,鉴权签名库中的包名与签名对应。
[0076] 步骤a103:判断抓取的应用是否与鉴权数据库中存在的应用具有相同的图标,具体地,在步骤a102确定如果不存在相同的包名后,则抓取的应用的图标进行进一步判断. 如果判断结果为是,即认证数据库中存在与抓取的应用程序图标相同但包名不同的应用程序。可以判断为山寨应用,然后跳到步骤al05;如果不存在,也就是认证数据库中存在与抓取到的应用包名不同的情况,图标也不同。如果是新的应用,则跳到步骤al06;
[0077] 步骤a104:判断抓取到的应用是否与鉴权数据库中的应用具有相同的签名;在步骤102判断是否存在相同的包名后,进一步判断抓取到的应用的签名,如果判断结果为是,即认证数据库中有应用,抓取到的应用包名和签名相同,可以判断为真品,跳到步骤al06;
[0078] 在步骤a102中确定如果存在相同的包名后,进一步确定捕获的应用程序的签名。如果判断结果为否,且鉴权数据库中存在与抓取到的应用程序包名和签名相同的应用程序,如果不同,则可以判断为山寨,跳至步骤al06。
[0079] 步骤al05:经过上述步骤al02、al03、al04,确定包名相同,签名不同,或者包名不同,图标相同,则将捕获的应用程序从 Excluded from the network 中移除;
[0080] 步骤al06:经过上述步骤al02、al03、al04,确定包名相同、签名相同或包名不同,并且图标不同,则将抓取到的应用添加到正版应用索引列表中;
[0081] 步骤al07:通过上述步骤al01筛选得到的正版应用索引,al02、al03、al0关键词0@>al06
列表被排序并发送到前端以呈现给用户。
[0082] 通过以上步骤al0关键词1@>al02、al03、al0关键词0@>al05,将被过滤掉的山寨应用从应用网络中移除
完全从网络上删除,不会被抓取引擎重新抓取。
[0083] 请参考图。参见图2,为本发明的安卓应用搜索仿冒方法的鉴权数据库形成过程流程图。过程是:
[0084] 步骤a201:正版应用请求认证;具体来说,一个想要收录进入认证数据库的正版应用向认证数据库发送认证请求;
[0085] 步骤a202:鉴权数据库对请求的正版应用进行鉴权;具体地,鉴权数据库首先检查该应用程序是否为正版应用程序,分别执行以下步骤a203、a20关键词0@>a205;
[0086] 步骤a203:获取正版作者的签名;具体的,在202步正版认证通过后,解析应用程序,得到正版作者的签名。
[0087] 步骤a204:获取正版应用图标;具体的,从经过认证的应用程序中获取真正的应用程序图标,并将其存储在应用程序图标库中。
[0088] 步骤a205:获取正版包名;具体的,从经过认证的正版应用中获取正版应用包名,存储到认证签名库中;
[0089] 步骤a206:经过hash函数运算后变成序列码;具体来说,在获得正版应用的作者签名后,将作者签名散列成一长串序列码进行存储对比,数字签名以长序列码的形式存储在认证签名库中;
[0090] 步骤a207:存入认证签名库;具体地,将所有正版应用的包名存储在认证签名库中;
[0091] 步骤a208:存储在应用图标库中;具体来说,将所有正版应用的图标存储在应用图标库中;
[0092] 步骤a209:形成应用图标库;具体地,通过步骤208存储在应用图标库中的应用图标形成应用图标库。
[0093] 步骤a210:形成认证签名数据库;具体的,将认证签名库中存储的认证签名与步骤207后存储的正版包名构成认证签名库。
[0094] 步骤a211:形成鉴权数据库,具体地,鉴权签名数据库和应用图标数据库组成鉴权数据库。
[0095] 步骤a103:判断抓取的应用是否与认证数据库中存在的应用具有相同的图标,具体地,在步骤a102确定如果不存在相同的包名后,则抓取的应用的图标进行进一步的判断. 如果判断结果为是,即认证数据库中存在与抓取的应用程序图标相同但包名不同的应用程序。可以判断为山寨应用,然后跳到步骤al05;如果不存在,也就是认证数据库中存在与抓取到的应用包名不同的情况,图标也不同。如果是新的应用,则跳到步骤al06;
[0096] 请参考图。参见图3,为本发明安卓应用搜索的淘汰应用剔除方法的图标对比实现方法流程图;
[0097] 步骤a300:捕获的应用程序与鉴权数据库中存在的应用程序包名不同;
[0098] 步骤a301:获取抓取的应用图标,具体地,如果判断结果为未检测到与鉴权数据库包名相同的应用,则抓取抓取的应用图标;
[0099] 步骤a302:发送至应用图标库进行检查,具体将步骤a301中捕获的应用图标发送至应用图标库进行检查;
[0100] 步骤a303:图像检测:板子是否匹配,具体为检测应用图标库中的所有图标,范围为应用图标库中的所有应用图标。在本实施例中,采用模板匹配的方法进行检测,将认证数据库中的所有应用图标与抓取应用的图标进行比较;具体地,如果步骤a303的检测结果匹配,则认证数据库中存在应用程序和抓取的应用程序,并且有图标如果包名相同且包名不同,则可以确定为捕获的应用程序属于山寨应用程序,修改了正版应用程序的包名。判断为山寨,跳转到步骤a304;如果检测结果不匹配,则应捕获获取的应用程序与认证数据库中现有的应用程序包名称和图标不同。属于全新应用,非山寨,跳至步骤a305;
[0101] 步骤a304:从网络中移除捕获的应用程序(同上述步骤a105)跳至步骤a05;
[0102] 步骤a305:将抓取到的应用添加到正版应用索引列表中(同上步骤a105).
[0103] 其中,在步骤a302、步骤a303之后,还可以增加对抓取到的应用进行签名检测的步骤。
[0104] 请参考图。参见图4,为本发明安卓应用搜索的淘汰应用移除方法中图标模板匹配过程的流程图。在上述步骤a303中,抓取的图标是与认证数据库中的图标一起进行的。模板流程为:
[0105] 步骤a41,统一认证数据库中图标的大小和抓取的应用程序的图标;根据预设值确定大小;
[0106] 步骤a42:将认证数据库中的图标的平均颜色与捕获的应用程序图标进行比较。如果平均色差小于预设值k(k>0),则跳到下面的步骤a43,否则跳到上面的步骤a304;在本实施例中,预设值k为10度;
[0107] 步骤a43,根据基于标准相关匹配的乘法运算的模板匹配,将认证数据库中的图标与抓取到的应用的图标进行比较,计算匹配度R1。若R1大于预设阈值,则执行以下步骤a44;如果不是,则跳到步骤a46;本实施例中,阈值K1(K1≤0)取值0.99;
[0108] 上述匹配度Rl的计算根据以下公式(1)进行,
[0109]
[0110] 式中,x和y分别表示抓取的应用程序图标的横纵坐标,X'、γ'分别表示认证数据库中图标的横纵坐标,T表示取值在认证数据库中图标的一个图标的像素点计算,I表示捕获的应用程序图标的像素点计算。
[0111] 步骤a44,基于标准相关匹配的平均值的相对值的乘法运算的模板匹配,将认证数据库中的图标与抓取的应用程序的图标进行比较,计算匹配度R2,若R2大于预设阈值K2(K2≥0),则执行以下步骤a45;如果不是,则跳到步骤a46;在本实施例中,阈值K2取值
0.95;
[0112] 上述匹配度R2的计算是根据以下公式(2),
[0113]
(4)
[0117] 式中,x和y分别表示抓取到的应用图标的横纵坐标值,X'、y'分别表示认证数据库中某个图标的横纵坐标值;X", y" 分别代表抓取的应用图标的抓取图片的横纵坐标值,w代表抓取图片的宽度,h代表抓取图片的高度,T代表一个像素操作认证数据库中的图标,I代表捕获的应用程序图标的像素点计算。
[0118] 步骤a45,将认证数据库中的图标与基于标准平方差匹配的模板匹配的抓取应用的图标进行比较,计算匹配度R3,如果R3大于预设阈值K3( K3^0),然后跳转到设备上面的步骤a305;如果不是,跳到步骤a46;本实施例中,阈值K3取值0.01;
[0119] 上述匹配度R3的计算是根据以下公式(5),
[0120]
[0121] 式中,x和y分别表示抓取的应用程序图标的横纵坐标,X'、y'分别表示认证数据库中图标的横纵坐标,T表示取值在认证数据库中图标的一个图标的像素点计算,I表示捕获的应用程序图标的像素点计算。
[0122] 步骤a46,跳至上述步骤a304;
[0123] 步骤a47,跳至上述步骤a305。
[0124] 将抓取到的图标与认证数据库中的图标进行模板匹配后,可以判断抓取到的应用程序是否为全新的应用程序。
[0125] 请参考图。参见图5,为本发明安卓应用搜索的仿冒应用剔除方法的签名比对的实现方法流程图。
[0126] 步骤a400,通过鉴权数据库判断抓取到的应用程序与鉴权数据库中存储的应用程序包名相同;
[0127] 步骤a401:如果判断结果为检测到与认证数据库包名相同的应用程序,则抓取抓取到的应用程序的签名;
[0128] 步骤a402:将步骤401中得到的签名信息发送到鉴权签名库进行检查;
[0129] 步骤a403:在认证签名库中定位步骤102检测到的认证库中相同包名对应的签名;
[0130] 步骤a404:检查步骤402中发送的签名是否与步骤403中定位的认证签名相同;如果步骤402的检测结果不同,则认证数据库中存在经过认证的应用程序和经过验证的签名。捕获的应用程序具有相同的包名称和不同的签名。可以确定抓取到的应用程序属于继承原包名复制正版应用程序的方法。由于不能复制原作者的签名,所以可以通过这种方式。识别方法,若检测结果为相同包名、不同签名,则跳至步骤a405;如果步骤402的检测结果相同,
[0131] 步骤a405:跳至下一步骤a105;
[0132] 步骤a406:跳至下一步骤al06;
[0133] 其中,在上述步骤a402、a403、a404之后,还可以增加对抓取到的应用进行图标检测的步骤。
[0134] 在本发明中,包名、签名和图标的判断过程的执行程序存储在比较器中,比较器获取爬虫网络中待爬取的应用程序的包和身份验证数据库。姓名、签名、图标信息;并将处理结果传送到索引数据库,形成真正的应用索引列表,排序后发送给前端。
[0135] 以上所述仅为本发明的优选实施例而已,对于本发明而言,仅是示例性的,而非限制性的。本领域的技术人员可以理解,在本发明权利要求所限定的精神和范围内,可以对本发明进行各种改动、修改、甚至等同,但都落入本发明的保护范围之内。