一种网页动态信息获取方法转让专利

申请号 : CN201110087355.5

文献号 : CN102184184B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 郑中华周俊高威帅志虎

申请人 : 安徽博约信息科技有限责任公司

摘要 :

本发明公开了一种网页动态信息获取方法,包括动态信息配置模板的配置,解析环境的搭建,动态资源的获取以及动态信息的组织输出四个步骤。其中动态信息配置模板记录着所要获取的动态信息以及相关的变量库及其赋值方法;解析环境的搭建则是根据网页HTML源码信息为动态信息配置模板中记录的变量库赋值;动态资源的获取是根据动态信息配置模板中记录的相关信息,调用已赋值变量库中的数据,得到动态信息的内容;动态信息的组织输出将所获取的动态资源,组织成格式化的字符串并输出。本发明避免了JS脚本信息的解析,仅从网页源码中获取少量关键数据,然后通过动态信息配置模板解析出所需获取的动态信息,针对性强,速度快,解析效率高。

权利要求 :

1.一种网页动态信息获取方法,其特征在于,包括如下步骤:

(1)动态信息配置模板的配置:根据网页的页面结构以及所要获取的动态信息配置动态信息配置模板,由于各网站网页页面结构不同,但每个网站内部的网页页面结构基本一致,因此一个网站仅需要一个动态信息配置模板,该模板记录着需要获取的动态信息,未赋值的变量库以及变量库的赋值方法;

(2)解析环境的搭建:根据网页所属的网站,读取对应网站的动态信息配置模板,并根据动态信息配置模板中记录的变量库以及变量库的赋值方法,结合网页HTML源码数据对变量库进行赋值;解析环境的搭建等价于变量库中所有变量的赋值,所有的变量都成功赋值,则表示解析环境搭建完成;所述的解析环境搭建过程中,变量库中不同类型的变量,赋值顺序不同,具体赋值顺序如下:①引用源的变量赋值:

动态信息配置模板中REF属性为“0”的变量,表示可以直接从HTML网页源码中获取的变量,不依赖其他资源或变量,因此这类变量的值最先赋值,这些变量一般都是按照JAVA正则式的规则执行匹配抽取进行赋值的;

②引用变量的变量赋值:

动态信息配置模板中REF属性以“var:”开头的变量,这类变量引用了其他变量,因此必须等被引用的变量赋值以后方可赋值,而且被引用的变量REF属性必须为“0”;

③引用资源的变量赋值

模板中REF属性以“res:”开头的变量,这类变量是从资源中赋值,赋值顺序排在第三;

④引用变量的变量赋值

动态信息配置模板中REF属性以“var:”开头的变量,这类变量与上述第二赋值的变量是一致的,只不过上述第二赋值的变量引用的变量必须从网页源码字符串中获取且其REF属性必须为“0”,而这类变量引用的变量可能是第二或第三顺序才被赋值的变量,因此最后赋值;

(3)动态资源的获取:根据动态信息配置模板所记录的需要获取的动态信息,调用在第(2)步赋值的变量库中的数据,得到动态资源,即需要获取的动态信息,动态资源既可以是普通的字符串,也可以是网络资源的URL地址,动态资源的获取过程也就是确定资源值或者URL地址;所述的动态资源的获取过程也就是确定资源值或者URL地址,其步骤如下:①读取动态信息配置模板中记录的需要获取的动态信息的资源列表;

②遍历资源列表,依次从变量库获取资源所需要的数据,从而确定资源的值或URL地址,动态资源获取过程完成,并将资源列表传送到最后的组织输出过程;

(4)动态信息的组织输出:该过程就是将第(3)步获取的动态资源按照指定格式组织成格式化字符串,并输出;所述的动态信息的组织输出的执行过程如下:①从资源列表中取出一个资源;

②判断该资源是普通字符串还是网络URL地址,若是普通字符串,则直接加入到待输出的内容字符串中,若是网络URL地址,则将下载后的资源加到内容字符串中。

2.根据权利要求1所述的一种网页动态信息获取方法,其特征在于,所述动态信息配置模板的文件格式是本地文件系统任意格式的文件。

3.根据权利要求1所述的一种网页动态信息获取方法,其特征在于,所述动态信息配置模板的文件格式是XML格式。

4.根据权利要求1所述的一种网页动态信息获取方法,其特征在于,所述动态信息配置模板的文件格式是HTML格式。

