CN104361093A - 一种通用的Web自动浏览导航方法 - Google Patents
一种通用的Web自动浏览导航方法 Download PDFInfo
- Publication number
- CN104361093A CN104361093A CN201410665797.7A CN201410665797A CN104361093A CN 104361093 A CN104361093 A CN 104361093A CN 201410665797 A CN201410665797 A CN 201410665797A CN 104361093 A CN104361093 A CN 104361093A
- Authority
- CN
- China
- Prior art keywords
- navigation
- page
- browsing
- web
- action
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 230000009471 action Effects 0.000 claims abstract description 103
- 230000003993 interaction Effects 0.000 claims abstract description 42
- 230000002452 interceptive effect Effects 0.000 claims description 33
- 230000003068 static effect Effects 0.000 claims description 25
- 230000008569 process Effects 0.000 claims description 24
- 230000000875 corresponding effect Effects 0.000 claims description 17
- 238000007689 inspection Methods 0.000 claims description 6
- 230000008676 import Effects 0.000 claims description 5
- 230000002596 correlated effect Effects 0.000 claims description 3
- 230000013011 mating Effects 0.000 claims description 3
- 238000000605 extraction Methods 0.000 description 15
- 239000000284 extract Substances 0.000 description 11
- 238000012545 processing Methods 0.000 description 9
- 238000013075 data extraction Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000012552 review Methods 0.000 description 5
- 238000011160 research Methods 0.000 description 4
- 241000270322 Lepidosauria Species 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241000239290 Araneae Species 0.000 description 1
- 241001520299 Phascolarctos cinereus Species 0.000 description 1
- 208000037656 Respiratory Sounds Diseases 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000009412 basement excavation Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 206010037833 rales Diseases 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/954—Navigation, e.g. using categorised browsing
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种通用的Web自动浏览导航方法,按如下步骤进行:S1、建立Web自动浏览导航的页面交互模型,所述页面交互模型包括导航链接对象和导航链接调用,所述导航链接对象包括导航链接ID、至少一个导航控件描述和一个目标页面描述;所述导航链接调用包括调用导航链接ID和至少一个导航动作描述,所述调用导航链接ID与导航链接对象中的导航链接ID对应;S2、根据页面交互模型录制用户在Web页面的动作,采集与页面交互模型中匹配的信息形成页面交互规则;S3、自动回放并执行页面交互规则,模拟用户与Web页面的交互操作。本发明完成网页的自动化访问和获取,灵活性强、定位准确且复杂度低、通用性好。
Description
技术领域
本发明涉及一种Web浏览导航方法,更具体的说,涉及一种通用的Web自动浏览导航方法。
背景技术
Web是目前最大的信息发布和共享平台,其中包含了大量有价值的数据信息,因此,人们越来越多地希望能从Web上抽取并挖掘这些有价值的数据信息,开发各种基于Web信息的深度数据分析应用,提供各种数据分析增值服务。
但类似于Web信息抽取挖掘一类的应用首先要解决的一个重要问题是:如何能让系统像人一样去完成网页的自动浏览导航和交互操作,以便能逐步跳转并访问获取到感兴趣的网页。除了网页数据抽取挖掘应用外,其他的各种Web自动化应用系统也都需要具有这种自动化的网页浏览导航能力,例如,Web应用软件测试时需要能自动浏览和检查所有的网页是否能顺利到达并正确工作。这些Web自动化应用都需要研究解决并提供网页自动浏览导航技术和方法。
在实际的Web信息抽取处理过程中,由于Web应用通常会使用Session、Application、Cookie等对象维护整个Web应用或网页间的状态或事务数据(如购物车),因此,无法用一个URL直接访问到所需的数据网页,需要按照Web应用规定的网页浏览导航关系访问到指定网页;此外,深度网页(Deep Web)数据通常存在于背后的数据库中,深度网页的访问往往需要用户在导航过程中进行一些网页交互操作(如输入一个关键字进行搜索、输入用户名和密码完成登录、勾选一个选择框、选择一个下拉框选项等)。因此,Web信息抽取过程中,需要能模拟用户的浏览和交互操作行为完成所需要的网页交互和浏览导航操作,以此获取到所需要的网页。这就需要一种深度网页自动浏览导航技术和方法。
同时,为了提供流程化的Web网页浏览导航控制能力,例如,需要循环地从电子商务网站上搜索和查看1千个不同的商品数据记录信息网页,则需要提供各种强大而灵活的流程控制处理能力。
然而,由于Web网页自动浏览导航技术的复杂性,在类似于Web信息抽取这类Web自动化应用领域,目前国内还缺少通用的Web浏览导航技术和系统的支持能力。在Web信息抽取应用领域,目前有不少Web数据抽取技术,但几乎绝大多数都仅仅局限于对已获取网页的数据抽取技术研究,而忽略了要获取这些网页首先必须考虑网页自动浏览导航技术和功能。这导致现有的大多数Web信息抽取技术和系统离实际的Web信息抽取应用需求还有很大的距离。由于缺少网页自动浏览技术和功能的支撑,现有的绝大多数需要进行Web信息抽取应用的企业,基本上都要依靠硬编码的方式对每一个不同的网站和网页编写不同的网页访问程序,这种方法显然效率太低,如果需要访问数十至数百个网站或网页,则需要编写太多的程序。也有的企业使用网页爬虫工具,爬取网站上的所有网页。但爬虫工具远远无法满足要求,一是爬虫工具只能爬取通过简单的超链可以到达的静态网页,而无法获取那些需要通过网页交互(如输入一个搜索关键字、或者用户名和密码等)才能获取的深度网页。
目前,有很多独立的网页自动浏览导航技术和系统,包括WebVCR、WebMacros、Koala、Smart Bookmarks等。
其中,WebVCR和WebMacros是较早被提出来的,它们能记录页面导航序列并重放以重现用户交互生成的动作,可以支持部分页面控件(主要是anchor和表单相关的控件)上的部分导航动作(如点击、填写表单等),但它们不能执行复杂的脚本代码、不支持AJAX页面,此外不能支持参数化和缺乏应有的控制逻辑。
Koala能支持用户使用伪自然式的脚本语言来指定Web导航序列的宏指令,比如“type Danny into first name field”、“click search button”。明显地,这种脚本语言对于一般用户要求较高,且不能提供友好的界面来进行交互。其次,同WebVCR一样,它对于控件上的导航动作支持也比较单一。
Smart Bookmarks能够保存一个“书签”式的Web导航序列来访问动态页面,用户可以定制自己的“书签”来完成特定的导航动作。同时,它使用文本、其他指定的属性(如对于anchor控件使用href属性)或者完整的Xpath路径(如HTML/BODY/TABLE[2]/TBODY/TR[3]/TD[5]/DIV[2])来定位导航控件,这种较为单一的方式对于页面上的变化容易产生定位不准的问题。
一个问题是,以上所述的语言或系统都是作为独立的网页自动浏览导航工具工作的,它们无法与Web信息抽取等Web自动化应用集成使用。现有的支持浏览导航技术的典型Web信息抽取系统研究工作有Wargo、Bode、Lixto等。
其中,Wargo系统中的导航语言NSEQL是一种命令式语言,通过提供菜单选项使用户能选择并记录对页面的操作事件。例如:Navigate(url,headers,target)命令表示在浏览器的地址栏输入一个URL,ClickOnAnchorByText(text,n,equals)命令表示点击在页面中第n个Anchor元素(当equals为真时,其文本为或包含“text”)。该种语言定义在一定程度上支持参数化,但整体不够灵活,不能支持动态页面上节点的定位,并且未能考虑复杂的控制逻辑。
Bode是一个完整的导航和抽取系统。为完成导航和抽取任务,它定义了三类数据抽取动作:Extraction actions、URL actions和Page actions。其中,Extraction actions用来抽取或定位指定的页面对象,URL actions用来发送页面请求从而获取返回的文档,Page actions用来在指定的页面对象上完成操作(即点击超链、填写文本框等)。同Smart Bookmarks一样,其xpath定位能力不足。其次,没有考虑参数化,并且缺乏应有的控制逻辑。
Lixto是目前最具代表性、也最为成功的商业化Web信息抽取系统。为了支持对网页的浏览导航,在Lixto系统中定义了一系列的PageClass文件,每个文件中包含了一组action和一些所要使用的参数。这些action主要有:1)点击button、填写textbox等页面actions,用于抽取的wrapaction(Elog语言[15,16]定义的抽取模式);2)PageClass文件之间的调用action;3)处理逻辑的actions,例如if、loop。但是这样的action定义显然过于复杂,而且需要额外根据不同的情形对页面控件的动作做不同的定义,例如点击动作根据控件存在与否有不同的点击动作定义。在针对控制逻辑处理时,把它们定义成不同的action,这样处理比较欠缺灵活性。Lixto一个较为突出的问题是其规则语言实现代价和复杂度较高,而且可扩展性和通用性较差。
发明内容
本发明所要解决的技术问题是,克服目前Web自动化应用中缺少网页自动浏览导航技术支持的缺点,提供一种通用的Web自动浏览导航方法,模仿和刻画用户在浏览器中的交互和浏览导航行为,描述Web自动化应用中复杂的网页浏览导航逻辑,完成网页的自动化访问和获取,灵活性强、定位准确且复杂度低、通用性好。
为了解决以上技术问题,本发明提供一种通用的Web自动浏览导航方法,按如下步骤进行:
第一步、构建自动记录用户访问网页导航链接一系列交互操作的导航链接模型;
第二步、编译生成实现回放该一系列交互操作的可执行指令。
上述第一步的具体过程为
S1、建立Web自动浏览导航的页面交互模型,所述页面交互模型包括导航链接对象和导航链接调用;
所述导航链接对象包括导航链接ID,用于为此导航链接对象指定唯一标识符;至少一个导航控件描述,用于定义导航控件的名称、类型和此导航控件在DOM树上的位置;一个目标页面描述,用于定义跳转后的目标页面的ID和特征;
所述导航链接调用包括调用导航链接ID,所述调用导航链接ID与导航链接对象中的导航链接ID对应,用于调用特定的导航链接对象;至少一个导航动作描述,用于定义导航动作的控件名称、要执行的控件动作和控件参数值;
S2、根据页面交互模型录制用户在Web页面的动作,采集与页面交互模型中匹配的信息形成页面交互规则;
S3、自动回放并执行页面交互规则,模拟用户与Web页面的交互操作,完成Web页面的自动浏览导航。
本发明技术方案的进一步限定为,步骤S1中,所述导航链接对象的导航控件描述中,描述此导航控件在DOM树上的位置时,有两种描述方法:(1)当此导航控件的位置静态确定时,则记录导航控件在DOM树上的静态位置;(2)当此导航控件的位置在导航链接对象被调用时才能确定时,则此导航控件在DOM树上的位置为空值,当导航链接对象被调用执行时进行设置。
进一步地,步骤S1中,所述导航链接调用中导航动作描述中的控件参数值,有两种设定方法:(1)对于可静态确定的参数值,则直接以“静态参数值”的形式设置;(2)对于无法静态确定需要在执行时刻动态传入的参数值,则用“形参名”来指定一个形式参数,然后在运行时刻再将实际参数传入。
进一步地,步骤S1中,所述导航链接调用中,还包括流程控制逻辑,所述流程控制逻辑包括循环控制逻辑和条件控制逻辑。
进一步地,在循环控制逻辑和条件控制逻辑中,控件的参数值通过参数列表获得。
进一步地,步骤S2中,录制过程中,采用自动和交互两者结合的方式采集动作,自动方式为用户在Web浏览界面中进行操作时,实时捕获此页面操作动作事件;交互方式为手工设置动作及参数。
进一步地,步骤S3中,执行过程中,自动回放并执行页面交互规则之前,还包括步骤:对页面交互规则进行预编译,生成预编译文件;对预编译文件进行编译,生成可执行文件。
进一步地,当页面交互规则变化时,将页面交互规则重新进行预编译和编译后,才能执行。
进一步地,步骤S2和S3中,录制和执行规则时,人机交互界面包括
页面模型视图,用于显示本页面相关的页面交互与浏览模型的内容;
浏览器视图,用于展现当前的浏览器页面;
DOM树结构视图,用于展示浏览器页面对应的DOM树结构,在该树中的节点上提供操作菜单以帮助用户完成交互式规则生成和检查;
导航页面链接关系视图,用于对于一系列的导航页面的链接关系进行表示;
属性视图,用于对页面模型视图中的节点的属性进行显示,并且可以提供一系列相关的操作。
本发明的有益效果是:本发明提供的一种通用的Web自动浏览导航方法,能模仿和刻画用户在浏览器中的交互和浏览导航行为,能描述Web自动化应用中复杂的网页浏览导航逻辑;本发明完成复杂的网页浏览导航逻辑(如循环完成1千个商品名称的搜索和结果网页检查),自动回放并执行自动化的网页浏览导航和交互操作,以完成网页的自动化访问和获取;本发明灵活性强、定位准确且复杂度低、通用性好,填补国内空白,具有很强的实际应用价值。
附图说明
图1为实施例1中导航链接模型的结构示意图;
图2为实施例1中浏览导航链接模型的应用实例流程图;
图3为实施例1中浏览导航和Web信息抽取应用实例的流程图;
图4为实施例1中基于XML语言建立的Web自动浏览导航的页面交互模型;
图5为实施例1中自动浏览导航的流程图;
图6为实施例1中人机交互界面的结构示意图。
具体实施方式
实施例1
大数据时代,随着Web信息规模的不断扩大,越来越多的人们希望从Web中挖掘有价值的数据信息,完成深度的价值发现。本发明中设计完成的全过程化Web信息抽取集成规则语言和系统将能够应用于各种不同的Web信息采集和挖掘分析应用。
Web页面的复杂性、交互性和数据动态性通常使得难以通过简单的URL链接来获取Web页面。因此,为了刻画Web信息抽取过程中的网页自动浏览导航逻辑,我们首先需要对用户在浏览器中以人工方式进行网页交互和浏览导航的行为动作进行抽象,然后建立一个网页自动交互和浏览导航的抽象模型,并进一步定义和提供一种浏览导航规则语言,以描述和刻画出准确的浏览导航逻辑。
基于如上分析,建立一个导航链接模型,刻画网页间的一个链接跳转和完成一个导航链接所包含的一系列交互操作,我们将执行Web浏览导航的每个交互动作称为导航动作,每个导航动作包括至少一个导航链接L,导航链接L的结构示意图如图1中,每个导航链接L包括一组浏览导航动作(Action Sequence,AS)和一个目标页面。从抽象层面看,一个完整的Web数据抽取任务将由一系列导航链接组合而成。所述浏览导航动作是一系列浏览导航交互动作集合,浏览导航交互动作指定被操作的控件及所述控件在DOM树上的位置、设定对应控件操作时需要的参数值、定义该控件要执行的具体动作。所述目标页面单元用于描述对应浏览导航动作单元执行后跳转的目标地址的链接。目标页面单元中设定目标页面ID和目标页面特征,目标页面特征对多分支页面选择正确的页面。
每个浏览导航动作实际上是对某个网页控件进行的某种交互操作,通常包含一个或多个具体的控件设置动作,如设置文本框文本值,选中一个或多个复选按钮等。每个浏览导航动作包括以下几部分内容:
控件描述和定位:指定具体操作的是网页上的哪个控件以及该控件的在DOM树上的位置。对于静态位置确定的控件(即用户交互时记录的xpath位置与运行时一致),使用确定的泛化xpath来定位;对于那些静态位置不确定的动态控件(即在运行时才能够确定,例如一组记录中的某个字段为detail的链接),则需要使用动态xpath来定位。
动作描述:定义浏览导航时在该控件上要执行的具体动作,比如click、settext、mouseover等。
控件操作参数:某些控件操作需要参数值,例如textbox。一种是用户交互时确定、运行时不变的静态操作参数值,另一种是动态变化、仅在运行时才能确定的操作参数值,例如某个搜索框每次填入不同的关键词,值的来源和读取方式需要在动态运行时刻指定。
一个导航链接可包含一至多个上述的浏览导航动作。除此以外,一个导航链接还指定当跳转到目标页面后所对应的目标页面模型是什么。
如图2浏览导航链接模块的应用实例流程图所述,一个完整的Web应用处理任务的浏览导航全过程是:从起始页面U开始,经过一系列的中间页面{pi,i=0,1,2...,k}(即不需要抽取数据但必须经过的页面),最终到达用户感兴趣的数据页面{Pj,j=1,2,...,m}。
图3给出了一个完整的浏览导航和Web信息抽取应用实例,它分为以下几个步骤:
(1)从空白的起始页面U开始,在页面地址栏中填入亚马逊网站的URL(即图中动作1),然后跳转到搜索页面S;
(2)在搜索页面S中输入用户想要查询商品的关键字(动作2),点击搜索按钮(动作3),跳转到记录页面R;很明显S和R之间有一个链接关系,这个链接关系和动作2、3就构成一个L(AS);
(3)记录页面R中包含一组可抽取的商品数据记录,通过定义额外的数据抽取规则可抽取出这些数据记录;
(4)点击记录网页上的“名称”超链(动作4)将跳转到该商品数据记录的详细信息页面D,在细节页面D中,可以抽取出书本的详细信息(如出版社、页数、语言和ISBN字段);
(5)点击记录页面上的“评论”超链(动作5)可以进入评论页面C,可以抽取评论数据记录,点击页面中“下一页”(动作6)可以获取全部的评论记录;
(6)在记录页面中点击“下一页”(动作7)可以获取全部的商品数据记录。本发明基于导航链接模型,提出了一种通用的Web自动浏览导航方法,包括第一步、构建自动记录用户访问网页导航链接一系列交互操作的导航链接模型;第二步、编译生成实现回放该一系列交互操作的可执行指令。
上述第一步的具体过程为
S1、建立Web自动浏览导航的页面交互模型,所述页面交互模型包括导航链接对象和导航链接调用。所述导航链接对象包括导航链接ID,用于为此导航链接对象指定唯一标识符;至少一个导航控件描述,用于定义导航控件的名称、类型和此导航控件在DOM树上的位置;描述此导航控件在DOM树上的位置时,有两种描述方法:(1)当此导航控件的位置静态确定时,则记录导航控件在DOM树上的静态位置;(2)当此导航控件的位置在导航链接对象被调用时才能确定时,则此导航控件在DOM树上的位置为空值,当导航链接对象被调用执行时进行设置。一个目标页面描述,用于定义跳转后的目标页面的ID和特征。
所述导航链接调用包括调用导航链接ID,所述调用导航链接ID与导航链接对象中的导航链接ID对应,用于调用特定的导航链接对象;至少一个导航动作描述,用于定义导航动作的控件名称、要执行的控件动作和控件参数值。导航动作描述中的控件参数值,有两种设定方法:(1)对于可静态确定的参数值,则直接以value=“静态参数值”的形式设置;(2)对于无法静态确定需要在执行时刻动态传入的参数值,则用value=“形参名”来指定一个形式参数,然后在运行时刻再将实际参数传入。
如图4示例所示,页面交互模块由导航链接对象<NavLink>元素进行定义,其中包含导航控件描述和目标页面描述。导航链接调用模块由<LinkCall>元素描述,其中将指定完成一个所定义的导航链接跳转所需要进行的所有控件交互动作。
图4示例中描述了一个在搜索页面上填写一个搜索关键字、然后按压“搜索”按钮跳转到搜索结果页面的导航链接对象和规则示例。其中,<NavLink>定义了两个涉及到的交互控件,一个是搜索输入框searchTextBox,另一个是搜索按钮searchButton;然后在Web数据抽取过程中当需要在当前的页面模型中执行这个链接跳转时,则在导航链接调用对象<LinkCall>中执行相应的两个浏览动作:将需要搜索的关键字字符串设置到搜索框searchTextBox中,然后按压搜索按钮searchButton引起从搜索页面到搜索结果页面的跳转。
对一个Web网页可以定义多个导航链接对象NavLink。NavLink描述规则的定义如下:
<NavLink id=“…”>……</NavLink>,其中id用来为这个导航链接指定一个标识符。
然后,一个NavLink中可以包含一至多个涉及到的导航操作控件对象,它们都置于<NavControls>元素中,每个导航操作控件对象定义形式为:
<NavControl id=“…”type=“…”xpath=“…”/>,其中:
id:描述导航操作控件的名称,如searchButton。
type:描述控件类型,如TextBox、Button。
xpath:描述控件在DOM树上的位置,以便在执行时系统能够能准确访问到这个控件。此时有两种情况。当一个控件可以在静态确定其位置时,则xpath将记录这个静态的xpath值;而如果这个控件位置只能在导航链接调用执行时刻才能确定时,则xpath将是一个空值,留待导航链接调用执行时刻使用一个专门的控件动作setXpath去动态进行设置。导航链接中这种动态xpath的一个典型示例是,循环点击一组搜索结果记录列表中每个商品下的“detail”链接时,由于每个搜索结果页面下的商品记录数是变化的,同时每个商品下“detail”超链对象的位置是随着搜索结果列表中的出现次序变化的,因此,这种情形下,这个detail超链的xpath值是无法静态确定的,而只能在运行时刻根据所得到的具体的商品记录去取出相应的detail超链的xpath位置。
一个NavLink还需要指定跳转到指定页面后所对应的目标页面模型文件是什么,以便系统能取得对应的正确的跳转目标页面模型来处理所跳转到的新的页面。目标页面模型定义形式如:
<TargetModel targetModelID=“”pageFeature=“”/>,其中:
targetModelID:指定目标页面模型ID。
pageFeature:设置目标页面特征,用于对多分支页面选择正确的页面模型,如页面登录后可能会跳转到两个不同的页面,一个是登录失败时跳转到登录失败出错页面,另一个是正常登录后进入一个正常的目标页面。此时将需要在登录页面的导航链接中根据两个不同页面的特征来选择正确的页面模型。页面指纹的研究是一个难点,一是如何选取有效的指纹特征;二是如何在执行过程中如何获取新页面的特征来确定选择哪一个目标页面模型。页面指纹将是本文的后续研究工作之一。
一个导航链接NavLink定义完成后,在Web数据抽取处理过程中执行这个导航链接跳转时,将需要逐个执行其中所包含的每个导航控件动作。每个导航动作的定义形式为:
<ControlAction control=“”action=“”value=“”/>,其中:
control:指定所要操作的控件名称。
action:指定具体要执行的控件动作,表1列出了导航中常涉及到的几种控件及其典型动作,其中mouseover和mouseout是两类特殊的动作,因为多数控件的这两类动作是没有实际效果的,即它们不会引起页面变化或发生页面跳转,但对于anchor控件可能会发生局部页面刷新。
value:描述控件参数。对于某些包含参数的动作,则需要在执行时刻指定具体的参数值,如对于一个搜索文本框searchbox,执行时需要传入具体的搜索关键字参数值。此时有两种情况:对于可静态确定的参数值,则直接以value=“静态参数值”的形式设置,而对于无法静态确定、需要在执行时刻动态传入的参数值,则可用value=“形参名”来指定一个形式参数,然后在运行时刻再将实际参数传入。导航空间及其典型的导航动作如表1所示。
表1:
在执行导航链接时,首先根据LinkCall的navLinkID属性找到对应的NavLink,然后根据导航控件和导航动作描述执行在页面上的导航动作。在执行完动作后,对于发生的页面跳转,根据指定的目标页面模型来来对跳转后的新页面进行处理。
比如在图3中的S页面中设定搜索关键字,其中可能包含关键字的外部数据源定义、何时来引用该关键字(即哪一个导航动作需要此关键字)。通过可视化的交互界面,用户可以方便地从起始的搜索页面导航到搜索结果记录页面,直至最终完成抽取任务。
基于导航链接,我们可以实现在页面中的顺序性自动导航过程。但是这还不足以完成自动化Web应用过程中在浏览导航和数据处理各个阶段都可能需要的各种灵活强大的流程控制能力。例如,一个需要反复搜索和抽取1000个商品信息的Web信息抽取任务,首先会需要在全局上能循环控制这1000个商品的搜索和浏览导航与抽取过程;同样,在一个商品数据抽取过程中也可能会需要一些局部的流程控制逻辑。因此,所述导航链接调用中,还包括流程控制逻辑,所述流程控制逻辑包括循环控制逻辑和条件控制逻辑。在循环控制逻辑和条件控制逻辑中,控件的参数值通过参数列表获得。
在规则语言的设计上,为了能提供灵活而强大的控制表达能力,流程控制将采用脚本语言来实现。流程控制逻辑主要包括两种形式:循环控制逻辑和条件控制逻辑。
循环控制逻辑如下:
例如在图3中可能会需要:在搜索页面S中,需要设定搜索范围,即select控件的循环;在搜索页面S中需要从外部预定义的一个搜索关键字列表中逐个读取一个搜索关键字填入搜索文本框中,然后循环完成这个搜索和抽取过程;对单个搜索结果页面R上显示的一组商品记录,也需要循环控制逐个完成每个数据记录的抽取。
循环控制语句的基本语法形式为:
其中:
type:指明identifier的类型。
identifier:表示集合元素的迭代变量。
collection:对象集合或数组表达式。例如一个数据源对象,指定一个由Record类型的记录组成的集合。
图4中的循环控制就是对于一个搜索框的搜索关键字进行循环控制,collection为一个外部数据源对象——关键字列表searchKeyList,迭代变量为searchKey,它是一个String类型,并在searchTextBox的value中被引用,每次迭代都会填入不同的搜索关键字。因此,完成这个关键字搜索循环控制的语句示例如下:
条件控制逻辑如下:
条件控制语句的语法形式是:
其中:
conditon:条件表达式。
例如,在图4中,判断搜索结果记录页面R中文本内容为“下一页”的anchor控件否存在,以便决定是否允许执行点击:
判断某个控件的属性,如图3中搜索结果记录页面R的价格属性,以便判断是否能点击“购买”按钮控件:
以上的流程控制语句语法类似于Java中的for循环控制语句,参数表达式的计算也采用兼容于Java的表达式,因而可灵活表达各种复杂的流程控制逻辑。
在规则生成时,控制语句及其控制参数可通过用户交互界面以交互方式生成,以减少用户编写脚本语言的负担。
S2、根据页面交互模型录制用户在Web页面的动作,采集与页面交互模型中匹配的信息形成页面交互规则。
数据录制(build-time),模拟用户的浏览导航动作,根据页面交互与浏览模型录制并生成整个Web应用任务浏览导航所需要的页面操作动作,生成与导航链接模型对应的浏览导航规则并将浏览导航规则存储至存储模块中。对一个Web应用任务,每一个Web页面的操作都需要生成一个导航链接模型来保存所有的页面操作动作。
浏览导航动作录制采用自动和交互两者结合的方式,自动录制的方法为用户在浏览器视图中进行操作时,数据录制模块实时捕获此页面操作动作事件,并根据页面交互与浏览模型的规则记录此事件生成流程控制逻辑;所述交互录制的方法为用户指定页面操作动作。
在build-time阶段,根据具体的Web应用任务,首先需要模拟用户的浏览导航动作,去录制并生成整个Web应用任务所需要的浏览导航路径和规则。导航动作录制采用自动和交互两者结合的方式。自动的记录导航动作是指用户在浏览器视图中进行settext或click动作时,系统将实时捕获这个用户动作事件,并记录下事件涉及到的导航控件信息和导航动作信息,并将其记录下来形成浏览导航规则。然而这种方式对于mouseover和mouseout这类的事件会产生大量不必要的用户动作事件记录。为了避免这种情形,另一种方式是由用户使用交互方式,以右键点击弹出菜单来显式指定导航动作和附带的参数等。因此,我们大部分采用自动记录方式来生成除mouseover和mouseout以外的大多数浏览导航;而mouseover和mouseout这类的鼠标移动事件将由交互方式来产生(如图6中DOM树结构视图中的弹出菜单)。
S3、自动回放并执行页面交互规则,模拟用户与Web页面的交互操作,完成Web页面的自动浏览导航。
自动浏览导航(runtime),首先,对页面交互与浏览模型进行预编译,生成预编译文件;然后,对预编译文件进行编译,生成可执行文件;最后,根据控制逻辑和浏览导航规则执行页面交互与浏览模型,完成自动浏览导航。当页面交互与浏览模型变化时,将页面交互与浏览模型重新进行预编译和编译后,才能执行。所录制的导航动作被记录在一系列页面模型的导航链接对象中,在runtime阶段,这些导航动作将被重播以模拟用户的导航过程。然后需要为浏览导航路径上的每个页面建立一个页面模型,用以记录相应页面上的浏览导航逻辑、以及Web页面处理逻辑与规则。
本实施例为了实现的Web自动浏览导航与应用原型系统,提供了一个可视化的交互界面,可帮助用户完成build-time阶段从浏览导航路径录制、到Web应用规则和流程控制规则生成处理,以及runtime阶段实际的规则执行处理过程。所述浏览导航应用模块的结构示意图如图6所示,所述交互界面模块包括页面模型视图单元,用于显示本页面相关的页面交互与浏览模型的内容;浏览器视图单元,用于展现当前的浏览器页面;DOM树结构视图单元,用于展示浏览器页面对应的DOM树结构,在该树中的节点上提供操作菜单以帮助用户完成交互式规则生成和检查;导航页面链接关系视图单元,用于对于一系列的导航页面的链接关系进行表示;属性视图单元,用于对页面模型视图中的节点的属性进行显示,并且可以提供一系列相关的操作。
图3中示例的是从起始页面开始,逐步链接跳转到4个相关网页所对应的的浏览导航和数据抽取,针对图3的示例,本实施例的规则录入及执行步骤进行详细的介绍:
(1)起始页面U中的导航规则通过如下的html语言实现,描述在起始页面U中填入亚马逊的网站地址的操作,其中涉及到的导航控件(第4行)、动作和参数值(第8行),执行完起始页面的规则后将调用第9行所指明的目标页面模型。
(2)当点击搜索按钮时,导航规则通过如下的html语言实现,第13、14行描述进行搜索操作的导航控件。第3行描述了一个外部数据源对象,第4行为控制逻辑,实现迭代替换搜索关键字的操作。第5-8行刻画集成规则和维护一个数据关系,<LinkCall navLinkID=“searchBooks”>表示在抽取记录页面的数据后将结果插入到该导航链接所在<Books>元素的位置上。
(3)当搜索页面执行后进入进入页面R,导航规则通过如下html语言实现,第3-9行是表示出现在一个搜索页面上的一组原始的书籍数据记录的抽取规则,这些记录被包装成一个网页数据源对象,并通过定义好的接口来访问下面字段的文本值、xpath。第10-19行是集成规则和集成控制逻辑,对于记录页面中的相似记录进行循环集成处理,并将抽取结果插入到集成规则中对应的元素中。执行第15行将进入记录的细节页面,在细节页面集成的一些字段将插入到<price>元素之后,即<LinkCall navLinkID=“Detail_Info”>所在的位置。执行第18行将进入记录的评论页面,在评论页面集成的一组相似记录将插入到<comments>元素下,即<LinkCall navLinkID=“Comments”>所在的位置。对于本页面的相似记录做完集成处理后,执行第22行,点击进入下一页,这一动作的执行由第21行进行控制。最后,集成好的<Book>记录被插入到调用该模型的导航链接位置上,即搜索页面模型中的<Books>元素下。
(4)进入细节页面D中,导航规则通过如下html语言实现,第4-7行分别刻画了四个Web控件对象,在集成规则(即第9-12行)中通过接口来访问其文本值并插入相应元素中,在完成处理后,将<publisher>、<pageCount>、<language>和<ISBN>返回并插入到记录页面模型中的导航链接<LinkCallid=“Detail_Info”>所在的位置。类似的,执行记录页面中的评论链接得到评论页面C。
(5)对交互页面中的数据源对象和控制逻辑,通过如下html语言实现,其中,第3-8行刻画数据源对象。第9-13行刻画集成规则和记录循环控制逻辑,并通过条件判断(第14行)执行点击下一页,直到所有的评价记录都集成结束,这些<comment>元素返回并插入到记录页面模型中的导航链接<LinkCallid=“Comments”>所在的位置。
(6)执行完整个浏览导航后进行数据抽取,数据抽取后得到的输出结果为:
上述实施例结果显示,每个目标数据记录(<Book>元素)都按照定义的目标数据结构得到正确的抽取和集成,并且正确维护了跨页面的数据关系。
本发明着重研究并提出了一种通用化的Web自动浏览导航技术,利用该技术可以模拟和录制用户的浏览导航和网页交互操作,然后让系统自动回放这些动作,自动完成网页的浏览导航和访问。本发明首先研究设计一种Web自动浏览导航和交互动作模型,能模仿和刻画用户在浏览器中的交互和浏览导航行为,能描述Web自动化应用中复杂的网页浏览导航逻辑,完成复杂的网页浏览导航逻辑(如循环完成1千个商品名称的搜索和结果网页检查),自动回放并执行自动化的网页浏览导航和交互操作,以完成网页的自动化访问和获取。
除上述实施例外,本发明还可以有其他实施方式。凡采用等同替换或等效变换形成的技术方案,均落在本发明要求的保护范围。
Claims (9)
1.一种通用的Web自动浏览导航方法,其特征在于,按如下步骤进行:
第一步、构建自动记录用户访问网页导航链接一系列交互操作的导航链接模型;
第二步、编译生成实现回放该一系列交互操作的可执行指令;
上述第一步的具体过程为
S1、建立Web自动浏览导航的页面交互模型,所述页面交互模型包括导航链接对象和导航链接调用,
所述导航链接对象包括导航链接ID,用于为此导航链接对象指定唯一标识符;至少一个导航控件描述,用于定义导航控件的名称、类型和此导航控件在DOM树上的位置;一个目标页面描述,用于定义跳转后的目标页面的ID和特征;
所述导航链接调用包括调用导航链接ID,所述调用导航链接ID与导航链接对象中的导航链接ID对应,用于调用特定的导航链接对象;至少一个导航动作描述,用于定义导航动作的控件名称、要执行的控件动作和控件参数值;
S2、根据页面交互模型录制用户在Web页面的动作,采集与页面交互模型中匹配的信息形成页面交互规则;
S3、自动回放并执行页面交互规则,模拟用户与Web页面的交互操作,完成Web页面的自动浏览导航。
2.根据权利要求1所述的一种通用的Web自动浏览导航方法,其特征在于,步骤S1中,所述导航链接对象的导航控件描述中,描述此导航控件在DOM树上的位置时,有两种描述方法:(1)当此导航控件的位置静态确定时,则记录导航控件在DOM树上的静态位置;(2)当此导航控件的位置在导航链接对象被调用时才能确定时,则此导航控件在DOM树上的位置为空值,当导航链接对象被调用执行时进行设置。
3.根据权利要求1所述的一种通用的Web自动浏览导航方法,其特征在于,步骤S1中,所述导航链接调用中导航动作描述中的控件参数值,有两种设定方法:(1)对于可静态确定的参数值,则直接以“静态参数值”的形式设置;(2)对于无法静态确定需要在执行时刻动态传入的参数值,则用“形参名”来指定一个形式参数,然后在运行时刻再将实际参数传入。
4.根据权利要求1所述的一种通用的Web自动浏览导航方法,其特征在于,步骤S1中,所述导航链接调用中,还包括流程控制逻辑,所述流程控制逻辑包括循环控制逻辑和条件控制逻辑。
5.根据权利要求4所述的一种通用的Web自动浏览导航方法,其特征在于,在循环控制逻辑和条件控制逻辑中,控件的参数值通过参数列表获得。
6.根据权利要求1所述的一种通用的Web自动浏览导航方法,其特征在于,步骤S2中,录制过程中,采用自动和交互两者结合的方式采集动作,自动方式为用户在Web浏览界面中进行操作时,实时捕获此页面操作动作事件;交互方式为手工设置动作及参数。
7.根据权利要求1所述的一种通用的Web自动浏览导航方法,其特征在于,步骤S3中,执行过程中,自动回放并执行页面交互规则之前,还包括步骤:对页面交互规则进行预编译,生成预编译文件;对预编译文件进行编译,生成可执行文件。
8.根据权利要求7所述的一种通用的Web自动浏览导航方法,其特征在于,当页面交互规则变化时,将页面交互规则重新进行预编译和编译后,才能执行。
9.根据权利要求1所述的一种通用的Web自动浏览导航方法,其特征在于,步骤S2和S3中,录制和执行规则时,人机交互界面包括
页面模型视图,用于显示本页面相关的页面交互与浏览模型的内容;
浏览器视图,用于展现当前的浏览器页面;
DOM树结构视图,用于展示浏览器页面对应的DOM树结构,在该树中的节点上提供操作菜单以帮助用户完成交互式规则生成和检查;
导航页面链接关系视图,用于对于一系列的导航页面的链接关系进行表示;
属性视图,用于对页面模型视图中的节点的属性进行显示,并且可以提供一系列相关的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410665797.7A CN104361093A (zh) | 2014-11-19 | 2014-11-19 | 一种通用的Web自动浏览导航方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410665797.7A CN104361093A (zh) | 2014-11-19 | 2014-11-19 | 一种通用的Web自动浏览导航方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104361093A true CN104361093A (zh) | 2015-02-18 |
Family
ID=52528353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410665797.7A Pending CN104361093A (zh) | 2014-11-19 | 2014-11-19 | 一种通用的Web自动浏览导航方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104361093A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105893057A (zh) * | 2016-04-26 | 2016-08-24 | 广东亿迅科技有限公司 | 一种全媒体媒体渠道接入导航配置的实现方法 |
CN106843953A (zh) * | 2017-01-16 | 2017-06-13 | 百融(北京)金融信息服务股份有限公司 | 基于iOS系统的应用程序横向切换系统和方法 |
CN107220066A (zh) * | 2017-06-28 | 2017-09-29 | 北京金山安全软件有限公司 | 应用商店中应用软件的发布方法及装置 |
CN111931049A (zh) * | 2020-08-02 | 2020-11-13 | 吕维东 | 基于大数据和人工智能的业务处理方法及区块链金融平台 |
US11429686B2 (en) * | 2015-03-17 | 2022-08-30 | Vm-Robot, Inc. | Web browsing robot system and method |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100083135A1 (en) * | 2008-09-30 | 2010-04-01 | Lenovo (Singapore) Pte. Ltd. | Collaborative web navigation using document object model (dom) based document references |
CN102012923A (zh) * | 2010-11-30 | 2011-04-13 | 无锡快度信息技术有限公司 | 通用型垂直搜索引擎的搜索规则模型建模方法 |
-
2014
- 2014-11-19 CN CN201410665797.7A patent/CN104361093A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100083135A1 (en) * | 2008-09-30 | 2010-04-01 | Lenovo (Singapore) Pte. Ltd. | Collaborative web navigation using document object model (dom) based document references |
CN102012923A (zh) * | 2010-11-30 | 2011-04-13 | 无锡快度信息技术有限公司 | 通用型垂直搜索引擎的搜索规则模型建模方法 |
Non-Patent Citations (1)
Title |
---|
王海涛、张志亮、张煜华、袁春凤、黄宜华: "web信息抽取网页自动浏览导航与集成规则研究", 《计算机科学与探索》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11429686B2 (en) * | 2015-03-17 | 2022-08-30 | Vm-Robot, Inc. | Web browsing robot system and method |
CN105893057A (zh) * | 2016-04-26 | 2016-08-24 | 广东亿迅科技有限公司 | 一种全媒体媒体渠道接入导航配置的实现方法 |
CN105893057B (zh) * | 2016-04-26 | 2019-05-17 | 广东亿迅科技有限公司 | 一种全媒体媒体渠道接入导航配置的实现方法 |
CN106843953A (zh) * | 2017-01-16 | 2017-06-13 | 百融(北京)金融信息服务股份有限公司 | 基于iOS系统的应用程序横向切换系统和方法 |
CN106843953B (zh) * | 2017-01-16 | 2019-12-17 | 百融(北京)金融信息服务股份有限公司 | 基于iOS系统的应用程序横向切换系统和方法 |
CN107220066A (zh) * | 2017-06-28 | 2017-09-29 | 北京金山安全软件有限公司 | 应用商店中应用软件的发布方法及装置 |
CN107220066B (zh) * | 2017-06-28 | 2020-08-28 | 北京金山安全软件有限公司 | 应用商店中应用软件的发布方法及装置 |
CN111931049A (zh) * | 2020-08-02 | 2020-11-13 | 吕维东 | 基于大数据和人工智能的业务处理方法及区块链金融平台 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8756571B2 (en) | Natural language text instructions | |
Saks | JavaScript Frameworks: Angular vs React vs Vue. | |
US8065667B2 (en) | Injecting content into third party documents for document processing | |
Schwabe et al. | Developing hypermedia applications using OOHDM | |
KR101255506B1 (ko) | 네트워크 양식들에 대한 데이터 구동 액션 | |
Li et al. | Here's what I did: Sharing and reusing web activity with ActionShot | |
Boduch | React and react native | |
Boduch et al. | React and React Native: A complete hands-on guide to modern web and mobile development with React. js | |
US20020188890A1 (en) | System and method for testing an application | |
CN104361093A (zh) | 一种通用的Web自动浏览导航方法 | |
WO2004086222A2 (en) | Development of software systems | |
JP2012190219A (ja) | 情報処理装置、およびトレースログ取得方法 | |
CN107368346A (zh) | 一种基于元数据和脚本引擎的代码生成方法及装置 | |
CN103593414A (zh) | 一种浏览器中网页的展现方法和装置 | |
CN111666072A (zh) | 一种软件代码及文档机器人方法 | |
Baumgartner et al. | Deepweb navigation in web data extraction | |
CN104408101A (zh) | 一种全程化Web信息抽取集成方法 | |
Dinku | React. js vs. Next. js | |
Amalfitano et al. | Using dynamic analysis for generating end user documentation for web 2.0 applications | |
Bernardi et al. | Web applications design recovery and evolution with RE‐UWA | |
CN100461102C (zh) | 用于确定是否顺序显示多个屏幕的系统和方法 | |
Malmström | Structuring modern web applications: A study of how to structure web clients to achieve modular, maintainable and longlived applications | |
Girgis et al. | An ASP .NET Web applications data flow testing approach | |
Shi et al. | Nexir: A novel web extraction rule language toward a three-stage web data extraction model | |
Pan et al. | Automatically maintaining navigation sequences for querying semi-structured web sources |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150218 |
|
WD01 | Invention patent application deemed withdrawn after publication |