一种轻量级网页动态视图快速构建方法

文档序号:6597418阅读:141来源:国知局
专利名称:一种轻量级网页动态视图快速构建方法
技术领域
本发明属于计算机应用技术领域,具体涉及一种将页面静态解析和脚本动态执行
相结合,进行低交互式网页动态视图快速构建的方法。
背景技术
早期的web页面仅仅简单包含一些文本和图片等内容,随着近年来web技术的发 展,网页编写人员常常利用一些内嵌链接和结合脚本运行,以一种无需用户交互的方式将 更多活跃的元素和更多精彩的内容在页面中展现出来。 内嵌链接是HTML页面中一类带有src属性的特殊的超链接形式,其特点是,当浏 览器访问带有内嵌链接的页面时,无需用户点击,链接指向的内容就会被自动加载,如带有 src属性的〈iframe〉、〈frame〉指向的是一个内嵌页面,〈script〉的src指向的是一个内嵌 脚本文件。页面中的脚本作为一种客户端即时执行代码,大大提高了网页的浏览速度和交 互能力,使得网页和用户之间实现了一种实时性的关系,常常通过脚本动态执行来生成一 些内嵌链接并将其载入页面。 本发明抽象出网页动态视图的概念,其对应于用户访问页面时,浏览器自动加载 内嵌链接指向的内嵌文档的层次结构图。如附图i所示,用户访问页面x时,即使无进一步 交互,图中所有内嵌文档均会被浏览器自动加载或执行。网页通过动态视图带给了用户一 种更丰富的体验,然而却也给一些工作带来了挑战。例如网页木马的漏洞攻击代码可以存 在于网页动态视图中任意位置而被浏览器自动加载并执行,进行网页木马的全面检测必须 要基于网页动态视图;例如一些舆情分析,也必须基于网页动态视图来对网页进行全面的 内容分析。 用户访问页面时,该页面的动态视图会在浏览器中完成自动装载。因此可以采用 一种高交互式的方法获取网页动态视图,即监控浏览器浏览页面时的行为,捕获到用户无 交互情况下的所有文档访问内容,但是该种方法往往有较大的时间代价和系统代价。

发明内容
本发明对目前页面元素自动加载机理进行了深入分析,目的在于提供一种轻量级 网页动态视图快速构建方法,其将页面静态解析和脚本动态执行相结合来模拟浏览器,能 够在占用较少系统资源的同时快速地构建出网页动态视图。
为了便于说明,本发明引入如下概念 1.内嵌链接指含有src属性的一类特殊超链接,其所指向的是不同类型的内嵌 文档,如〈iframe〉/〈frame〉类内嵌页面以及〈script〉内嵌脚本等,内嵌文档无需用户点击 即可被浏览器自动加载; 2.静态内嵌链接在页面源文件中以静态标签形式指明的内嵌链接; 3.动态内嵌链接通过脚本动态执行而自动生成的内嵌链接;4.本地脚本在〈script〉和〈/script〉之间的脚本内容,相对于带有src的内嵌
3展卩本而言; 5.网页动态视图页面被访问时,内嵌链接被自动加载的层次结构图(如附图1), 其有如下三方面特征 a)网页动态视图由被访问页面和该页面被访问时被浏览器自动载入的内嵌页面、 内嵌脚本等内嵌链接所指向的文档组成; b)网页动态视图中的内嵌链接或者在页面源文件中以静态标签的形式指明或者 通过脚本动态执行而生成; c)网页动态视图有一定的层次结构一一即内嵌页面同样也有内嵌链接。 综合5中的a) 、b) 、c)三点网页动态视图对应于用户访问页面时,浏览器对内嵌
文档自动加载层次结构图。网页动态视图是一个树形结构,其中待分析文档和内嵌文档作
为结点集,文档之间的引用-被引用关系作为边,待分析文档为树的根结点。用户访问某页
面时,该页面动态视图中的所有内嵌文档都被浏览器按照顺序自动加载。 本发明通过低交互式地模拟浏览器,分析出页面被浏览器访问时所有被载入的内
嵌文档和引用-被引用关系,从而构建出网页的动态视图。主要的思想是通过页面静态解
析结合脚本动态执行来获取当前页面中的内嵌链接,通过一定的策略来进一步递归分析内
嵌页面,最终构建出页面被浏览器访问时相对应的网页动态视图。 本发明提出的低交互式网页动态视图快速构建方法主要包括以下几个步骤
(1)将待分析页面指定为当前页面 (2)通过页面静态解析来对当前页面进行本地脚本解析和静态内嵌链接识别,其 具体处理方法如下 a)本地脚本解析提取本地脚本,交由步骤(3)待处理 b)静态内嵌链接识别,识别出所有的静态内嵌链接并进一步进行如下操作
i.将识别出的静态内嵌脚本,交由步骤(3)待处理
ii.将识别出的静态内嵌页面,交由步骤(5)待处理 (3)以脚本执行引擎为核心,进行脚本动态执行来识别出当前页面的动态内嵌链 接,主要有如下两方面工作 a)进行DOM模拟,将其作为脚本执行的上下文环境,其主要分为如下两个部分
i.用脚本语言模拟浏览器提供给脚本的应用程序接口 (API) ii.用脚本语言模拟浏览器自动构建出与页面相对应的DOM树(DocumentObject Model,即文档对象模型) b)动态内嵌链接识别在与内嵌链接自动加载相关的关键函数中捕获到动态生
成的内嵌链接并进一步进行如下处理 i.识别出的脚本,在步骤(3)中即时执行 ii.识别出的动态内嵌页面,交由步骤(5)处理 (4)步骤(2)和步骤(3)分析出了当前页面的静态内嵌链接和动态内嵌链接,这些 内嵌链接指明的文档构成一个内嵌文档集合,当前页面和内嵌文档集合中的每个文档有引 用和被引用关系 (5)通过一定的内嵌页面递归分析策略来分析当前页面的内嵌页面对 (2)-b)-ii分析出的静态内嵌页面和(3)-b)-ii分析出的动态内嵌页面,逐个将其指定为
4当前页面,并回到步骤(2)进行分析 (6)根据每次步骤(4)所得到的内嵌文档集合和引用-被引用关系,完成页面动态 视图构建。 本发明的优点和积极效果如下 1.将页面静态解析和脚本动态执行结合,全面分析出页面被浏览器访问时所有被 载入的内嵌文档和各个文档之间的引用-被引用关系。 2.轻量级低交互式模拟浏览器,以较少的时间代价和较小的系统代价完成页面动 态视图的构建。


