CN105677730A - 一种读取网页资源的方法、装置及电子设备 - Google Patents

一种读取网页资源的方法、装置及电子设备 Download PDF

Info

Publication number
CN105677730A
CN105677730A CN201511016708.7A CN201511016708A CN105677730A CN 105677730 A CN105677730 A CN 105677730A CN 201511016708 A CN201511016708 A CN 201511016708A CN 105677730 A CN105677730 A CN 105677730A
Authority
CN
China
Prior art keywords
resource
webpage
character string
unit
file
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.)
Granted
Application number
CN201511016708.7A
Other languages
English (en)
Other versions
CN105677730B (zh
Inventor
徐光圣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Kingsoft Internet Security Software Co Ltd
Original Assignee
Beijing Kingsoft Internet Security Software Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Kingsoft Internet Security Software Co Ltd filed Critical Beijing Kingsoft Internet Security Software Co Ltd
Priority to CN201511016708.7A priority Critical patent/CN105677730B/zh
Publication of CN105677730A publication Critical patent/CN105677730A/zh
Application granted granted Critical
Publication of CN105677730B publication Critical patent/CN105677730B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明的实施例公开一种读取网页资源的方法、装置及电子设备。方法包括:获取待抓取网页资源的加载状态;如果加载状态为加载完毕,获取待抓取网页资源的URL信息;依据构建当前网页的应用程序的包名,获取包名映射的资源缓存文件路径;利用安全哈希算法对统一资源定位符信息进行计算得到摘要字符串;提取预先设定位数的字符串,得到待编辑字符串,按照转换策略对待编辑字符串进行转换,生成候选网页资源文件集;遍历获取的资源缓存文件路径下的文件,获取与候选网页资源文件集中任一候选网页资源文件相匹配的文件,并从中得到URL信息对应的网页资源文件,读取所述网页资源文件。应用本发明,可以提升网络资源利用效率。

Description

一种读取网页资源的方法、装置及电子设备
技术领域
本发明涉及计算机网络资源技术,尤其涉及一种读取网页资源的方法、装置及电子设备。
背景技术
随着计算机通信以及互联网技术,电子设备的应用越来越普遍,例如,智能移动电话、个人数字助理、掌上电脑以及台式机电脑得到了越来越广泛的应用,安装在电子设备中的各类应用程序(APP,Application)以及浏览器控件也越来越多,用以满足用户对业务多样性的需求。其中,浏览器控件是电子设备中安装的浏览器不可或缺的网络工具,例如,基于Windows操作系统浏览器的页面浏览器控件(Webbrowser),基于安卓(Android)操作系统浏览器以及苹果的移动操作系统(iOS)浏览器的网络视图控件(Webview)等,不同操作系统的浏览器控件实现的功能相类似,只是引擎以及具体实现上不同。其中,Webview作为Android操作系统中自带的加载、渲染、展示网页的基础组件,应用较为广泛。
Webview加载展示网页的简要流程如下:接收用户的网页加载请求,首先,通过网络从云端服务器获取网页加载请求对应的网络资源,缓存至本地存储器中,其中,网络资源采用代码编辑的方式,然后,解析缓存的网络资源,获取待加载网页元素,将获取的待加载网页元素渲染至待展示网页中并展示渲染的网页,直至所有的待加载网页元素在待展示网页中渲染完毕,得到用于用户浏览的网页。
随着用户对应用功能的多样化需求,用户在浏览网页的过程中,如果发现较好的网页资源,例如,图片资源、音频资源、视频资源以及动画资源等,期望抓取(读取)该类网页资源以便于进行后续处理,例如,进行编辑或存储该网页资源,可以通过点击该网页资源获取该网页资源的统一资源定位符信息,从而触发按照统一资源定位符信息从云端服务器下载。但该从当前已加载的网页中获取网页资源的方法,需要再次通过网络将需要抓取的网页资源下载并保存到本地存储器,从而导致资源的重复下载,不仅耗费了用户的网络流量,增加了用户抓取网页资源所需的时间,也降低了网络的资源利用效率。
发明内容
有鉴于此,本发明实施例提供一种读取网页资源的方法、装置及电子设备,降低用户抓取网页资源所需的时间,提升网络资源的利用效率。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明实施例提供一种读取网页资源的方法,应用于安卓操作系统6.x版本的网络视图控件,包括:
接收网页资源抓取请求,获取所述网页抓取请求对应的待抓取网页资源的加载状态;
如果所述待抓取网页资源的加载状态为加载完毕,获取所述待抓取网页资源的统一资源定位符信息;
依据构建当前网页的应用程序的包名,获取所述包名映射的资源缓存文件路径;
利用安全哈希算法对所述待抓取网页资源的统一资源定位符信息进行计算,得到所述待抓取网页资源的摘要字符串;
提取所述摘要字符串中预先设定位数的字符串,得到待编辑字符串,按照预先设置的转换策略对所述待编辑字符串进行转换,生成候选网页资源文件集;
遍历获取的所述资源缓存文件路径下的文件,获取与所述候选网页资源文件集中任一候选网页资源文件相匹配的文件,从相匹配的文件中,选取文件大小最大的文件,得到所述待抓取网页资源的统一资源定位符信息对应的网页资源文件,读取所述网页资源文件。
可选的,所述接收网页资源抓取请求,获取所述网页抓取请求对应的待抓取网页资源的加载状态包括:
在网络视图控件中注入预先设置的抓取监听事件;
在所述网络视图控件加载网页时,触发启动所述抓取监听事件以监听网页资源抓取请求;
在监听到网页资源抓取请求后,获取所述网页抓取请求对应的待抓取网页资源的加载状态。
可选的,所述待抓取网页资源的摘要字符串为十六进制的字符串,提取所述摘要字符串中预先设定位数的字符串,得到待编辑字符串,按照预先设置的转换策略对所述待编辑字符串进行转换,生成候选网页资源文件集包括:
提取十六进制的所述摘要字符串中的前十六位字符,得到字符串序列;
以两位字符为单位,对所述字符串序列进行划分;
按照从序尾至序首的顺序,依次提取进行单位划分的字符串序列中的单位字符串,生成逆序单位字符串;
分别在生成的逆序单位字符串后再拼接上预先设置的字符集,生成所述候选网页资源文件集。
可选的,所述待抓取网页资源的摘要字符串为二进制的字符串,提取所述摘要字符串中预先设定位数的字符串,得到待编辑字符串,按照预先设置的转换策略对所述待编辑字符串进行转换,生成候选网页资源文件集包括:
提取二进制的所述摘要字符串中的前六十四位字符,得到字符串序列;
以八位为单位,对所述字符串序列进行划分;
按照从序尾至序首的顺序,依次提取进行单位划分的字符串序列中的单位字符串,生成逆序单位字符串;
将所述逆序单位字符串转换为十六进制字符串序列;
分别在所述十六进制字符串序列后再拼接上预先设置的字符集,生成所述候选网页资源文件集。
可选的,在所述得到所述待抓取网页资源的摘要字符串之后,所述方法还包括:
判断所述待抓取网页资源的摘要字符串是否为十六进制,如果不是,将所述待抓取网页资源的摘要字符串转换为十六进制的字符串。
可选的,所述资源缓存文件路径为:/data/data/a.b.c/cache/org.chromium.android_webview,其中,a.b.c为所述包名。
可选的,所述网页资源包括:图片资源、音频资源、视频资源以及动画资源中的一种或其任意组合。
第二方面,本发明实施例提供一种读取网页资源的装置,应用于安卓操作系统6.x版本的网络视图控件,包括:网页资源状态获取模块、统一资源定位符信息获取模块、文件路径获取模块、哈希计算模块、候选文件集获取模块以及网页资源定位模块,其中,
网页资源状态获取模块,用于接收网页资源抓取请求,获取所述网页抓取请求对应的待抓取网页资源的加载状态;
统一资源定位符信息获取模块,如果所述待抓取网页资源的加载状态为加载完毕,获取所述待抓取网页资源的统一资源定位符信息;
文件路径获取模块,用于依据构建当前网页的应用程序的包名,获取所述包名映射的资源缓存文件路径;
哈希计算模块,用于利用安全哈希算法对所述待抓取网页资源的统一资源定位符信息进行计算,得到所述待抓取网页资源的摘要字符串;
候选文件集获取模块,用于提取所述摘要字符串中预先设定位数的字符串,得到待编辑字符串,按照预先设置的转换策略对所述待编辑字符串进行转换,生成候选网页资源文件集;
网页资源定位模块,用于遍历获取的所述资源缓存文件路径下的文件,获取与所述候选网页资源文件集中任一候选网页资源文件相匹配的文件,从相匹配的文件中,选取文件大小最大的文件,得到所述待抓取网页资源的统一资源定位符信息对应的网页资源文件,读取所述网页资源文件。
可选的,所述网页资源状态获取模块包括:注入单元、监听单元以及网页资源状态获取单元,其中,
注入单元,用于在网络视图控件中注入预先设置的抓取监听事件;
监听单元,用于在所述网络视图控件加载网页时,触发启动所述抓取监听事件以监听网页资源抓取请求;
网页资源状态获取单元,用于在监听到网页资源抓取请求后,获取所述网页抓取请求对应的待抓取网页资源的加载状态。
可选的,所述待抓取网页资源的摘要字符串为十六进制的字符串,所述候选文件集获取模块包括:第一提取单元、第一划分单元、第一逆序单元以及第一候选文件集生成单元,其中,
第一提取单元,用于提取十六进制的所述摘要字符串中的前十六位字符,得到字符串序列;
第一划分单元,用于以两位字符为单位,对所述字符串序列进行划分;
第一逆序单元,用于按照从序尾至序首的顺序,依次提取进行单位划分的字符串序列中的单位字符串,生成逆序单位字符串;
第一候选文件集生成单元,用于分别在生成的逆序单位字符串后再拼接上预先设置的字符集,生成所述候选网页资源文件集。
可选的,所述待抓取网页资源的摘要字符串为二进制的字符串,所述候选文件集获取模块包括:第二提取单元、第二划分单元、第二逆序单元、转换单元以及第二候选文件集生成单元,其中,
第二提取单元,用于提取二进制的所述摘要字符串中的前六十四位字符,得到字符串序列;
第二划分单元,用于以八位为单位,对所述字符串序列进行划分;
第二逆序单元,用于按照从序尾至序首的顺序,依次提取进行单位划分的字符串序列中的单位字符串,生成逆序单位字符串;
转换单元,用于将所述逆序单位字符串转换为十六进制字符串序列;
第二候选文件集生成单元,用于分别在所述十六进制字符串序列后再拼接上预先设置的字符集,生成所述候选网页资源文件集。
可选的,所述装置还包括:
进制转换模块,用于判断所述待抓取网页资源的摘要字符串是否为十六进制,如果不是,将所述待抓取网页资源的摘要字符串转换为十六进制的字符串。
可选的,所述资源缓存文件路径为:/data/data/a.b.c/cache/org.chromium.android_webview,其中,a.b.c为所述包名。
可选的,所述网页资源包括:图片资源、音频资源、视频资源以及动画资源中的一种或其任意组合。
第三方面,本发明实施例提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一所述的读取网页资源的方法。
本发明实施例提供的读取网页资源的方法、装置及电子设备,通过研究安卓操作系统6.x版本的网络视图控件,分析出包名与资源缓存文件路径的映射关系,利用安全哈希算法对待抓取网页资源的统一资源定位符信息进行计算,得到待抓取网页资源的摘要字符串,对摘要字符串进行相关处理,从而得到待抓取网页资源的统一资源定位符信息映射的资源缓存文件路径下的网页资源文件,从而解析出待抓取网页资源的统一资源定位符信息和网页资源文件之间的映射关系,继而能够直接读取本地缓存的网页资源文件,能够有效避免资源的重复下载,节约用户的网络流量,缩短用户抓取网页资源所需的时间,提升网络的资源利用效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例读取网页资源的方法流程示意图;
图2为本发明实施例接收网页资源抓取请求,获取所述网页抓取请求对应的待抓取网页资源的加载状态的流程示意图;
图3为本发明实施例提取所述摘要字符串中预先设定位数的字符串,得到待编辑字符串,按照预先设置的转换策略对所述待编辑字符串进行转换,生成候选网页资源文件集的流程示意图;
图4为本发明实施例读取网页资源的装置结构示意图;
图5为本发明电子设备一个实施例的结构示意图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1为本发明实施例读取网页资源的方法流程示意图。参见图1,该方法应用于安卓操作系统6.x版本的网络视图控件,包括:
步骤11,接收网页资源抓取请求,获取所述网页抓取请求对应的待抓取网页资源的加载状态;
本步骤中,由于网络视图控件在加载展示网页时,解析出一网页资源(待加载网页元素),即在当前网页中渲染该网页资源并展示在网页中,而对于图片资源、音频资源、视频资源以及动画资源等网页资源,在解析网页资源时,如果具有统一资源定位符(URL,UniformResourceLocator)信息,则先加载解析的URL信息,然后再加载并渲染解析的网页资源,最后,在渲染完成后,展示在网页中。因而,本发明实施例中,需要在网页资源加载完成后才能获取该网页资源的详细信息,例如,前述的URL信息,如果网页资源加载未完成,由于不能获取该网页资源的详细信息,因而无法执行后续的流程。
本发明实施例中,网络资源对应一完整网页中包含的所有网页资源,包含有多个文件,关于网络资源的具体文件构成为公知技术,在此略去详述。
作为一可选实施例,网页资源为具有URL信息的资源,包括但不限于:图片资源、音频资源、视频资源以及动画资源等的一种或其任意组合。
作为一可选实施例,图2为本发明实施例接收网页资源抓取请求,获取所述网页抓取请求对应的待抓取网页资源的加载状态的流程示意图。参见图2,该流程包括:
步骤21,在网络视图控件中注入预先设置的抓取监听事件;
本步骤中,较佳地,利用JAVA描述(JS,JavaScript)脚本代码实现抓取监听事件。例如,通过在网络视图控件中预先注入本发明实施例的JS脚本代码,JS脚本代码中,设置网络视图控件在加载网页时启动该JS脚本代码,以使启动的JS脚本代码进行监听用户抓取网页资源的行为,例如,监听用户点击网页资源的行为(网页资源抓取请求)。其中,JS脚本代码是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言,广泛应用于客户端页面开发,能够通过添加动态功能以响应用户的各种操作。
步骤22,在所述网络视图控件加载网页时,触发启动所述抓取监听事件以监听网页资源抓取请求;
步骤23,在监听到网页资源抓取请求后,获取所述网页抓取请求对应的待抓取网页资源的加载状态。
本步骤中,如果监听到用户操作,例如,点击或触碰当前网页中具有URL信息的网页资源,则确认监听到网页资源抓取请求,该被点击的网页资源为待抓取网页资源。
本发明实施例中,加载状态包括:加载未完毕以及加载完毕。
步骤12,如果所述待抓取网页资源的加载状态为加载完毕,获取所述待抓取网页资源的统一资源定位符信息;
本步骤中,在点击网页中具有URL信息的网页资源时,可以获取该网页资源的URL信息,例如,对于某一图片资源,URL信息为:http://carl.autoimg.cn/upload/2014/11/5/t_20141105083655354345010.jpg。
步骤13,依据构建当前网页的应用程序的包名,获取所述包名映射的资源缓存文件路径;
本步骤中,网络视图控件在获取网络资源后,将获取的网络资源缓存至本地存储器默认的资源缓存文件路径中,并构建网页对应的应用程序的包名与资源缓存文件路径的映射关系。作为一可选实施例,所述资源缓存文件路径为:/data/data/a.b.c/cache/org.chromium.android_webview,其中,a.b.c为所述包名。
本发明实施例中,由于网络资源包含有多份文件,其中,既有各网页资源文件,也有二进制数据文件,而网页资源文件与网页资源不具有显式的映射关系,且目前的网络视图控件没有提供访问存储在本地存储器的网络资源的接口,因而,不能直接通过访问存储的网络资源的方式读取网页资源,从而需要再次通过网页资源的URL信息,利用网络从云端服务器下载URL信息对应的网页资源到本地,浪费了用户的网络流量。
本发明实施例中,对于安卓操作系统6.x版本的网络视图控件,包名与资源缓存文件路径的映射关系保存在用于构建当前网页的应用程序(APP,Application)的包名所对应的私有目录中。例如,对于移动电子设备,构建当前网页的应用程序为将网络的网站格式转换为移动页面格式的应用程序,举例来说,如果一应用程序的包名为a.b.c,则其映射的资源缓存文件路径为:/data/data/a.b.c/cache/org.chromium.android_webview。
步骤14,利用安全哈希算法对所述待抓取网页资源的统一资源定位符信息进行计算,得到所述待抓取网页资源的摘要字符串;
本步骤中,安全哈希算法(SHA1,SecureHashAlgorithm)主要适用于数字签名标准(DSS,DigitalSignatureStandard)中定义的数字签名算法(DSA,DigitalSignatureAlgorithm)。对于长度小于2的64次方位数的消息,利用SHA1进行计算,会产生一个长度为40位十六进制或160位二进制的摘要字符串。
在SHA1中,需要将原始消息,例如,字符串、文件等转换成位字符串,即比特位。关于SHA1的计算原理及计算流程,为公知技术,在此略去详述。
本发明实施例中,如果待抓取网页资源的URL信息为:
http://carl.autoimg.cn/upload/2014/11/5/t_20141105083655354345010.jpg。
则利用安全哈希算法计算后,得到十六进制的摘要字符串为:
5f18992a8c9d94671f4fe2fbccf8675d2804e0f7。
本发明实施例中,所应说明的是,步骤13与步骤14并没有先后顺序之分,即步骤14可以在步骤13之前执行,也可以与步骤13同时执行,本发明实施例对此不作限定。
本发明实施例中,作为一可选实施例,在所述得到所述待抓取网页资源的摘要字符串之后,该方法还可以包括:
判断所述待抓取网页资源的摘要字符串是否为十六进制,如果不是,将所述待抓取网页资源的摘要字符串转换为十六进制的字符串。
步骤15,提取所述摘要字符串中预先设定位数的字符串,得到待编辑字符串,按照预先设置的转换策略对所述待编辑字符串进行转换,生成候选网页资源文件集;
本步骤中,如果所述待抓取网页资源的摘要字符串为十六进制的字符串,图3为本发明实施例提取所述摘要字符串中预先设定位数的字符串,得到待编辑字符串,按照预先设置的转换策略对所述待编辑字符串进行转换,生成候选网页资源文件集的流程示意图。参见图3,该流程包括:
步骤31,提取十六进制的所述摘要字符串中的前十六位字符,得到字符串序列;
本步骤中,如果十六进制的摘要字符串为:5f18992a8c9d94671f4fe2fbccf8675d2804e0f7,则字符串序列为:
5f18992a8c9d9467。其中,
字符5为字符串序列序首,7为字符串序列序尾,按照从序首至序尾的顺序,以编号1234---------->16进行标识。
步骤32,以两位字符为单位,对所述字符串序列进行划分;
本步骤中,将字符串序列5f18992a8c9d9467划分为:5f,18,99,2a,8c,9d,94,67。其中,5f为一单位字符串,即以两位字符为单位的字符串,18为另一单位字符串,如此类推。
步骤33,按照从序尾至序首的顺序,依次提取进行单位划分的字符串序列中的单位字符串,生成逆序单位字符串;
本步骤中,以两位为单位对字符串序列进行划分,然后逆序提取单位字符串,生成的逆序单位字符串如下:
67949d8c2a99185f。
步骤34,分别在生成的逆序单位字符串后再拼接上预先设置的字符集,生成所述候选网页资源文件集。
本步骤中,在生成的逆序单位字符串后后分别拼接字符“0”、“1”以及“2”,得到相应的67949d8c2a99185f_0、67949d8c2a99185f_1以及67949d8c2a99185f_2,生成的所述候选网页资源文件集如下:
67949d8c2a99185f_0;
67949d8c2a99185f_1;
67949d8c2a99185f_2。
作为另一可选实施例,如果所述待抓取网页资源的摘要字符串为二进制的字符串,提取所述摘要字符串中预先设定位数的字符串,得到待编辑字符串,按照预先设置的转换策略对所述待编辑字符串进行转换,生成候选网页资源文件集包括:
提取二进制的所述摘要字符串中的前六十四位字符,得到字符串序列;
以八位为单位,对所述字符串序列进行划分;
按照从序尾至序首的顺序,依次提取进行单位划分的字符串序列中的单位字符串,生成逆序单位字符串;
将所述逆序单位字符串转换为十六进制字符串序列;
分别在所述十六进制字符串序列后再拼接上预先设置的字符集,生成所述候选网页资源文件集。
本发明实施例中,对二进制的摘要字符串进行处理,与对十六进制的摘要字符串进行处理相类似,在此略去详述。
步骤16,遍历获取的所述资源缓存文件路径下的文件,获取与所述候选网页资源文件集中任一候选网页资源文件相匹配的文件,从相匹配的文件中,选取文件大小最大的文件,得到所述待抓取网页资源的统一资源定位符信息对应的网页资源文件,读取所述网页资源文件。
本步骤中,从所述资源缓存文件路径下的文件中,选取与下述候选网页资源文件集中文件名相同的文件:
/data/data/a.b.c/cache/org.chromium.android_webview/67949d8c2a99185f_0
/data/data/a.b.c/cache/org.chromium.android_webview/67949d8c2a99185f_1
/data/data/a.b.c/cache/org.chromium.android_webview/67949d8c2a99185f_2
如果与候选网页资源文件集中的候选网页资源文件相匹配的文件有多个,则选取文件大小最大的文件。例如,在所述资源缓存文件路径下的文件中,包含有:/data/data/a.b.c/cache/org.chromium.android_webview/67949d8c2a99185f_0,文件大小为2.5M;/data/data/a.b.c/cache/org.chromium.android_webview/67949d8c2a99185f_2,文件大小为15K,则所述待抓取网页资源的统一资源定位符信息对应的网页资源文件为:/data/data/a.b.c/cache/org.chromium.android_webview/67949d8c2a99185f_0。
本发明实施例中,通过研究安卓操作系统6.x版本的网络视图控件,分析出网络视图控件的资源缓存特征,即包名与资源缓存文件路径的映射关系,利用安全哈希算法对待抓取网页资源的统一资源定位符信息进行计算,得到待抓取网页资源的摘要字符串,对摘要字符串进行相关处理,从而得到待抓取网页资源的统一资源定位符信息映射的资源缓存文件路径下的网页资源文件,从而解析出待抓取网页资源的统一资源定位符信息和网页资源文件之间的映射关系,继而能够直接读取本地缓存的网页资源文件,无需再次通过网络将需要抓取的网页资源下载并保存到本地存储器,有效避免了资源的重复下载,节约了用户的网络流量,缩短了用户抓取网页资源所需的时间,既节省了获取已经加载的网页中的网页资源的时间,也提升了网络的资源利用效率。
图4为本发明实施例读取网页资源的装置结构示意图。参见图4,该装置应用于安卓操作系统6.x版本的网络视图控件,包括:网页资源状态获取模块41、统一资源定位符信息获取模块42、文件路径获取模块43、哈希计算模块44、候选文件集获取模块45以及网页资源定位模块46,其中,
网页资源状态获取模块41,用于接收网页资源抓取请求,获取所述网页抓取请求对应的待抓取网页资源的加载状态;
本发明实施例中,加载状态包括:加载未完毕以及加载完毕。
作为一可选实施例,网页资源状态获取模块41包括:注入单元、监听单元以及网页资源状态获取单元(图中未示出),其中,
注入单元,用于在网络视图控件中注入预先设置的抓取监听事件;
本发明实施例中,利用JAVA描述脚本代码实现抓取监听事件。
监听单元,用于在所述网络视图控件加载网页时,触发启动所述抓取监听事件以监听网页资源抓取请求;
网页资源状态获取单元,用于在监听到网页资源抓取请求后,获取所述网页抓取请求对应的待抓取网页资源的加载状态。
统一资源定位符信息获取模块42,如果所述待抓取网页资源的加载状态为加载完毕,获取所述待抓取网页资源的统一资源定位符信息;
本发明实施例中,所述网页资源为具有URL信息的资源,包括:图片资源、音频资源、视频资源以及动画资源中的一种或其任意组合。
文件路径获取模块43,用于依据构建当前网页的应用程序的包名,获取所述包名映射的资源缓存文件路径;
本发明是实施例中,对于安卓操作系统6.x版本的网络视图控件,包名与资源缓存文件路径的映射关系保存在用于构建当前网页的应用程序的包名所对应的私有目录中。作为一可选实施例,所述资源缓存文件路径为:/data/data/a.b.c/cache/org.chromium.android_webview,其中,a.b.c为所述包名。
哈希计算模块44,用于利用安全哈希算法对所述待抓取网页资源的统一资源定位符信息进行计算,得到所述待抓取网页资源的摘要字符串;
候选文件集获取模块45,用于提取所述摘要字符串中预先设定位数的字符串,得到待编辑字符串,按照预先设置的转换策略对所述待编辑字符串进行转换,生成候选网页资源文件集;
本发明实施例中,作为一可选实施例,当待抓取网页资源的摘要字符串为十六进制的字符串时,候选文件集获取模块45包括:第一提取单元、第一划分单元、第一逆序单元以及第一候选文件集生成单元(图中未示出),其中,
第一提取单元,用于提取十六进制的所述摘要字符串中的前十六位字符,得到字符串序列;
第一划分单元,用于以两位字符为单位,对所述字符串序列进行划分;
第一逆序单元,用于按照从序尾至序首的顺序,依次提取进行单位划分的字符串序列中的单位字符串,生成逆序单位字符串;
第一候选文件集生成单元,用于分别在生成的逆序单位字符串后再拼接上预先设置的字符集,生成所述候选网页资源文件集。
作为另一可选实施例,当待抓取网页资源的摘要字符串为二进制的字符串时,候选文件集获取模块45包括:第二提取单元、第二划分单元、第二逆序单元、转换单元以及第二候选文件集生成单元(图中未示出),其中,
第二提取单元,用于提取二进制的所述摘要字符串中的前六十四位字符,得到字符串序列;
第二划分单元,用于以八位为单位,对所述字符串序列进行划分;
第二逆序单元,用于按照从序尾至序首的顺序,依次提取进行单位划分的字符串序列中的单位字符串,生成逆序单位字符串;
转换单元,用于将所述逆序单位字符串转换为十六进制字符串序列;
第二候选文件集生成单元,用于分别在所述十六进制字符串序列后再拼接上预先设置的字符集,生成所述候选网页资源文件集。
本发明实施例中,生成的所述候选网页资源文件集包括如下文件:
67949d8c2a99185f_0;
67949d8c2a99185f_1;
67949d8c2a99185f_2。
网页资源定位模块46,用于遍历获取的所述资源缓存文件路径下的文件,获取与所述候选网页资源文件集中任一候选网页资源文件相匹配的文件,从相匹配的文件中,选取文件大小最大的文件,得到所述待抓取网页资源的统一资源定位符信息对应的网页资源文件,读取所述网页资源文件。
本发明实施例中,从资源缓存文件路径下的文件中,选取与下述候选网页资源文件集中文件名相同的文件:
/data/data/a.b.c/cache/org.chromium.android_webview/Cache/67949d8c2a99185f_0
/data/data/a.b.c/cache/org.chromium.android_webview/67949d8c2a99185f_1
/data/data/a.b.c/cache/org.chromium.android_webview/67949d8c2a99185f_2
如果与候选网页资源文件集中的候选网页资源文件相匹配的文件有多个,则选取文件大小最大的文件。
本发明是实施例中,作为一可选实施例,该装置还包括:
进制转换模块47,用于判断所述待抓取网页资源的摘要字符串是否为十六进制,如果不是,将所述待抓取网页资源的摘要字符串转换为十六进制的字符串。
本发明实施例还提供一种电子设备,所述电子设备包含前述任一实施例所述的装置。
图5为本发明电子设备一个实施例的结构示意图,可以实现本发明图1-4所示实施例的流程,如图5所示,上述电子设备可以包括:壳体51、处理器52、存储器53、电路板54和电源电路55,其中,电路板54安置在壳体51围成的空间内部,处理器52和存储器53设置在电路板54上;电源电路55,用于为上述电子设备的各个电路或器件供电;存储器53用于存储可执行程序代码;处理器52通过读取存储器53中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施例所述的读取网页资源的方法。
处理器52对上述步骤的具体执行过程以及处理器52通过运行可执行程序代码来进一步执行的步骤,可以参见本发明图1-4所示实施例的描述,在此不再赘述。
该电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子设备。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种读取网页资源的方法,其特征在于,该方法应用于安卓操作系统6.x版本的网络视图控件,包括:
接收网页资源抓取请求,获取所述网页抓取请求对应的待抓取网页资源的加载状态;
如果所述待抓取网页资源的加载状态为加载完毕,获取所述待抓取网页资源的统一资源定位符信息;
依据构建当前网页的应用程序的包名,获取所述包名映射的资源缓存文件路径;
利用安全哈希算法对所述待抓取网页资源的统一资源定位符信息进行计算,得到所述待抓取网页资源的摘要字符串;
提取所述摘要字符串中预先设定位数的字符串,得到待编辑字符串,按照预先设置的转换策略对所述待编辑字符串进行转换,生成候选网页资源文件集;
遍历获取的所述资源缓存文件路径下的文件,获取与所述候选网页资源文件集中任一候选网页资源文件相匹配的文件,从相匹配的文件中,选取文件大小最大的文件,得到所述待抓取网页资源的统一资源定位符信息对应的网页资源文件,读取所述网页资源文件。
2.根据权利要求1所述的方法,其特征在于,所述接收网页资源抓取请求,获取所述网页抓取请求对应的待抓取网页资源的加载状态包括:
在网络视图控件中注入预先设置的抓取监听事件;
在所述网络视图控件加载网页时,触发启动所述抓取监听事件以监听网页资源抓取请求;
在监听到网页资源抓取请求后,获取所述网页抓取请求对应的待抓取网页资源的加载状态。
3.根据权利要求1所述的方法,其特征在于,所述待抓取网页资源的摘要字符串为十六进制的字符串,提取所述摘要字符串中预先设定位数的字符串,得到待编辑字符串,按照预先设置的转换策略对所述待编辑字符串进行转换,生成候选网页资源文件集包括:
提取十六进制的所述摘要字符串中的前十六位字符,得到字符串序列;
以两位字符为单位,对所述字符串序列进行划分;
按照从序尾至序首的顺序,依次提取进行单位划分的字符串序列中的单位字符串,生成逆序单位字符串;
分别在生成的逆序单位字符串后再拼接上预先设置的字符集,生成所述候选网页资源文件集。
4.根据权利要求1所述的方法,其特征在于,所述待抓取网页资源的摘要字符串为二进制的字符串,提取所述摘要字符串中预先设定位数的字符串,得到待编辑字符串,按照预先设置的转换策略对所述待编辑字符串进行转换,生成候选网页资源文件集包括:
提取二进制的所述摘要字符串中的前六十四位字符,得到字符串序列;
以八位为单位,对所述字符串序列进行划分;
按照从序尾至序首的顺序,依次提取进行单位划分的字符串序列中的单位字符串,生成逆序单位字符串;
将所述逆序单位字符串转换为十六进制字符串序列;
分别在所述十六进制字符串序列后再拼接上预先设置的字符集,生成所述候选网页资源文件集。
5.根据权利要求1至4任一项所述的方法,其特征在于,在所述得到所述待抓取网页资源的摘要字符串之后,所述方法还包括:
判断所述待抓取网页资源的摘要字符串是否为十六进制,如果不是,将所述待抓取网页资源的摘要字符串转换为十六进制的字符串。
6.根据权利要求1至4任一项所述的方法,其特征在于,所述资源缓存文件路径为:/data/data/a.b.c/cache/org.chromium.android_webview,其中,a.b.c为所述包名。
7.根据权利要求1至4任一项所述的方法,其特征在于,所述网页资源包括:图片资源、音频资源、视频资源以及动画资源中的一种或其任意组合。
8.一种读取网页资源的装置,其特征在于,该装置应用于安卓操作系统6.x版本的网络视图控件,包括:网页资源状态获取模块、统一资源定位符信息获取模块、文件路径获取模块、哈希计算模块、候选文件集获取模块以及网页资源定位模块,其中,
网页资源状态获取模块,用于接收网页资源抓取请求,获取所述网页抓取请求对应的待抓取网页资源的加载状态;
统一资源定位符信息获取模块,如果所述待抓取网页资源的加载状态为加载完毕,获取所述待抓取网页资源的统一资源定位符信息;
文件路径获取模块,用于依据构建当前网页的应用程序的包名,获取所述包名映射的资源缓存文件路径;
哈希计算模块,用于利用安全哈希算法对所述待抓取网页资源的统一资源定位符信息进行计算,得到所述待抓取网页资源的摘要字符串;
候选文件集获取模块,用于提取所述摘要字符串中预先设定位数的字符串,得到待编辑字符串,按照预先设置的转换策略对所述待编辑字符串进行转换,生成候选网页资源文件集;
网页资源定位模块,用于遍历获取的所述资源缓存文件路径下的文件,获取与所述候选网页资源文件集中任一候选网页资源文件相匹配的文件,从相匹配的文件中,选取文件大小最大的文件,得到所述待抓取网页资源的统一资源定位符信息对应的网页资源文件,读取所述网页资源文件。
9.根据权利要求8所述的装置,其特征在于,所述网页资源状态获取模块包括:注入单元、监听单元以及网页资源状态获取单元,其中,
注入单元,用于在网络视图控件中注入预先设置的抓取监听事件;
监听单元,用于在所述网络视图控件加载网页时,触发启动所述抓取监听事件以监听网页资源抓取请求;
网页资源状态获取单元,用于在监听到网页资源抓取请求后,获取所述网页抓取请求对应的待抓取网页资源的加载状态。
10.根据权利要求8所述的装置,其特征在于,所述待抓取网页资源的摘要字符串为十六进制的字符串,所述候选文件集获取模块包括:第一提取单元、第一划分单元、第一逆序单元以及第一候选文件集生成单元,其中,
第一提取单元,用于提取十六进制的所述摘要字符串中的前十六位字符,得到字符串序列;
第一划分单元,用于以两位字符为单位,对所述字符串序列进行划分;
第一逆序单元,用于按照从序尾至序首的顺序,依次提取进行单位划分的字符串序列中的单位字符串,生成逆序单位字符串;
第一候选文件集生成单元,用于分别在生成的逆序单位字符串后再拼接上预先设置的字符集,生成所述候选网页资源文件集。
CN201511016708.7A 2015-12-29 2015-12-29 一种读取网页资源的方法、装置及电子设备 Active CN105677730B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201511016708.7A CN105677730B (zh) 2015-12-29 2015-12-29 一种读取网页资源的方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201511016708.7A CN105677730B (zh) 2015-12-29 2015-12-29 一种读取网页资源的方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN105677730A true CN105677730A (zh) 2016-06-15
CN105677730B CN105677730B (zh) 2019-02-26

Family

ID=56297976

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201511016708.7A Active CN105677730B (zh) 2015-12-29 2015-12-29 一种读取网页资源的方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN105677730B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017219293A1 (zh) * 2016-06-22 2017-12-28 华为技术有限公司 一种获取网页内容的方法及装置
CN108399072A (zh) * 2017-02-06 2018-08-14 腾讯科技(深圳)有限公司 应用页面更新方法和装置
WO2020238092A1 (zh) * 2019-05-24 2020-12-03 深圳壹账通智能科技有限公司 链接加壳跳转方法、装置、电子设备和存储介质
EP4181461A1 (en) * 2017-06-04 2023-05-17 Apple Inc. Differential privacy using a count mean sketch

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104881452A (zh) * 2015-05-18 2015-09-02 百度在线网络技术(北京)有限公司 一种资源地址的嗅探方法、装置及系统
CN104965764A (zh) * 2015-06-02 2015-10-07 百度在线网络技术(北京)有限公司 静态资源的处理方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104881452A (zh) * 2015-05-18 2015-09-02 百度在线网络技术(北京)有限公司 一种资源地址的嗅探方法、装置及系统
CN104965764A (zh) * 2015-06-02 2015-10-07 百度在线网络技术(北京)有限公司 静态资源的处理方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
孟飞: "嵌入式浏览器缓存的设计与实现", 《中国优秀硕士学位论文全文数据库》 *
李宝韩: "基于Android的PhoneG_省略_研究及其跨移动平台媒体框架的扩展", 《中国优秀硕士学位论文全文数据库》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017219293A1 (zh) * 2016-06-22 2017-12-28 华为技术有限公司 一种获取网页内容的方法及装置
US10796087B2 (en) 2016-06-22 2020-10-06 Huawei Technologies Co., Ltd. Method and apparatus for obtaining web content
CN108399072A (zh) * 2017-02-06 2018-08-14 腾讯科技(深圳)有限公司 应用页面更新方法和装置
CN108399072B (zh) * 2017-02-06 2022-08-19 腾讯科技(深圳)有限公司 应用页面更新方法和装置
EP4181461A1 (en) * 2017-06-04 2023-05-17 Apple Inc. Differential privacy using a count mean sketch
WO2020238092A1 (zh) * 2019-05-24 2020-12-03 深圳壹账通智能科技有限公司 链接加壳跳转方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
CN105677730B (zh) 2019-02-26

Similar Documents

Publication Publication Date Title
CN105426549B (zh) 一种读取网页资源的方法、装置及电子设备
CN109582644B (zh) 文件存储方法、装置、设备及计算机可读存储介质
CN110096660B (zh) 用于加载页面图片的方法、装置和电子设备
CN105677730B (zh) 一种读取网页资源的方法、装置及电子设备
CN106649446B (zh) 信息推送方法和装置
WO2015106692A1 (en) Webpage pushing method, client, server, and system
WO2016206605A1 (zh) 一种客户端数据的采集方法和装置
CN105701153B (zh) 一种读取网页资源的方法、装置及电子设备
CN112612977A (zh) 一种页面显示方法、系统、装置、设备及存储介质
CN111158750A (zh) 一种基于Unity的游戏安装包的打包方法及装置
CN114282233A (zh) Web性能优化方法、装置、计算机设备和存储介质
CN102624910B (zh) 处理用户选取的网页内容的方法、装置及系统
CN109343908B (zh) 一种延迟加载js脚本的方法和装置
CN103401931B (zh) 一种下载文件的方法和系统
CN113810375B (zh) webshell检测方法、装置、设备及可读存储介质
CN112436943B (zh) 基于大数据的请求去重方法、装置、设备及存储介质
CN114039801B (zh) 一种短链接生成方法、解析方法和系统、设备、存储介质
CN111291288A (zh) 网页链接抽取方法及系统
CN113590986B (zh) 页面链接配置方法、装置、电子设备和计算机可读介质
CN112149392A (zh) 一种富文本编辑方法和装置
CN112182603B (zh) 反爬虫方法和装置
CN112291317B (zh) 数据下载方法、装置、计算机设备和存储介质
CN106487771B (zh) 网络行为的获取方法及装置
CN110704157B (zh) 一种应用启动方法、相关装置及介质
CN113962316A (zh) 模型训练方法、装置及电子设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant