下载APK的去重方法及装置.pdf

上传人:a1 文档编号:625890 上传时间:2018-02-26 格式:PDF 页数:17 大小:1.66MB
返回 下载 相关 举报
摘要
申请专利号:

CN201410350657.0

申请日:

2014.07.22

公开号:

CN104077422A

公开日:

2014.10.01

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06F 17/30申请日:20140722|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

百度在线网络技术(北京)有限公司

发明人:

施敏; 夏良钊; 贾志军; 王磊

地址:

100085 北京市海淀区上地十街10号百度大厦

优先权:

专利代理机构:

北京鸿德海业知识产权代理事务所(普通合伙) 11412

代理人:

袁媛

PDF下载: PDF下载
内容摘要

本发明提供一种下载APK的去重方法及装置,其中,所述方法包括:获取外部服务器中待下载APK的部分信息;通过哈希算法对所述待下载APK的部分信息提取固定片段,作为该待下载APK的特征集;将所述待下载APK的特征集与本地数据库已存的本地APK的特征集相匹配,若发现与所述待下载APK相同特征集的本地APK,则不再下载所述待下载APK的全部内容。本发明的有益效果是:减少了带宽资源的占用,提高了爬虫系统下载文件的速度,快速及时的给应用搜索和安全检测提供基础数据信息,改善了产品的响应速度,增加了用户体验、节省了公司成本。

权利要求书

1.  一种下载APK的去重方法,其特征在于,所述方法包括:
S1、获取外部服务器中待下载APK的部分信息;
S2、通过哈希算法对所述待下载APK的部分信息提取固定片段,作为该待下载APK的特征集;
S3、将所述待下载APK的特征集与本地数据库已存的本地APK的特征集相匹配,若发现与所述待下载APK相同特征集的本地APK,则不再下载所述待下载APK的全部内容。

2.
  根据权利要求1所述的下载APK的去重方法,其特征在于,所述部分信息为文件头部信息,所述文件头部信息为所述待下载APK的前1024字节内容。

3.
  一种下载APK的去重方法,其特征在于,所述方法包括:
S1、获取外部服务器中待下载APK的部分信息,所述部分信息包括所述待下载APK的MF文件;
S2、计算所述待下载APK的MF文件的偏移量;
S3、将所述待下载APK的MF文件的偏移量与本地数据库已存的本地APK的MF文件的偏移量相匹配,判断是否有与待下载APK的MF文件的偏移量相同的本地APK;若有,则进入S4步骤,若无,则进入S5步骤;
S4、将所述待下载APK的MF文件的哈希值与本地数据库已存的本地APK的MF文件的哈希值相匹配,判断是否有与待下载APK的MF文件的哈希值相同的本地APK;若有,则不再下载所述待下载APK的全部内容,若无,则进入S5步骤;
S5、下载所述待下载APK的全部内容。

4.
  根据权利要求3所述的下载APK的去重方法,其特征在于,所述部分信息为文件头部信息,所述文件头部信息为所述待下载APK的前1024字节内容。

5.
  一种下载APK的去重方法,其特征在于,所述方法包括:
S1、获取外部服务器中待下载APK的部分信息;
S2、通过哈希算法对所述待下载APK的部分信息提取固定片段,作为该待下载APK的特征集;
S3、将所述待下载APK的特征集与本地数据库已存的本地APK的特征集相匹配,若未发现与所述待下载APK相同特征集的本地APK,则下载所述待下载APK的全部内容;若发现与所述待下载APK相同特征集的本地APK,则执行S4步骤;
S4、计算所述待下载APK的MF文件的偏移量;
S5、将所述待下载APK的MF文件的偏移量与本地数据库已存的本地APK的MF文件的偏移量相匹配,判断是否有与待下载APK的MF文件的偏移量相同的本地APK;若有,则进入S6步骤,若无,则进入S7步骤;
S6、将所述待下载APK的MF文件的哈希值与本地数据库已存的本地APK的MF文件的哈希值相匹配,判断是否有与待下载APK的MF文件的哈希值相同的本地APK;若有,则不再下载所述待下载APK的全部内容,若无,则进入S7步骤;
S7、下载所述待下载APK的全部内容。

6.
  根据权利要求5所述的下载APK的去重方法,其特征在于,所述部分信息为文件头部信息,所述文件头部信息为所述待下载APK的前1024字节内容。

7.
  根据权利要求5所述的下载APK的去重方法,其特征在于,所述方法包括:
获取外部服务器中对待下载APK的描述文本信息;
将所述待下载APK的描述文本信息与本地数据库中已存的本地APK的描述文本信息相匹配,若发现描述文本信息相同的本地APK,则执行S1~S7步骤,若未发现描述文本信息相同的本地APK,则直接下载所述待下载APK的全部内容。

8.
  一种下载APK的去重装置,其特征在于,所述装置包括:
下载模块,用于获取外部服务器中待下载APK的部分信息;
计算模块,用于通过哈希算法对所述待下载APK的部分信息提取固定片段,作为该待下载APK的特征集;
判断模块,用于将所述待下载APK的特征集与本地数据库已存的本地APK的特征集相匹配,若发现与所述待下载APK相同特征集的本地APK,则不再下载所述待下载APK的全部内容。

9.
  根据权利要求8所述的下载APK的去重装置,其特征在于,所述部分信息为文件头部信息,所述文件头部信息为所述待下载APK的前1024字节内容。

10.
  一种下载APK的去重装置,其特征在于,所述装置包括:
下载模块,用于获取外部服务器中待下载APK的部分信息,所述部分信息包括所述待下载APK的MF文件;
计算模块,用于计算所述待下载APK的MF文件的偏移量;
判断模块,用于将所述待下载APK的MF文件的偏移量与本地数据库已存的本地APK的MF文件的偏移量相匹配,判断是否有与待下载APK的MF文件的偏移量相同的本地APK;
所述判断模块还用于,将所述待下载APK的MF文件的哈希值与本地数据库已存的本地APK的MF文件的哈希值相匹配,判断是否有与待下载APK的MF文件的哈希值相同的本地APK;
所述下载模块还用于当判断模块判断本地数据库中没有与待下载APK相同的本地APK时,下载所述待下载APK的全部内容。

11.
  根据权利要求10所述的下载APK的去重装置,其特征在于,所述部分信息为文件头部信息,所述文件头部信息为所述待下载APK的前1024字节内容。

12.
  一种下载APK的去重装置,其特征在于,所述装置包括:
下载模块,用于获取外部服务器中待下载APK的部分信息;
计算模块,用于通过哈希算法对所述待下载APK的部分信息提取固定片段,作为该待下载APK的特征集,以及计算所述待下载APK的MF文件的偏移量;
判断模块,用于将所述待下载APK的特征集与本地数据库已存的本地APK的特征集相匹配,若未发现与所述待下载APK相同特征集的本地APK,则下载所述待下载APK的全部内容;若发现与所述待下载APK相同特征集的本地APK,则将所述待下载APK的MF文件的偏移量与本地数据库已存的本地APK的MF文件的偏移量相匹配,判断是否有与待下载APK的MF文件的偏移量相同的本地APK;
所述判断模块还用于,将所述待下载APK的MF文件的哈希值与本地数据库已存的本地APK的MF文件的哈希值相匹配,判断是否有与待下载APK的MF文件的哈希值相同的本地APK;
所述下载模块还用于当判断模块判断本地数据库中没有与待下载APK相同的本地APK时,下载所述待下载APK的全部内容。

13.
  根据权利要求12所述的下载APK的去重装置,其特征在于,所述部分信息为文件头部信息,所述文件头部信息为所述待下载APK的前1024字节内容。

14.
  根据权利要求12所述的下载APK的去重装置,其特征在于,
所述下载模块还用于,获取外部服务器中对待下载APK的描述文本信息;
所述判断模块还用于,将所述待下载APK的描述文本信息与本地数据库中已存的本地APK的描述文本信息相匹配,若未发现描述文本信息相同的本地APK,则直接通过下载模块下载所述待下载APK的全部内容。