图1页面的动态视图示例 图2本发明一种轻量级网页动态视图快速构建方法的结构图
具体实施例方式
以下结合附图2,对本发明中方法进行详细说明,一个具体实施将数据结构1的实 例集合作为网页动态视图的结构化表示, struct node_link{ Node_Type child_type ; string parent亂; string child亂; } 数据结构1定义 其中e皿m Node—Type {InlineScript, InlinePage. . . } 该实施例的步骤如下 (1)用JavaScript脚本语言模拟浏览器提供给脚本的各种DOM API,将代码放入
defineDOMAPI. js文件中,其中a)定义window, open (),通过print方式将参数中的url输出;
b)定义document, write (),其调用回调函数对其参数内容进行进一步解析,解析 出的脚本内容通过执行eval函数在当前上下文即时执行,解析出的内嵌链接通过print方 式输出; c)定义onmouseover、 onmouseout、 onload事件白动角虫发; d)DOM API中的其余属性赋值为默认值,其余函数定义为空函数体; (2)将待分析文档的URL设定为当前页面的URL,集合S为空 (3)以当前页面的URL为名新建文件夹,并下载该页面,基于SAX (Sample API
forXML),即"XML简单API ",对该页面进行静态解析,在解析过程中 a)每解析到一个标签,写出根据(1)中定义的API构建与该标签相对应DOM对象 的JavaScript语句,将该JavaScript语句力口入当前页面的buildD0MTree变量(string类 型)中; b)每解析出静态内嵌链接,将src指向的URL放入当前页面的inline—linking变量(list类型)中;
此外 c)解析出的本地脚本,放入当前页面的jscript变量(string类型)中; d)解析到带有src的〈script〉,将其内容下载并放入当前页面的jscript变量
中; e)解析到带有src的〈iframe〉或〈frame〉,将src指向的URL放入当前页面的 inlin印age变量(List类型) (4)进行脚本动态执行,具体步骤为首先在当前目录下新建临时空文件tmp. js, 接下来 a)将(1)中的defineDOMAPI. js文件中内容写入tmp. js中
b)将(3)-a)中的当前页面的buildDOMTree写入tmp. js中
c)将(3)中的当前页面的jscript写入tmp. js中 d)用脚本引擎执行tmp. js,并将结果放入当前目录下的output, js文件中
(5)主程序的merge模块提取output, js文件中的内嵌链接,放入当前页面 的inline—linking变量,并将〈iframe〉或〈frame〉的src指向的URL放入当前页面的 inlin印age变量中; (6)步骤(3)_b)和步骤(5)得到的inline—linking变量为当前页面中的静态内 嵌链接和动态内嵌链接集合,下一步根据当前页面的URL和inlineJinking中的URL,构 造数据结构1的不同实例,并将这些实例放入集合S (7)递归分析当前页面的内嵌页面,即依次将当前页面inlin印age变量中的URL 设定为当前页面的URL,回到步骤(3); (8)集合S代表带分析页面的网页动态视图的数据表示 尽管为说明目的公开了本发明的具体实施例和附图,其目的在于帮助理解本发明 的内容并据以实施,但是本领域的技术人员可以理解在不脱离本发明及所附的权利要求 的精神和范围内,各种替换、变化和修改都是可能的。本发明不应局限于本说明书最佳实施 例和附图所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。
权利要求
一种轻量级网页动态视图快速构建方法,其步骤为1)提取待分析页面的本地脚本和静态内嵌链接;2)从所述静态内嵌链接中提取出静态内嵌脚本;3)利用脚本执行引擎动态执行所述本地脚本和所述静态内嵌脚本,识别出该页面的动态内嵌链接;4)将所述动态内嵌链接所指向的文档和所述静态内嵌链接所指向的文档构成一内嵌文档集合;5)提取该页面与所述内嵌文档集合中的文档的引用-被引用关系;6)将根据所述静态内嵌链接识别出的静态内嵌页面和根据所述动态内嵌链接识别出的动态内嵌页面分别作为待分析页面,重复步骤1)~5),根据每次得到的内嵌文档集合和引用-被引用关系,建立页面动态视图。
2. 如权利要求1所述的方法,其特征在于所述页面动态视图为一树形结构,其中待分 析文档和内嵌文档为节点集;文档之间的引用和被引用关系为边,待分析文档为树的根节 点。
3. 如权利要求1或2所述的方法,其特征在于所述脚本执行引擎执行所述本地脚本和所述静态内嵌脚本时,对捕获到的动态生成的内嵌链接进行处理,其方法为识别出所述动 态生成的内嵌链接的脚本,并利用所述脚本执行引擎执行该脚本;同时识别出所述动态生 成的内嵌链接所指向的动态内嵌页面,并将该页面作为待分析页面。
4. 如权利要求1或2所述的方法,其特征在于所述脚本执行引擎利用文档对象模型作 为脚本执行环境,其方法为利用脚本语言模拟浏览器提供给脚本的应用程序接口 ,然后利 用脚本语言模拟浏览器构建出与待分析页面对应的文档对象模型树。
5. 如权利要求4所述的方法,其特征在于采用JavaScript脚本语言模拟浏览器提供给脚本的各种文档对象模型树的应用程序接口 。
6. 如权利要求1所述的方法,其特征在于基于SAX对所述待分析页面进行静态解析,提 取该待分析页面的本地脚本和静态内嵌链接。
全文摘要
本发明公开了一种轻量级网页动态视图快速构建方法,属于计算机应用技术领域。本方法为1)提取待分析页面的本地脚本和静态内嵌链接;2)从静态内嵌链接中提取出静态内嵌脚本;3)利用脚本执行引擎动态执行本地脚本和静态内嵌脚本,识别出该页面的动态内嵌链接;4)将动态内嵌链接所指向的文档和静态内嵌链接所指向的文档构成一内嵌文档集合;5)提取该页面与内嵌文档集合中的文档的引用-被引用关系;6)将识别出的静态内嵌页面和动态内嵌页面分别作为待分析页面,重复步骤1)~5),根据每次得到的内嵌文档集合和引用-被引用关系,建立页面动态视图。本发明以较少的时间代价和较小的系统代价完成页面动态视图的构建。
文档编号G06F17/30GK101763432SQ20101003372
公开日2010年6月30日 申请日期2010年1月5日 优先权日2010年1月5日
发明者宋程昱, 张慧琳, 诸葛建伟, 邹维, 韩心慧, 龚晓锐 申请人:北京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1