说明书 :

一种网页动态信息获取方法

[技术领域]

[0001] 本发明涉及互联网信息技术领域,尤其涉及一种网页动态信息获取方法。[背景技术]
[0002] 随着互联网的发展,各种提高网站访问效率及安全性的技术层出不穷,从VBScript到JavaScript,从传统的C/S架构到目前流行的Ajax技术,效率更高、更安全的技术往往是网站应用的趋势。为防止网络爬虫的频繁访问,或者黑客的恶意攻击,而增加网站服务器的负担,越来越多的网站开发商都使用客户端脚本语言(如JS,VBScript)动态生成网页显示信息,从而实现信息隐藏。但是随着脚本代码的使用,也加重了浏览器的负担。浏览器在解析网页时,必须先解析脚本代码,获取相应的数据信息,而后才可以渲染整个页面。脚本代码解析速度越快的浏览器,打开网页的速度就越快,受欢迎度就越高。
[0003] 在目前的互联网监控领域里,监控目的是为了从互联网大量繁杂的信息中过滤广告、网页版面等垃圾信息,从而抽取网页中重要的内容信息,并且即时获取互联网上重要的更新信息,因此对网页的解析速度(获取重要信息的速度)要求比较高。对于网页中的动态信息,目前主流的技术都是模拟浏览器实现所有脚本代码的解析,获取所有信息的网络URL,从而获取存放于服务器的动态信息,其获取网页动态信息流程图如图1所示。通过上述方法获取的信息是未经过任何过滤的,而且解析垃圾信息所浪费的大量时间也降低了系统解析效率,同时解析的结果也比较混乱,对后续的提取工作造成了很大不便。
[0004] 目前主流的网页动态解析技术主要是通过解析网页中所有的脚本代码段,然后获取网页所有的动态信息(包括有用信息和垃圾信息)。现有技术在动态信息解析过程中,首先提取出网页源码中所有的JS脚本代码段;然后将脚本代码段输入所搭建的脚本代码执行环境,由于脚本代码段抽取后是比较混乱的,不能正确执行,因此在执行环境中第一步需要对脚本代码做一定的处理,如调整代码执行顺序,然后调用开源的解析引擎对代码段执行解析;最后将解析结果做一定处理后输出包含动态信息的文本字符串。
[0005] 现有技术的不足之处在于:
[0006] 1,解析信息没有任何过滤,解析结果包含大量垃圾信息,解析效率较低;
[0007] 2,重复解析垃圾信息,每个网站所有网页的垃圾信息都具有相同的解析方法,故而这些信息在成千上万分网页中被重复解析,则更加降低了解析效率。
[0008] 3,解析结果比较混乱,垃圾信息与有用信息混在一起,不利于后续垃圾信息的剔除以及有用信息的提取工作
[0009] 4,需要设计脚本代码抽取模块,并且搭建解析环境,而解析环境的搭建是个非常繁琐难度也很大的工作,很多中小型企业并没有搭建解析环境的技术实力。[发明内容]
[0010] 本发明要解决的技术问题是提供一种网页动态信息获取方法,该方法绕过了脚本代码的获取与解析,大大提高了解析效率,提高解析速度,而且可以通过为每个网站配置特定的模板来指定所要获取的动态信息,并且解析结果文本的组织也具有特定的格式,利于后续的抽取工作。
[0011] 为了解决上述技术问题,本发明采用的技术方案是,一种网页动态信息获取方法,包括动态信息配置模板的配置,解析环境的搭建,动态资源的获取以及动态信息的组织输出四个步骤;其中:
[0012] (1)动态信息配置模板的配置:根据网页的页面结构以及所要获取的动态信息配置动态信息配置模板,由于各网站网页页面结构不同,但每个网站内部的网页页面结构基本一致,因此一个网站仅需要一个动态信息配置模板,该模板记录着需要获取的动态信息,未赋值的变量库以及变量库的赋值方法;
[0013] (2)解析环境的搭建:根据网页所属的网站,读取对应网站的动态信息配置模板,并根据动态信息配置模板中记录的变量库以及变量库的赋值方法,结合网页HTML源码数据对变量库进行赋值;解析环境的搭建完全等价于变量库中所有变量的赋值,所有的变量都成功赋值,则表示解析环境搭建完成;
[0014] (3)动态资源的获取:根据动态信息配置模板所记录的需要获取的动态信息,调用在第二步赋值的变量库中的数据,得到动态资源,即需要获取的动态信息,动态资源既可以是普通的字符串,也可以是网络资源的URL地址,动态资源的获取过程也就是确定资源值或者URL地址;
[0015] (4)动态信息的组织输出:该过程就是将第三步获取的动态资源按照指定格式组织成格式化字符串,并输出。
[0016] 在上述方法的步骤(2)中,所述的解析环境针对变量库中不同的变量,赋值顺序也不同,具体赋值顺序如下:
[0017] (1)引用源的变量赋值:动态信息配置模板中REF属性为“0”的变量,表示可以直接从HTML网页源码中获取的变量,不依赖其他资源或变量,因此这类变量的值最先赋值,这些变量一般都是按照JAVA正则式的规则执行匹配抽取进行赋值的;
[0018] (2)引用变量的变量赋值:动态信息配置模板中REF属性以“var:”开头的变量,这类变量引用了其他变量,因此必须等被引用的变量赋值以后方可赋值,因此这类变量赋值稍迟,而且被引用的变量REF属性必须为“0”;
[0019] (3)模板中REF属性以“res:”开头的变量,这类变量是从资源中赋值,赋值顺序排在第三;
[0020] (4)动态信息配置模板中REF属性以“var:”开头的变量,这类变量与上述第二赋值的变量是一致的,只不过后者引用的变量必须从网页源码字符串中获取且其REF属性必须为“0”,而此类变量引用的变量可能是第二或第三顺序才被赋值的变量,因此最后赋值。
[0021] 在上述方法的步骤(3)中,所述的动态资源的获取过程也就是确定资源值或者URL地址,其主要步骤如下:
[0022] (1)读取动态信息配置模板中记录的需要获取的动态信息的资源列表;
[0023] (2)遍历资源列表,依次从变量库获取资源所需要的数据,从而确定资源的值或网络地址,动态资源获取过程完成,并将资源列表传送到最后的组织输出过程。
[0024] 在上述方法的步骤(3)中,所述的动态资源的组织输出执行过程如下:
[0025] (1)从资源列表中取出一个资源;
[0026] (2)判断该资源是普通字符串还是网络URL地址,若是普通字符串,则直接加入到待输出的内容字符串中,若是网络URL地址,则将下载后的资源加到内容字符串中。
[0027] 上述方法所述动态信息配置模板的文件格式是本地文件系统任意格式的文件。
[0028] 作为优选,上述方法所述动态信息配置模板的文件格式是XML格式的文件。
[0029] 作为优选,上述方法所述动态信息配置模板的文件格式是HTML格式的文件。
[0030] 本发明的上述技术方案绕过了网页脚本代码的获取与解析,大大提高了解析效率,提高解析速度,而且可以通过为每个网站配置特定的配置文件来指定所要获取的动态信息,针对性强,并且解析结果文本的组织也具有特定的格式,利于后续的抽取工作。
[0031] 本发明技术方案带来的有益效果
[0032] 1,本发明技术方案在解析过程中避免了垃圾信息的解析,只解析有用信息,故而可以大大提高解析效率;
[0033] 2,本发明技术方案避免了脚本代码的解析,从而没有必要设计脚本代码的抽取以及其解析环境,降低了产品开发的技术难度与工作量;
[0034] 3,本发明技术方案的解析结果是结构清晰,动态信息组织有序的文本字符串,便于后续动态信息的处理工作,从而有利于缩短产品开发周期。[附图说明]
[0035] 下面结合附图和具体实施方式对本发明作进一步详细的说明。
[0036] 图1是目前主流技术获取网页动态信息流程图。
[0037] 图2是本发明实施例获取网页动态信息流程图。
[0038] 图3是本发明实施例的技术方案结构简图。
[0039] 图4是本发明实施例动态解析处理过程流程简图。[具体实施方式]
[0040] 相对现在主流技术而言(图1),本实施例只需结合配置文件从网页中获取少量关键数据即可得到指定信息的网路URL(图2)。
[0041] 如图3所示,上述技术方案的核心包括解析引擎和网站的动态信息配置模板(以下简称为模板)两个部分。其中解析引擎是本技术方案的动态执行部分,模板是技术方案的静态部分。
[0042] 如图4所示,整个动态信息解析过程主要包括动态信息配置模板的配置、解析环境的搭建、动态资源的获取以及动态资源的组织输出四个步骤:
[0043] 1.动态信息配置模板的配置
[0044] 由人工或者程序根据网页的页面结构以及所要获取的动态信息配置动态信息配置模板,该模板记录着需要获取的动态信息,未赋值的变量库以及变量库的赋值方法。动态信息配置模板可以是存于本地文件系统任意格式的文件,本实施例的动态信息配置模板文件为XML文件格式。由于各网站网页页面结构不同,但每个网站内部的网页页面结构基本一致,因此一个网站仅需要一个动态信息配置模板。
[0045] 2.解析环境的搭建
[0046] 根据网页所属的网站,读取对应网站的动态信息配置模板,并根据动态信息配置模板中记录的变量库以及变量库的赋值方法,结合网页HTML源码数据对变量库进行赋值。解析环境的搭建完全等价于变量库中所有变量的赋值,所有的变量都成功赋值,则表示解析环境搭建完成;解析环境的搭建过程也是整个解析过程中最复杂的一步。针对不同的变量,解析引擎的赋值顺序也不同,具体搭建步骤及赋值顺序如下:
[0047] 1)引用源的变量赋值
[0048] 模板中REF属性为“0”的变量,表示可以直接从HTML网页源码中获取的变量,不依赖其他资源或变量,因此这类变量的值最先赋值,这些变量一般都是按照JAVA正则式的规则执行匹配抽取进行赋值的。
[0049] 2)引用变量的变量赋值
[0050] 模板中REF属性以“var:”开头的变量,这类变量引用了其他变量,因此必须等被引用的变量赋值以后方可赋值,因此这类变量赋值较晚,而且引用的变量REF属性必须为“0”;
[0051] 3)引用资源的变量赋值
[0052] 模板中REF属性以“res:”开头的变量,这类变量是从资源中赋值,赋值顺序排在第三;
[0053] 4)引用变量的变量赋值
[0054] 动态信息配置模板中REF属性以“var:”开头的变量,这类变量与上述第二赋值的变量是一致的,只不过后者引用的变量必须从网页源码字符串中获取且其REF属性必须为“0”,而此类变量引用的变量可能是第二或第三顺序才被赋值的变量,因此最后赋值。
[0055] 3.动态资源的获取
[0056] 随着解析环境的搭建完成,动态资源所需要的数据资源也就完备了,因此可以获取动态资源了,动态资源既可以是普通的字符串,也可以是网络资源的URL地址,因此,动态资源的获取过程也就是确定资源值或者URL地址,相对解析环境搭建过程,动态信息获取过程简单的多,主要步骤如下:
[0057] 1)读取动态信息配置模板中记录的需要获取的动态信息的资源列表;;
[0058] 2)遍历资源列表,依次从变量库获取资源所需要的数据,从而确定资源的值或网络地址,动态资源获取过程完成,并将资源列表传送到最后的组织输出过程。
[0059] 4.动态资源的组织输出
[0060] 相对于前两个过程,动态资源的组织输出过程最为简单,然而耗时最长,因为该过程就是将资源列表中的资源组织成最终的字符串,然后输出,但是牵涉到网络资源的下载,因此耗时最长,而且也不稳定,与网络环境有关。该过程的执行过程如下:
[0061] 1)从第三步获取的资源列表中取出一个资源;
[0062] 2)判断该资源是普通字符串还是网络URL地址,若是普通字符串,则直接加入到待输出的内容字符串中,若是网络URL地址,则将下载后的资源加到内容字符串中。
[0063] 需要说明的是,本实施例所使用模板的文件格式是XML格式,但是本地文件系统任意格式的文件都可以做为模板,但都没有改变从网页源码获取数据,结合模板生成动态信息网络URL的本质,因此凡是通过改变模板文件格式而实现与本实施例相同效果的方案都算是本实施例的替代方案。
[0064] 本实施例旨于提供一种全新的网页动态信息的解析方法,弥补目前主流技术的不足,避免垃圾信息的解析,提高网页动态信息的解析效率;同时绕过脚本代码的解析过程,从而避免脚本代码解析环境的搭建,降低网页动态信息解析的技术难度,减少其工作量;另外,本实施例的技术方案也使得动态信息的解析结果具有清晰的组织结构,便于后续的动态信息处理工作。