说明书

下载APK的去重方法及装置
技术领域
本发明涉及一种下载APK的去重方法及装置,尤其涉及一种应用于爬虫系统的APK下载去重的方法及装置。
背景技术
为了满足用户各应用搜索需求,应用搜索引擎需要及时收集海量的应用样本进行数据分析和供用户下载。在应用搜索引擎中,爬虫系统需要快速收集海量的、来自不同应用商店APK文件,然而,不同应用商店中存在大量重复的APK文件,其会严重影响应用搜索引擎的搜索效率、推荐质量;并且,对于手机安全检测而言,大量重复的APK文件会降低安全检测的时效性;另外,大量重复APK文件的下载需要额外耗费大量的带宽和存储,造成大量的资金浪费。
发明内容
本发明的目的之一在于提供一种下载APK的去重方法及装置。
为实现上述发明目的之一,本发明一实施方式提供了一种下载APK的去重方法,其包括:
S1、获取外部服务器中待下载APK的部分信息;
S2、通过哈希算法对所述待下载APK的部分信息提取固定片段,作为该待下载APK的特征集;
S3、将所述待下载APK的特征集与本地数据库已存的本地APK的特征集相匹配,若发现与所述待下载APK相同特征集的本地APK,则不再下载所述待下载APK的全部内容。
作为本发明的进一步改进,所述部分信息为文件头部信息,所述文件头 部信息为所述待下载APK的前1024字节内容。
为实现上述发明目的之一,本发明一实施方式提供了一种下载APK的去重方法,其包括:
S1、获取外部服务器中待下载APK的部分信息,所述部分信息包括所述待下载APK的MF文件;
S2、计算所述待下载APK的MF文件的偏移量;
S3、将所述待下载APK的MF文件的偏移量与本地数据库已存的本地APK的MF文件的偏移量相匹配,判断是否有与待下载APK的MF文件的偏移量相同的本地APK;若有,则进入S4步骤,若无,则进入S5步骤;
S4、将所述待下载APK的MF文件的哈希值与本地数据库已存的本地APK的MF文件的哈希值相匹配,判断是否有与待下载APK的MF文件的哈希值相同的本地APK;若有,则不再下载所述待下载APK的全部内容,若无,则进入S5步骤;
S5、下载所述待下载APK的全部内容。
作为本发明的进一步改进,所述部分信息为文件头部信息,所述文件头部信息为所述待下载APK的前1024字节内容。
为实现上述发明目的之一,本发明一实施方式提供了一种下载APK的去重方法,其包括:
S1、获取外部服务器中待下载APK的部分信息;
S2、通过哈希算法对所述待下载APK的部分信息提取固定片段,作为该待下载APK的特征集;
S3、将所述待下载APK的特征集与本地数据库已存的本地APK的特征集相匹配,若未发现与所述待下载APK相同特征集的本地APK,则下载所述待下载APK的全部内容;若发现与所述待下载APK相同特征集的本地APK,则执行S4步骤;
S4、计算所述待下载APK的MF文件的偏移量;
S5、将所述待下载APK的MF文件的偏移量与本地数据库已存的本地 APK的MF文件的偏移量相匹配,判断是否有与待下载APK的MF文件的偏移量相同的本地APK;若有,则进入S6步骤,若无,则进入S7步骤;
S6、将所述待下载APK的MF文件的哈希值与本地数据库已存的本地APK的MF文件的哈希值相匹配,判断是否有与待下载APK的MF文件的哈希值相同的本地APK;若有,则不再下载所述待下载APK的全部内容,若无,则进入S7步骤;
S7、下载所述待下载APK的全部内容。
作为本发明的进一步改进,所述部分信息为文件头部信息,所述文件头部信息为所述待下载APK的前1024字节内容。
作为本发明的进一步改进,所述方法包括:
获取外部服务器中对待下载APK的描述文本信息;
将所述待下载APK的描述文本信息与本地数据库中已存的本地APK的描述文本信息相匹配,若发现描述文本信息相同的本地APK,则执行S1~S7步骤,若未发现描述文本信息相同的本地APK,则直接下载所述待下载APK的全部内容。
为实现上述发明目的之一,本发明一实施方式提供了一种下载APK的去重装置,其包括:
下载模块,用于获取外部服务器中待下载APK的部分信息;
计算模块,用于通过哈希算法对所述待下载APK的部分信息提取固定片段,作为该待下载APK的特征集;
判断模块,用于将所述待下载APK的特征集与本地数据库已存的本地APK的特征集相匹配,若发现与所述待下载APK相同特征集的本地APK,则不再下载所述待下载APK的全部内容。
作为本发明的进一步改进,所述部分信息为文件头部信息,所述文件头部信息为所述待下载APK的前1024字节内容。
为实现上述发明目的之一,本发明一实施方式提供了一种下载APK的去重装置,其包括:
下载模块,用于获取外部服务器中待下载APK的部分信息,所述部分信息包括所述待下载APK的MF文件;
计算模块,用于计算所述待下载APK的MF文件的偏移量;
判断模块,用于将所述待下载APK的MF文件的偏移量与本地数据库已存的本地APK的MF文件的偏移量相匹配,判断是否有与待下载APK的MF文件的偏移量相同的本地APK;
所述判断模块还用于,将所述待下载APK的MF文件的哈希值与本地数据库已存的本地APK的MF文件的哈希值相匹配,判断是否有与待下载APK的MF文件的哈希值相同的本地APK;
所述下载模块还用于当判断模块判断本地数据库中没有与待下载APK相同的本地APK时,下载所述待下载APK的全部内容。
作为本发明的进一步改进,所述部分信息为文件头部信息,所述文件头部信息为所述待下载APK的前1024字节内容。
为实现上述发明目的之一,本发明一实施方式提供了一种下载APK的去重装置,其包括:
下载模块,用于获取外部服务器中待下载APK的部分信息;
计算模块,用于通过哈希算法对所述待下载APK的部分信息提取固定片段,作为该待下载APK的特征集,以及计算所述待下载APK的MF文件的偏移量;
判断模块,用于将所述待下载APK的特征集与本地数据库已存的本地APK的特征集相匹配,若未发现与所述待下载APK相同特征集的本地APK,则下载所述待下载APK的全部内容;若发现与所述待下载APK相同特征集的本地APK,则将所述待下载APK的MF文件的偏移量与本地数据库已存的本地APK的MF文件的偏移量相匹配,判断是否有与待下载APK的MF文件的偏移量相同的本地APK;
所述判断模块还用于,将所述待下载APK的MF文件的哈希值与本地数据库已存的本地APK的MF文件的哈希值相匹配,判断是否有与待下载APK 的MF文件的哈希值相同的本地APK;
所述下载模块还用于当判断模块判断本地数据库中没有与待下载APK相同的本地APK时,下载所述待下载APK的全部内容。
作为本发明的进一步改进,所述部分信息为文件头部信息,所述文件头部信息为所述待下载APK的前1024字节内容。
作为本发明的进一步改进,所述下载模块还用于,获取外部服务器中对待下载APK的描述文本信息;
所述判断模块还用于,将所述待下载APK的描述文本信息与本地数据库中已存的本地APK的描述文本信息相匹配,若未发现描述文本信息相同的本地APK,则直接通过下载模块下载所述待下载APK的全部内容。
与现有技术相比,本发明的有益效果是:减少了带宽资源的占用,提高了爬虫系统下载文件的速度,快速及时的给应用搜索和安全检测提供基础数据信息,改善了产品的响应速度,增加了用户体验、节省了公司成本。
附图说明
图1是本发明第一实施方式的下载APK的去重方法的流程图;
图2是本发明第二实施方式的下载APK的去重方法的流程图;
图3是本发明第三实施方式的下载APK的去重方法的流程图;
图4是本发明一实施方式的下载APK的去重装置的模块图。
具体实施方式
以下将结合附图所示的各实施方式对本发明进行详细描述。但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所轻易做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。
爬虫系统可爬取外部服务器(应用商店)的APK信息,包括:应用名、大小、类型、更新时间、证书、MF文件的偏移量、MD5等,并将爬取到的APK数据存入本地数据库。
如图1所示,在本发明第一实施方式中,应用于爬虫系统的APK下载去重的方法,其包括:
S1、获取外部服务器中待下载APK的部分信息;进一步地,在本实施方式中,该部分信息为APK的文件头部信息,该文件头部信息为所述待下载APK的前1024字节内容。本实施方式中,通过获取待下载APK的文件头部信息,即可判断该待下载APK是否与本地数据库中的已存APK重复,避免了现有技术中需要下载APK全部内容才能判断是否重复所带来的缺陷。当然,在此之前,可通过http协议读取前面APK的下载地址的前两个字节,以判断该文件前两个字节是否符合APK文件的格式,过滤掉不满足条件的下载地址,通常情况下,APK文件前两个字节为PK。
S2、通过哈希算法对所述待下载APK的部分信息提取固定片段,作为该待下载APK的特征集;在获取到待下载APK的文件头部信息后,可通过SimHash算法对文件头部信息提起固定片段的内容做为特征集。
S3、将所述待下载APK的特征集与本地数据库已存的本地APK的特征集相匹配,若发现与所述待下载APK相同特征集的本地APK,则认为该待下载APK与本地数据库中的APK重复,不再下载所述待下载APK的全部内容。进一步地,若未发现与所述待下载APK相同特征集的本地APK,则认为该待下载APK与本地数据中的APK不重复,继续下载所述待下载APK的全部内容,并存储于所述本地数据库中。
如图2所示,在本发明第二实施方式中,应用于爬虫系统的APK下载去重的方法,其包括:
S1、获取外部服务器中待下载APK的部分信息,所述部分信息包括所述待下载APK的MF文件;一般,对于APK而言,MF文件具有唯一性,不同的APK是具有不同的MF文件的。进一步地,在本实施方式中,该部分信息为APK的文件头部信息,该文件头部信息为所述待下载APK的前1024字节内容。本实施方式中,通过获取待下载APK的文件头部信息,即可判断该待下载APK是否与本地数据库中的已存APK重复,避免了现有技术中需要下载APK全部 内容才能判断是否重复所带来的缺陷。当然,在此之前,可通过http协议读取前面APK的下载地址的前两个字节,以判断该文件前两个字节是否符合APK文件的格式,过滤掉不满足条件的下载地址,通常情况下,APK文件前两个字节为PK。
S2、计算所述待下载APK的MF文件的偏移量;该偏移量即是MF文件距离APK头部的距离。
S3、将所述待下载APK的MF文件的偏移量与本地数据库已存的本地APK的MF文件的偏移量相匹配,判断是否有与待下载APK的MF文件的偏移量相同的本地APK;若有,则进入S4步骤,若无,则进入S5步骤;
S4、将所述待下载APK的MF文件的哈希值与本地数据库已存的本地APK的MF文件的哈希值相匹配,判断是否有与待下载APK的MF文件的哈希值相同的本地APK;若有,则不再下载所述待下载APK的全部内容,若无,则进入S5步骤;进一步地,可先计算待下载APK的MF文件的哈希值,以和本地数据库中已存的本地APK的MF文件的哈希值相匹配,若具有相同的本地APK,则表示,MF文件的偏移量相同,同时MF文件的哈希值相同,如此,即代表待下载APK与本地数据库中已存的APK存在重复,不再继续下载该待下载APK的全部内容。
S5、下载所述待下载APK的全部内容。如果上述步骤中没有发现相同的本地APK,由于MF文件的唯一性,可代表待下载的APK与本地数据库中已存的APK不重复。那么,即可继续下载所述待下载APK的全部内容,并存入所述本地数据库。
如图3所示,在本发明第三实施方式中,应用于爬虫系统的APK下载去重的方法结合了本发明第一实施方式和第二实施方式,使得去重判断更为精确,该实施方式具体包括以下步骤:
S1、获取外部服务器中待下载APK的部分信息;进一步地,在本实施方式中,该部分信息为APK的文件头部信息,该文件头部信息为所述待下载APK的前1024字节内容。本实施方式中,通过获取待下载APK的文件头部 信息,即可判断该待下载APK是否与本地数据库中的已存APK重复,避免了现有技术中需要下载APK全部内容才能判断是否重复所带来的缺陷。当然,在此之前,可通过http协议读取前面APK的下载地址的前两个字节,以判断该文件前两个字节是否符合APK文件的格式,过滤掉不满足条件的下载地址,通常情况下,APK文件前两个字节为PK。
S2、通过哈希算法对所述待下载APK的部分信息提取固定片段,作为该待下载APK的特征集;在获取到待下载APK的文件头部信息后,可通过SimHash算法对文件头部信息提起固定片段的内容做为特征集。
S3、将所述待下载APK的特征集与本地数据库已存的本地APK的特征集相匹配,若未发现与所述待下载APK相同特征集的本地APK,则下载所述待下载APK的全部内容;若发现与所述待下载APK相同特征集的本地APK,则执行S4步骤;进一步地,若未发现与所述待下载APK相同特征集的本地APK,则认为该待下载APK与本地数据中的APK不重复,继续下载所述待下载APK的全部内容,并存储于所述本地数据库中。
S4、计算所述待下载APK的MF文件的偏移量;一般,对于APK而言,MF文件具有唯一性,不同的APK是具有不同的MF文件的。该偏移量即是MF文件距离APK头部的距离。
S5、将所述待下载APK的MF文件的偏移量与本地数据库已存的本地APK的MF文件的偏移量相匹配,判断是否有与待下载APK的MF文件的偏移量相同的本地APK;若有,则进入S6步骤,若无,则进入S7步骤;
S6、将所述待下载APK的MF文件的哈希值与本地数据库已存的本地APK的MF文件的哈希值相匹配,判断是否有与待下载APK的MF文件的哈希值相同的本地APK;若有,则不再下载所述待下载APK的全部内容,若无,则进入S7步骤;进一步地,可先计算待下载APK的MF文件的哈希值,以和本地数据库中已存的本地APK的MF文件的哈希值相匹配,若具有相同的本地APK,则表示,MF文件的偏移量相同,同时MF文件的哈希值相同,如此,即代表待下载APK与本地数据库中已存的APK存在重复,不再继续下载该待下载APK的 全部内容。
S7、下载所述待下载APK的全部内容。如果上述步骤中没有发现相同的本地APK,由于MF文件的唯一性,可代表待下载的APK与本地数据库中已存的APK不重复。那么,即可继续下载所述待下载APK的全部内容,并存入所述本地数据库。
在上述各个实施方式中,还可先获取外部服务器中对待下载APK的描述文本信息(例如,应用名、大小、类别(教育、旅游、商业等)、更新时间、证书等信息);再将所述待下载APK的描述文本信息与本地数据库中已存的本地APK的描述文本信息相匹配,若发现描述文本信息相同的本地APK,则执行后续步骤,若未发现描述文本信息相同的本地APK,则直接下载所述待下载APK的全部内容。
如图4所示,在本发明一实施方式中,应用于爬虫系统的APK下载去重的装置,包括下载模块100、计算模块200、判断模块300,以及用于存储已下载的APK的本地数据库。其可分别对应于上述的不同实施方式。
其中,所述装置对应于上述第一实施方式时,所述装置包括:
下载模块100,用于获取外部服务器中待下载APK的部分信息;进一步地,在本实施方式中,该部分信息为APK的文件头部信息,该文件头部信息为所述待下载APK的前1024字节内容。本实施方式中,通过获取待下载APK的文件头部信息,即可判断该待下载APK是否与本地数据库中的已存APK重复,避免了现有技术中需要下载APK全部内容才能判断是否重复所带来的缺陷。
当然,在此之前,可通过判断模块300根据http协议读取前面APK的下载地址的前两个字节,以判断该文件前两个字节是否符合APK文件的格式,过滤掉不满足条件的下载地址,通常情况下,APK文件前两个字节为PK。
计算模块200,用于通过哈希算法对所述待下载APK的部分信息提取固定片段,作为该待下载APK的特征集;在获取到待下载APK的文件头部信 息后,可通过SimHash算法对文件头部信息提起固定片段的内容做为特征集。
判断模块300,用于将所述待下载APK的特征集与本地数据库已存的本地APK的特征集相匹配,若发现与所述待下载APK相同特征集的本地APK,则认为该待下载APK与本地数据库中的APK重复,不再下载所述待下载APK的全部内容。进一步地,若未发现与所述待下载APK相同特征集的本地APK,则认为该待下载APK与本地数据中的APK不重复,继续通过下载模块100下载所述待下载APK的全部内容,并存储于所述本地数据库中。
所述装置对应于上述第二实施方式时,所述装置包括:
下载模块100,用于获取外部服务器中待下载APK的部分信息,所述部分信息包括所述待下载APK的MF文件;一般,对于APK而言,MF文件具有唯一性,不同的APK是具有不同的MF文件的。进一步地,在本实施方式中,该部分信息为APK的文件头部信息,该文件头部信息为所述待下载APK的前1024字节内容。本实施方式中,通过获取待下载APK的文件头部信息,即可判断该待下载APK是否与本地数据库中的已存APK重复,避免了现有技术中需要下载APK全部内容才能判断是否重复所带来的缺陷。
当然,在此之前,可通过判断模块300根据http协议读取前面APK的下载地址的前两个字节,以判断该文件前两个字节是否符合APK文件的格式,过滤掉不满足条件的下载地址,通常情况下,APK文件前两个字节为PK。
计算模块200,用于计算所述待下载APK的MF文件的偏移量;该偏移量即是MF文件距离APK头部的距离。
判断模块300,用于将所述待下载APK的MF文件的偏移量与本地数据库已存的本地APK的MF文件的偏移量相匹配,判断是否有与待下载APK的MF文件的偏移量相同的本地APK;
所述判断模块300还用于将所述待下载APK的MF文件的哈希值与本地数据库已存的本地APK的MF文件的哈希值相匹配,判断是否有与待下载APK的MF文件的哈希值相同的本地APK;若有,则不再下载所述待下载APK的全部内容,若无,则通过下载模块100下载所述待下载APK的全部内容;进一步 地,可先通过计算模块200计算待下载APK的MF文件的哈希值,以和本地数据库中已存的本地APK的MF文件的哈希值相匹配。若具有相同的本地APK,则表示,MF文件的偏移量相同,同时MF文件的哈希值相同,如此,即代表待下载APK与本地数据库中已存的APK存在重复,不再继续下载该待下载APK的全部内容。
所述下载模块100还用与下载所述待下载APK的全部内容。如果上述步骤中没有发现相同的本地APK,由于MF文件的唯一性,可代表待下载的APK与本地数据库中已存的APK不重复。那么,即可继续下载所述待下载APK的全部内容,并存入所述本地数据库。
所述装置对应于上述第三实施方式时,所述装置包括:
下载模块100,用于获取外部服务器中待下载APK的部分信息;进一步地,在本实施方式中,该部分信息为APK的文件头部信息,该文件头部信息为所述待下载APK的前1024字节内容。本实施方式中,通过获取待下载APK的文件头部信息,即可判断该待下载APK是否与本地数据库中的已存APK重复,避免了现有技术中需要下载APK全部内容才能判断是否重复所带来的缺陷。
当然,在此之前,可通过判断模块300根据http协议读取前面APK的下载地址的前两个字节,以判断该文件前两个字节是否符合APK文件的格式,过滤掉不满足条件的下载地址,通常情况下,APK文件前两个字节为PK。
计算模块200,用于通过哈希算法对所述待下载APK的部分信息提取固定片段,作为该待下载APK的特征集;在获取到待下载APK的文件头部信息后,可通过SimHash算法对文件头部信息提起固定片段的内容做为特征集。
判断模块300,用于将所述待下载APK的特征集与本地数据库已存的本地APK的特征集相匹配,若未发现与所述待下载APK相同特征集的本地APK,则通过所述下载模块100下载所述待下载APK的全部内容;若发现与所述待下载APK相同特征集的本地APK,则继续判断;进一步地,若未发现与所述待下 载APK相同特征集的本地APK,则认为该待下载APK与本地数据中的APK不重复,继续下载所述待下载APK的全部内容,并存储于所述本地数据库中。
所述计算模块200还用于,计算所述待下载APK的MF文件的偏移量;一般,对于APK而言,MF文件具有唯一性,不同的APK是具有不同的MF文件的。该偏移量即是MF文件距离APK头部的距离。
所述判断模块300还用于,将所述待下载APK的MF文件的偏移量与本地数据库已存的本地APK的MF文件的偏移量相匹配,判断是否有与待下载APK的MF文件的偏移量相同的本地APK;若有,则继续判断,若无,则通过下载模块100下载所述待下载APK的全部内容;
所述判断模块300还用于,将所述待下载APK的MF文件的哈希值与本地数据库已存的本地APK的MF文件的哈希值相匹配,判断是否有与待下载APK的MF文件的哈希值相同的本地APK;若有,则不再下载所述待下载APK的全部内容,若无,则通过下载模块100下载所述待下载APK的全部内容;进一步地,可先通过计算模块200计算待下载APK的MF文件的哈希值,以和本地数据库中已存的本地APK的MF文件的哈希值相匹配,若具有相同的本地APK,则表示,MF文件的偏移量相同,同时MF文件的哈希值相同,如此,即代表待下载APK与本地数据库中已存的APK存在重复,不再继续下载该待下载APK的全部内容。
所述下载模块100还用于下载所述待下载APK的全部内容。如果上述步骤中没有发现相同的本地APK,由于MF文件的唯一性,可代表待下载的APK与本地数据库中已存的APK不重复。那么,即可继续下载所述待下载APK的全部内容,并存入所述本地数据库。
在上述各个实施方式中,所述下载模块100还用于获取外部服务器中对待下载APK的描述文本信息(例如,应用名、大小、类别(教育、旅游、商业等)、更新时间、证书等信息);所述判断模块300还用于将所述待下载APK的描述文本信息与本地数据库中已存的本地APK的描述文本信息相匹配,若发现描述文本信息相同的本地APK,则执行后续步骤,若未发现描述 文本信息相同的本地APK,则直接通过所述下载模块100下载所述待下载APK的全部内容。
综上所述,本发明的有益效果是:减少了带宽资源的占用,提高了爬虫系统下载文件的速度,快速及时的给应用搜索和安全检测提供基础数据信息,改善了产品的响应速度,增加了用户体验、节省了公司成本。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施方式中的对应过程,在此不再赘述。
在本发明所提供的几个实施方式中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本发明各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以2个或2个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(processor)执行本发明各个实施方式所述方法的部分步骤。而前 述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施方式仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施方式对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施方式技术方案的精神和范围。

下载APK的去重方法及装置.pdf_第1页
第1页 / 共17页
下载APK的去重方法及装置.pdf_第2页
第2页 / 共17页
下载APK的去重方法及装置.pdf_第3页
第3页 / 共17页
点击查看更多>>
资源描述

《下载APK的去重方法及装置.pdf》由会员分享,可在线阅读,更多相关《下载APK的去重方法及装置.pdf(17页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN104077422A43申请公布日20141001CN104077422A21申请号201410350657022申请日20140722G06F17/3020060171申请人百度在线网络技术北京有限公司地址100085北京市海淀区上地十街10号百度大厦72发明人施敏夏良钊贾志军王磊74专利代理机构北京鸿德海业知识产权代理事务所普通合伙11412代理人袁媛54发明名称下载APK的去重方法及装置57摘要本发明提供一种下载APK的去重方法及装置,其中,所述方法包括获取外部服务器中待下载APK的部分信息;通过哈希算法对所述待下载APK的部分信息提取固定片段,作为该待下载APK的特征。

2、集;将所述待下载APK的特征集与本地数据库已存的本地APK的特征集相匹配,若发现与所述待下载APK相同特征集的本地APK,则不再下载所述待下载APK的全部内容。本发明的有益效果是减少了带宽资源的占用,提高了爬虫系统下载文件的速度,快速及时的给应用搜索和安全检测提供基础数据信息,改善了产品的响应速度,增加了用户体验、节省了公司成本。51INTCL权利要求书3页说明书9页附图4页19中华人民共和国国家知识产权局12发明专利申请权利要求书3页说明书9页附图4页10申请公布号CN104077422ACN104077422A1/3页21一种下载APK的去重方法,其特征在于,所述方法包括S1、获取外部服务。

3、器中待下载APK的部分信息;S2、通过哈希算法对所述待下载APK的部分信息提取固定片段,作为该待下载APK的特征集;S3、将所述待下载APK的特征集与本地数据库已存的本地APK的特征集相匹配,若发现与所述待下载APK相同特征集的本地APK,则不再下载所述待下载APK的全部内容。2根据权利要求1所述的下载APK的去重方法,其特征在于,所述部分信息为文件头部信息,所述文件头部信息为所述待下载APK的前1024字节内容。3一种下载APK的去重方法,其特征在于,所述方法包括S1、获取外部服务器中待下载APK的部分信息,所述部分信息包括所述待下载APK的MF文件;S2、计算所述待下载APK的MF文件的偏。

4、移量;S3、将所述待下载APK的MF文件的偏移量与本地数据库已存的本地APK的MF文件的偏移量相匹配,判断是否有与待下载APK的MF文件的偏移量相同的本地APK;若有,则进入S4步骤,若无,则进入S5步骤;S4、将所述待下载APK的MF文件的哈希值与本地数据库已存的本地APK的MF文件的哈希值相匹配,判断是否有与待下载APK的MF文件的哈希值相同的本地APK;若有,则不再下载所述待下载APK的全部内容,若无,则进入S5步骤;S5、下载所述待下载APK的全部内容。4根据权利要求3所述的下载APK的去重方法,其特征在于,所述部分信息为文件头部信息,所述文件头部信息为所述待下载APK的前1024字节。

5、内容。5一种下载APK的去重方法,其特征在于,所述方法包括S1、获取外部服务器中待下载APK的部分信息;S2、通过哈希算法对所述待下载APK的部分信息提取固定片段,作为该待下载APK的特征集;S3、将所述待下载APK的特征集与本地数据库已存的本地APK的特征集相匹配,若未发现与所述待下载APK相同特征集的本地APK,则下载所述待下载APK的全部内容;若发现与所述待下载APK相同特征集的本地APK,则执行S4步骤;S4、计算所述待下载APK的MF文件的偏移量;S5、将所述待下载APK的MF文件的偏移量与本地数据库已存的本地APK的MF文件的偏移量相匹配,判断是否有与待下载APK的MF文件的偏移量。

6、相同的本地APK;若有,则进入S6步骤,若无,则进入S7步骤;S6、将所述待下载APK的MF文件的哈希值与本地数据库已存的本地APK的MF文件的哈希值相匹配,判断是否有与待下载APK的MF文件的哈希值相同的本地APK;若有,则不再下载所述待下载APK的全部内容,若无,则进入S7步骤;S7、下载所述待下载APK的全部内容。6根据权利要求5所述的下载APK的去重方法,其特征在于,所述部分信息为文件头部信息,所述文件头部信息为所述待下载APK的前1024字节内容。7根据权利要求5所述的下载APK的去重方法,其特征在于,所述方法包括权利要求书CN104077422A2/3页3获取外部服务器中对待下载A。

7、PK的描述文本信息;将所述待下载APK的描述文本信息与本地数据库中已存的本地APK的描述文本信息相匹配,若发现描述文本信息相同的本地APK,则执行S1S7步骤,若未发现描述文本信息相同的本地APK,则直接下载所述待下载APK的全部内容。8一种下载APK的去重装置,其特征在于,所述装置包括下载模块,用于获取外部服务器中待下载APK的部分信息;计算模块,用于通过哈希算法对所述待下载APK的部分信息提取固定片段,作为该待下载APK的特征集;判断模块,用于将所述待下载APK的特征集与本地数据库已存的本地APK的特征集相匹配,若发现与所述待下载APK相同特征集的本地APK,则不再下载所述待下载APK的全。

8、部内容。9根据权利要求8所述的下载APK的去重装置,其特征在于,所述部分信息为文件头部信息,所述文件头部信息为所述待下载APK的前1024字节内容。10一种下载APK的去重装置,其特征在于,所述装置包括下载模块,用于获取外部服务器中待下载APK的部分信息,所述部分信息包括所述待下载APK的MF文件;计算模块,用于计算所述待下载APK的MF文件的偏移量;判断模块,用于将所述待下载APK的MF文件的偏移量与本地数据库已存的本地APK的MF文件的偏移量相匹配,判断是否有与待下载APK的MF文件的偏移量相同的本地APK;所述判断模块还用于,将所述待下载APK的MF文件的哈希值与本地数据库已存的本地AP。

9、K的MF文件的哈希值相匹配,判断是否有与待下载APK的MF文件的哈希值相同的本地APK;所述下载模块还用于当判断模块判断本地数据库中没有与待下载APK相同的本地APK时,下载所述待下载APK的全部内容。11根据权利要求10所述的下载APK的去重装置,其特征在于,所述部分信息为文件头部信息,所述文件头部信息为所述待下载APK的前1024字节内容。12一种下载APK的去重装置,其特征在于,所述装置包括下载模块,用于获取外部服务器中待下载APK的部分信息;计算模块,用于通过哈希算法对所述待下载APK的部分信息提取固定片段,作为该待下载APK的特征集,以及计算所述待下载APK的MF文件的偏移量;判断模。

10、块,用于将所述待下载APK的特征集与本地数据库已存的本地APK的特征集相匹配,若未发现与所述待下载APK相同特征集的本地APK,则下载所述待下载APK的全部内容;若发现与所述待下载APK相同特征集的本地APK,则将所述待下载APK的MF文件的偏移量与本地数据库已存的本地APK的MF文件的偏移量相匹配,判断是否有与待下载APK的MF文件的偏移量相同的本地APK;所述判断模块还用于,将所述待下载APK的MF文件的哈希值与本地数据库已存的本地APK的MF文件的哈希值相匹配,判断是否有与待下载APK的MF文件的哈希值相同的本地APK;所述下载模块还用于当判断模块判断本地数据库中没有与待下载APK相同的。

11、本地APK权利要求书CN104077422A3/3页4时,下载所述待下载APK的全部内容。13根据权利要求12所述的下载APK的去重装置,其特征在于,所述部分信息为文件头部信息,所述文件头部信息为所述待下载APK的前1024字节内容。14根据权利要求12所述的下载APK的去重装置,其特征在于,所述下载模块还用于,获取外部服务器中对待下载APK的描述文本信息;所述判断模块还用于,将所述待下载APK的描述文本信息与本地数据库中已存的本地APK的描述文本信息相匹配,若未发现描述文本信息相同的本地APK,则直接通过下载模块下载所述待下载APK的全部内容。权利要求书CN104077422A1/9页5下载。

12、APK的去重方法及装置技术领域0001本发明涉及一种下载APK的去重方法及装置,尤其涉及一种应用于爬虫系统的APK下载去重的方法及装置。背景技术0002为了满足用户各应用搜索需求,应用搜索引擎需要及时收集海量的应用样本进行数据分析和供用户下载。在应用搜索引擎中,爬虫系统需要快速收集海量的、来自不同应用商店APK文件,然而,不同应用商店中存在大量重复的APK文件,其会严重影响应用搜索引擎的搜索效率、推荐质量;并且,对于手机安全检测而言,大量重复的APK文件会降低安全检测的时效性;另外,大量重复APK文件的下载需要额外耗费大量的带宽和存储,造成大量的资金浪费。发明内容0003本发明的目的之一在于提。

13、供一种下载APK的去重方法及装置。0004为实现上述发明目的之一,本发明一实施方式提供了一种下载APK的去重方法,其包括0005S1、获取外部服务器中待下载APK的部分信息;0006S2、通过哈希算法对所述待下载APK的部分信息提取固定片段,作为该待下载APK的特征集;0007S3、将所述待下载APK的特征集与本地数据库已存的本地APK的特征集相匹配,若发现与所述待下载APK相同特征集的本地APK,则不再下载所述待下载APK的全部内容。0008作为本发明的进一步改进,所述部分信息为文件头部信息,所述文件头部信息为所述待下载APK的前1024字节内容。0009为实现上述发明目的之一,本发明一实施。

14、方式提供了一种下载APK的去重方法,其包括0010S1、获取外部服务器中待下载APK的部分信息,所述部分信息包括所述待下载APK的MF文件;0011S2、计算所述待下载APK的MF文件的偏移量;0012S3、将所述待下载APK的MF文件的偏移量与本地数据库已存的本地APK的MF文件的偏移量相匹配,判断是否有与待下载APK的MF文件的偏移量相同的本地APK;若有,则进入S4步骤,若无,则进入S5步骤;0013S4、将所述待下载APK的MF文件的哈希值与本地数据库已存的本地APK的MF文件的哈希值相匹配,判断是否有与待下载APK的MF文件的哈希值相同的本地APK;若有,则不再下载所述待下载APK的。

15、全部内容,若无,则进入S5步骤;0014S5、下载所述待下载APK的全部内容。0015作为本发明的进一步改进,所述部分信息为文件头部信息,所述文件头部信息为说明书CN104077422A2/9页6所述待下载APK的前1024字节内容。0016为实现上述发明目的之一,本发明一实施方式提供了一种下载APK的去重方法,其包括0017S1、获取外部服务器中待下载APK的部分信息;0018S2、通过哈希算法对所述待下载APK的部分信息提取固定片段,作为该待下载APK的特征集;0019S3、将所述待下载APK的特征集与本地数据库已存的本地APK的特征集相匹配,若未发现与所述待下载APK相同特征集的本地AP。

16、K,则下载所述待下载APK的全部内容;若发现与所述待下载APK相同特征集的本地APK,则执行S4步骤;0020S4、计算所述待下载APK的MF文件的偏移量;0021S5、将所述待下载APK的MF文件的偏移量与本地数据库已存的本地APK的MF文件的偏移量相匹配,判断是否有与待下载APK的MF文件的偏移量相同的本地APK;若有,则进入S6步骤,若无,则进入S7步骤;0022S6、将所述待下载APK的MF文件的哈希值与本地数据库已存的本地APK的MF文件的哈希值相匹配,判断是否有与待下载APK的MF文件的哈希值相同的本地APK;若有,则不再下载所述待下载APK的全部内容,若无,则进入S7步骤;002。

17、3S7、下载所述待下载APK的全部内容。0024作为本发明的进一步改进,所述部分信息为文件头部信息,所述文件头部信息为所述待下载APK的前1024字节内容。0025作为本发明的进一步改进,所述方法包括0026获取外部服务器中对待下载APK的描述文本信息;0027将所述待下载APK的描述文本信息与本地数据库中已存的本地APK的描述文本信息相匹配,若发现描述文本信息相同的本地APK,则执行S1S7步骤,若未发现描述文本信息相同的本地APK,则直接下载所述待下载APK的全部内容。0028为实现上述发明目的之一,本发明一实施方式提供了一种下载APK的去重装置,其包括0029下载模块,用于获取外部服务器。

18、中待下载APK的部分信息;0030计算模块,用于通过哈希算法对所述待下载APK的部分信息提取固定片段,作为该待下载APK的特征集;0031判断模块,用于将所述待下载APK的特征集与本地数据库已存的本地APK的特征集相匹配,若发现与所述待下载APK相同特征集的本地APK,则不再下载所述待下载APK的全部内容。0032作为本发明的进一步改进,所述部分信息为文件头部信息,所述文件头部信息为所述待下载APK的前1024字节内容。0033为实现上述发明目的之一,本发明一实施方式提供了一种下载APK的去重装置,其包括0034下载模块,用于获取外部服务器中待下载APK的部分信息,所述部分信息包括所述待下载A。

19、PK的MF文件;0035计算模块,用于计算所述待下载APK的MF文件的偏移量;说明书CN104077422A3/9页70036判断模块,用于将所述待下载APK的MF文件的偏移量与本地数据库已存的本地APK的MF文件的偏移量相匹配,判断是否有与待下载APK的MF文件的偏移量相同的本地APK;0037所述判断模块还用于,将所述待下载APK的MF文件的哈希值与本地数据库已存的本地APK的MF文件的哈希值相匹配,判断是否有与待下载APK的MF文件的哈希值相同的本地APK;0038所述下载模块还用于当判断模块判断本地数据库中没有与待下载APK相同的本地APK时,下载所述待下载APK的全部内容。0039作。

20、为本发明的进一步改进,所述部分信息为文件头部信息,所述文件头部信息为所述待下载APK的前1024字节内容。0040为实现上述发明目的之一,本发明一实施方式提供了一种下载APK的去重装置,其包括0041下载模块,用于获取外部服务器中待下载APK的部分信息;0042计算模块,用于通过哈希算法对所述待下载APK的部分信息提取固定片段,作为该待下载APK的特征集,以及计算所述待下载APK的MF文件的偏移量;0043判断模块,用于将所述待下载APK的特征集与本地数据库已存的本地APK的特征集相匹配,若未发现与所述待下载APK相同特征集的本地APK,则下载所述待下载APK的全部内容;若发现与所述待下载AP。

21、K相同特征集的本地APK,则将所述待下载APK的MF文件的偏移量与本地数据库已存的本地APK的MF文件的偏移量相匹配,判断是否有与待下载APK的MF文件的偏移量相同的本地APK;0044所述判断模块还用于,将所述待下载APK的MF文件的哈希值与本地数据库已存的本地APK的MF文件的哈希值相匹配,判断是否有与待下载APK的MF文件的哈希值相同的本地APK;0045所述下载模块还用于当判断模块判断本地数据库中没有与待下载APK相同的本地APK时,下载所述待下载APK的全部内容。0046作为本发明的进一步改进,所述部分信息为文件头部信息,所述文件头部信息为所述待下载APK的前1024字节内容。004。

22、7作为本发明的进一步改进,所述下载模块还用于,获取外部服务器中对待下载APK的描述文本信息;0048所述判断模块还用于,将所述待下载APK的描述文本信息与本地数据库中已存的本地APK的描述文本信息相匹配,若未发现描述文本信息相同的本地APK,则直接通过下载模块下载所述待下载APK的全部内容。0049与现有技术相比,本发明的有益效果是减少了带宽资源的占用,提高了爬虫系统下载文件的速度,快速及时的给应用搜索和安全检测提供基础数据信息,改善了产品的响应速度,增加了用户体验、节省了公司成本。附图说明0050图1是本发明第一实施方式的下载APK的去重方法的流程图;0051图2是本发明第二实施方式的下载A。

23、PK的去重方法的流程图;说明书CN104077422A4/9页80052图3是本发明第三实施方式的下载APK的去重方法的流程图;0053图4是本发明一实施方式的下载APK的去重装置的模块图。具体实施方式0054以下将结合附图所示的各实施方式对本发明进行详细描述。但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所轻易做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。0055爬虫系统可爬取外部服务器应用商店的APK信息,包括应用名、大小、类型、更新时间、证书、MF文件的偏移量、MD5等,并将爬取到的APK数据存入本地数据库。0056如图1所示,在本发明第一实施方式中,应。

24、用于爬虫系统的APK下载去重的方法,其包括0057S1、获取外部服务器中待下载APK的部分信息;进一步地,在本实施方式中,该部分信息为APK的文件头部信息,该文件头部信息为所述待下载APK的前1024字节内容。本实施方式中,通过获取待下载APK的文件头部信息,即可判断该待下载APK是否与本地数据库中的已存APK重复,避免了现有技术中需要下载APK全部内容才能判断是否重复所带来的缺陷。当然,在此之前,可通过HTTP协议读取前面APK的下载地址的前两个字节,以判断该文件前两个字节是否符合APK文件的格式,过滤掉不满足条件的下载地址,通常情况下,APK文件前两个字节为PK。0058S2、通过哈希算法。

25、对所述待下载APK的部分信息提取固定片段,作为该待下载APK的特征集;在获取到待下载APK的文件头部信息后,可通过SIMHASH算法对文件头部信息提起固定片段的内容做为特征集。0059S3、将所述待下载APK的特征集与本地数据库已存的本地APK的特征集相匹配,若发现与所述待下载APK相同特征集的本地APK,则认为该待下载APK与本地数据库中的APK重复,不再下载所述待下载APK的全部内容。进一步地,若未发现与所述待下载APK相同特征集的本地APK,则认为该待下载APK与本地数据中的APK不重复,继续下载所述待下载APK的全部内容,并存储于所述本地数据库中。0060如图2所示,在本发明第二实施方。

26、式中,应用于爬虫系统的APK下载去重的方法,其包括0061S1、获取外部服务器中待下载APK的部分信息,所述部分信息包括所述待下载APK的MF文件;一般,对于APK而言,MF文件具有唯一性,不同的APK是具有不同的MF文件的。进一步地,在本实施方式中,该部分信息为APK的文件头部信息,该文件头部信息为所述待下载APK的前1024字节内容。本实施方式中,通过获取待下载APK的文件头部信息,即可判断该待下载APK是否与本地数据库中的已存APK重复,避免了现有技术中需要下载APK全部内容才能判断是否重复所带来的缺陷。当然,在此之前,可通过HTTP协议读取前面APK的下载地址的前两个字节,以判断该文件。

27、前两个字节是否符合APK文件的格式,过滤掉不满足条件的下载地址,通常情况下,APK文件前两个字节为PK。0062S2、计算所述待下载APK的MF文件的偏移量;该偏移量即是MF文件距离APK头部的距离。0063S3、将所述待下载APK的MF文件的偏移量与本地数据库已存的本地APK的MF文说明书CN104077422A5/9页9件的偏移量相匹配,判断是否有与待下载APK的MF文件的偏移量相同的本地APK;若有,则进入S4步骤,若无,则进入S5步骤;0064S4、将所述待下载APK的MF文件的哈希值与本地数据库已存的本地APK的MF文件的哈希值相匹配,判断是否有与待下载APK的MF文件的哈希值相同的。

28、本地APK;若有,则不再下载所述待下载APK的全部内容,若无,则进入S5步骤;进一步地,可先计算待下载APK的MF文件的哈希值,以和本地数据库中已存的本地APK的MF文件的哈希值相匹配,若具有相同的本地APK,则表示,MF文件的偏移量相同,同时MF文件的哈希值相同,如此,即代表待下载APK与本地数据库中已存的APK存在重复,不再继续下载该待下载APK的全部内容。0065S5、下载所述待下载APK的全部内容。如果上述步骤中没有发现相同的本地APK,由于MF文件的唯一性,可代表待下载的APK与本地数据库中已存的APK不重复。那么,即可继续下载所述待下载APK的全部内容,并存入所述本地数据库。006。

29、6如图3所示,在本发明第三实施方式中,应用于爬虫系统的APK下载去重的方法结合了本发明第一实施方式和第二实施方式,使得去重判断更为精确,该实施方式具体包括以下步骤0067S1、获取外部服务器中待下载APK的部分信息;进一步地,在本实施方式中,该部分信息为APK的文件头部信息,该文件头部信息为所述待下载APK的前1024字节内容。本实施方式中,通过获取待下载APK的文件头部信息,即可判断该待下载APK是否与本地数据库中的已存APK重复,避免了现有技术中需要下载APK全部内容才能判断是否重复所带来的缺陷。当然,在此之前,可通过HTTP协议读取前面APK的下载地址的前两个字节,以判断该文件前两个字节。

30、是否符合APK文件的格式,过滤掉不满足条件的下载地址,通常情况下,APK文件前两个字节为PK。0068S2、通过哈希算法对所述待下载APK的部分信息提取固定片段,作为该待下载APK的特征集;在获取到待下载APK的文件头部信息后,可通过SIMHASH算法对文件头部信息提起固定片段的内容做为特征集。0069S3、将所述待下载APK的特征集与本地数据库已存的本地APK的特征集相匹配,若未发现与所述待下载APK相同特征集的本地APK,则下载所述待下载APK的全部内容;若发现与所述待下载APK相同特征集的本地APK,则执行S4步骤;进一步地,若未发现与所述待下载APK相同特征集的本地APK,则认为该待下。

31、载APK与本地数据中的APK不重复,继续下载所述待下载APK的全部内容,并存储于所述本地数据库中。0070S4、计算所述待下载APK的MF文件的偏移量;一般,对于APK而言,MF文件具有唯一性,不同的APK是具有不同的MF文件的。该偏移量即是MF文件距离APK头部的距离。0071S5、将所述待下载APK的MF文件的偏移量与本地数据库已存的本地APK的MF文件的偏移量相匹配,判断是否有与待下载APK的MF文件的偏移量相同的本地APK;若有,则进入S6步骤,若无,则进入S7步骤;0072S6、将所述待下载APK的MF文件的哈希值与本地数据库已存的本地APK的MF文件的哈希值相匹配,判断是否有与待下。

32、载APK的MF文件的哈希值相同的本地APK;若有,则不再下载所述待下载APK的全部内容,若无,则进入S7步骤;进一步地,可先计算待下载APK的MF文件的哈希值,以和本地数据库中已存的本地APK的MF文件的哈希值相匹配,若具有相同的本地APK,则表示,MF文件的偏移量相同,同时MF文件的哈希值相同,如此,即代表待说明书CN104077422A6/9页10下载APK与本地数据库中已存的APK存在重复,不再继续下载该待下载APK的全部内容。0073S7、下载所述待下载APK的全部内容。如果上述步骤中没有发现相同的本地APK,由于MF文件的唯一性,可代表待下载的APK与本地数据库中已存的APK不重复。。

33、那么,即可继续下载所述待下载APK的全部内容,并存入所述本地数据库。0074在上述各个实施方式中,还可先获取外部服务器中对待下载APK的描述文本信息例如,应用名、大小、类别教育、旅游、商业等、更新时间、证书等信息;再将所述待下载APK的描述文本信息与本地数据库中已存的本地APK的描述文本信息相匹配,若发现描述文本信息相同的本地APK,则执行后续步骤,若未发现描述文本信息相同的本地APK,则直接下载所述待下载APK的全部内容。0075如图4所示,在本发明一实施方式中,应用于爬虫系统的APK下载去重的装置,包括下载模块100、计算模块200、判断模块300,以及用于存储已下载的APK的本地数据库。。

34、其可分别对应于上述的不同实施方式。0076其中,所述装置对应于上述第一实施方式时,所述装置包括0077下载模块100,用于获取外部服务器中待下载APK的部分信息;进一步地,在本实施方式中,该部分信息为APK的文件头部信息,该文件头部信息为所述待下载APK的前1024字节内容。本实施方式中,通过获取待下载APK的文件头部信息,即可判断该待下载APK是否与本地数据库中的已存APK重复,避免了现有技术中需要下载APK全部内容才能判断是否重复所带来的缺陷。0078当然,在此之前,可通过判断模块300根据HTTP协议读取前面APK的下载地址的前两个字节,以判断该文件前两个字节是否符合APK文件的格式,过。

35、滤掉不满足条件的下载地址,通常情况下,APK文件前两个字节为PK。0079计算模块200,用于通过哈希算法对所述待下载APK的部分信息提取固定片段,作为该待下载APK的特征集;在获取到待下载APK的文件头部信息后,可通过SIMHASH算法对文件头部信息提起固定片段的内容做为特征集。0080判断模块300,用于将所述待下载APK的特征集与本地数据库已存的本地APK的特征集相匹配,若发现与所述待下载APK相同特征集的本地APK,则认为该待下载APK与本地数据库中的APK重复,不再下载所述待下载APK的全部内容。进一步地,若未发现与所述待下载APK相同特征集的本地APK,则认为该待下载APK与本地数。

36、据中的APK不重复,继续通过下载模块100下载所述待下载APK的全部内容,并存储于所述本地数据库中。0081所述装置对应于上述第二实施方式时,所述装置包括0082下载模块100,用于获取外部服务器中待下载APK的部分信息,所述部分信息包括所述待下载APK的MF文件;一般,对于APK而言,MF文件具有唯一性,不同的APK是具有不同的MF文件的。进一步地,在本实施方式中,该部分信息为APK的文件头部信息,该文件头部信息为所述待下载APK的前1024字节内容。本实施方式中,通过获取待下载APK的文件头部信息,即可判断该待下载APK是否与本地数据库中的已存APK重复,避免了现有技术中需要下载APK全部。

37、内容才能判断是否重复所带来的缺陷。0083当然,在此之前,可通过判断模块300根据HTTP协议读取前面APK的下载地址的前两个字节,以判断该文件前两个字节是否符合APK文件的格式,过滤掉不满足条件的下载地址,通常情况下,APK文件前两个字节为PK。说明书CN104077422A107/9页110084计算模块200,用于计算所述待下载APK的MF文件的偏移量;该偏移量即是MF文件距离APK头部的距离。0085判断模块300,用于将所述待下载APK的MF文件的偏移量与本地数据库已存的本地APK的MF文件的偏移量相匹配,判断是否有与待下载APK的MF文件的偏移量相同的本地APK;0086所述判断模。

38、块300还用于将所述待下载APK的MF文件的哈希值与本地数据库已存的本地APK的MF文件的哈希值相匹配,判断是否有与待下载APK的MF文件的哈希值相同的本地APK;若有,则不再下载所述待下载APK的全部内容,若无,则通过下载模块100下载所述待下载APK的全部内容;进一步地,可先通过计算模块200计算待下载APK的MF文件的哈希值,以和本地数据库中已存的本地APK的MF文件的哈希值相匹配。若具有相同的本地APK,则表示,MF文件的偏移量相同,同时MF文件的哈希值相同,如此,即代表待下载APK与本地数据库中已存的APK存在重复,不再继续下载该待下载APK的全部内容。0087所述下载模块100还用。

39、与下载所述待下载APK的全部内容。如果上述步骤中没有发现相同的本地APK,由于MF文件的唯一性,可代表待下载的APK与本地数据库中已存的APK不重复。那么,即可继续下载所述待下载APK的全部内容,并存入所述本地数据库。0088所述装置对应于上述第三实施方式时,所述装置包括0089下载模块100,用于获取外部服务器中待下载APK的部分信息;进一步地,在本实施方式中,该部分信息为APK的文件头部信息,该文件头部信息为所述待下载APK的前1024字节内容。本实施方式中,通过获取待下载APK的文件头部信息,即可判断该待下载APK是否与本地数据库中的已存APK重复,避免了现有技术中需要下载APK全部内容。

40、才能判断是否重复所带来的缺陷。0090当然,在此之前,可通过判断模块300根据HTTP协议读取前面APK的下载地址的前两个字节,以判断该文件前两个字节是否符合APK文件的格式,过滤掉不满足条件的下载地址,通常情况下,APK文件前两个字节为PK。0091计算模块200,用于通过哈希算法对所述待下载APK的部分信息提取固定片段,作为该待下载APK的特征集;在获取到待下载APK的文件头部信息后,可通过SIMHASH算法对文件头部信息提起固定片段的内容做为特征集。0092判断模块300,用于将所述待下载APK的特征集与本地数据库已存的本地APK的特征集相匹配,若未发现与所述待下载APK相同特征集的本地。

41、APK,则通过所述下载模块100下载所述待下载APK的全部内容;若发现与所述待下载APK相同特征集的本地APK,则继续判断;进一步地,若未发现与所述待下载APK相同特征集的本地APK,则认为该待下载APK与本地数据中的APK不重复,继续下载所述待下载APK的全部内容,并存储于所述本地数据库中。0093所述计算模块200还用于,计算所述待下载APK的MF文件的偏移量;一般,对于APK而言,MF文件具有唯一性,不同的APK是具有不同的MF文件的。该偏移量即是MF文件距离APK头部的距离。0094所述判断模块300还用于,将所述待下载APK的MF文件的偏移量与本地数据库已存的本地APK的MF文件的偏。

42、移量相匹配,判断是否有与待下载APK的MF文件的偏移量相同的本地APK;若有,则继续判断,若无,则通过下载模块100下载所述待下载APK的全部内说明书CN104077422A118/9页12容;0095所述判断模块300还用于,将所述待下载APK的MF文件的哈希值与本地数据库已存的本地APK的MF文件的哈希值相匹配,判断是否有与待下载APK的MF文件的哈希值相同的本地APK;若有,则不再下载所述待下载APK的全部内容,若无,则通过下载模块100下载所述待下载APK的全部内容;进一步地,可先通过计算模块200计算待下载APK的MF文件的哈希值,以和本地数据库中已存的本地APK的MF文件的哈希值相。

43、匹配,若具有相同的本地APK,则表示,MF文件的偏移量相同,同时MF文件的哈希值相同,如此,即代表待下载APK与本地数据库中已存的APK存在重复,不再继续下载该待下载APK的全部内容。0096所述下载模块100还用于下载所述待下载APK的全部内容。如果上述步骤中没有发现相同的本地APK,由于MF文件的唯一性,可代表待下载的APK与本地数据库中已存的APK不重复。那么,即可继续下载所述待下载APK的全部内容,并存入所述本地数据库。0097在上述各个实施方式中,所述下载模块100还用于获取外部服务器中对待下载APK的描述文本信息例如,应用名、大小、类别教育、旅游、商业等、更新时间、证书等信息;所述。

44、判断模块300还用于将所述待下载APK的描述文本信息与本地数据库中已存的本地APK的描述文本信息相匹配,若发现描述文本信息相同的本地APK,则执行后续步骤,若未发现描述文本信息相同的本地APK,则直接通过所述下载模块100下载所述待下载APK的全部内容。0098综上所述,本发明的有益效果是减少了带宽资源的占用,提高了爬虫系统下载文件的速度,快速及时的给应用搜索和安全检测提供基础数据信息,改善了产品的响应速度,增加了用户体验、节省了公司成本。0099所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施方式中的对应过程,在此不再赘述。

45、。0100在本发明所提供的几个实施方式中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。0101所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到。

46、多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。0102另外,在本发明各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以2个或2个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。0103上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置可以是个人计算机,服务器,或者网络装置等或处理器PROCESSOR执行本发明各个实施方式所述方法的部分步骤。而前述的存储介质包。

47、括U盘、移动硬盘、只读存储器说明书CN104077422A129/9页13READONLYMEMORY,ROM、随机存取存储器RANDOMACCESSMEMORY,RAM、磁碟或者光盘等各种可以存储程序代码的介质。0104最后应说明的是以上实施方式仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施方式对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施方式技术方案的精神和范围。说明书CN104077422A131/4页14图1说明书附图CN104077422A142/4页15图2说明书附图CN104077422A153/4页16图3说明书附图CN104077422A164/4页17图4说明书附图CN104077422A17。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1