CN103823827A - 用于抓取富互联网应用的方法和装置 - Google Patents
用于抓取富互联网应用的方法和装置 Download PDFInfo
- Publication number
- CN103823827A CN103823827A CN201310428634.2A CN201310428634A CN103823827A CN 103823827 A CN103823827 A CN 103823827A CN 201310428634 A CN201310428634 A CN 201310428634A CN 103823827 A CN103823827 A CN 103823827A
- Authority
- CN
- China
- Prior art keywords
- event
- state
- sets
- response
- new state
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 113
- 230000009193 crawling Effects 0.000 title abstract description 6
- 230000008569 process Effects 0.000 claims abstract description 97
- 230000004044 response Effects 0.000 claims description 40
- 230000009466 transformation Effects 0.000 claims description 18
- 238000004891 communication Methods 0.000 claims description 16
- 239000013307 optical fiber Substances 0.000 claims description 14
- 230000008859 change Effects 0.000 claims description 9
- 230000007704 transition Effects 0.000 abstract 3
- 238000010586 diagram Methods 0.000 description 37
- 238000003860 storage Methods 0.000 description 25
- 230000006870 function Effects 0.000 description 15
- 238000004590 computer program Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 10
- 230000006399 behavior Effects 0.000 description 8
- 238000013500 data storage Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 238000012360 testing method Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 4
- 238000007689 inspection Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000000844 transformation Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 235000000332 black box Nutrition 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
Images
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/951—Indexing; 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)
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及一种用于抓取富互联网应用的方法和装置。用于抓取富互联网应用的计算机实现的过程的一个示例性实施例包括:根据已发现事件集合中的每个事件集合的预定优先级,在状态探索阶段执行所述已发现事件集合,其中具有较高优先级的事件在执行具有较低优先级的事件之前执行完毕,并且响应于判定剩余转变,在转变探索阶段执行事件集合。所述计算机实现的过程还包括:判定作为执行该事件集合内的事件的结果,是否存在新状态,以及响应于判定存在新状态,返回所述状态探索阶段。
Description
技术领域
本发明一般地涉及使用数据处理系统的内容发现,更具体地说,涉及使用数据处理系统抓取(crawling)富互联网应用。
背景技术
Web应用抓取是内容索引的基础。为了索引和查找新信息,搜索引擎应能有效地抓取Web应用。抓取对于例如针对安全性、合规性和可访问性测试执行Web应用分析的工具也很重要。
通过引入更新、更丰富的Web应用开发技术,提供了更有用,交互性更强的Web应用。这些被称为富互联网应用(RIA)的应用已经改变了传统Web应用,从而产生响应更快的应用,提升了用户体验。
富互联网应用计算可以使用脚本在客户端侧处理,该脚本允许用户通过触发在用户接口组件上定义的事件(例如,超文本标记语言(HTML)元素)而(部分地或完全地)修改用户接口。异步通信允许用户检索网页的各部分,并允许Web设计者开始构建极为复杂和交互性极强的Web应用。
在一般增加Web应用可用性的同时实现的改进带来了许多Web应用抓取难题。一个重要难题是传统抓取技术不再与使用新技术构建的Web应用兼容,因为统一资源定位符(URL)未改变并且抓取引擎必须使用网页的文档对象模型(DOM)推断与应用状态相关的信息。显然,当前的搜索引擎和应用测试者均不能抓取如Bau等人披露的富互联网应用(BAU,J.、BURSZTEIN,E.、GUPTA,D与MITCHELL,J.C.,“State of the Art:Automated Black-Box Web Application Vulnerability Testing(现有技术:自主黑盒Web应用漏洞测试,发表于IEEE Symposium on Security andPrivacy,2010年,332-345页)”)。抓取富互联网应用是一项需要解决以保持搜索和测试Web应用能力的问题。
此外,多数有关抓取富互联网应用的发表结果使用标准宽度优先或深度优先策略,其中稍微有些变化,如Mesbah等人公开的(MESBAH,A.、BOZDAG,E.和DEURSEN,A.等人发表的“Crawling Ajax by InferringUser Interface State Changes(通过推断用户接口状态变化抓取Ajax,发表于第8届国际Web工程大会会议记录,IEEE Computer Society,2008年,第122-134页)”)。虽然(纯粹形式的)宽度优先或深度优先策略保证在给定足够时间的情况下发现完整的应用,但是两个策略通常太宽泛且缺乏灵活性,因此可能无法有效地抓取多数富互联网应用。
Benjamin等人报告了有关基于模型的抓取的某些研究,该抓取使用有关网站结构的假设定义有效抓取策略(BENJAMIN,K.、BOCHMANN,G.V.、JOURDAN,G.V.和ONUT,I.V.,“Some Modeling Challenges whenTesting Rich Internet Applications for Security(测试富互联网应用安全性的一些建模难题,发表于2010年在巴黎召开的第一届建模与漏洞检测国际研讨会(MDV2010))”)和(BENJAMIN,K.、VON BOCHMANN、G.,DINCTURK、M.E.,JOURDAN、G-V.和ONUT,I.V.,“A Strategy forEfficient Crawling of Rich Internet Applications(富互联网应用的有效抓取策略,S.Auer、O.Díaz和G.Papadopoulos编辑,发表于在帕福斯,塞浦路斯召开的Web工程:第11届国际会议ICWE2011,Springer Berlin/Heidelberg.,第74-89页)”)。但是,研究算法所用的假设通常太严格,多数现实世界富互联网应用无法遵循这一假设。
发明内容
根据一个实施例,一种用于抓取富互联网应用的计算机实现的过程根据已发现事件集合中的每个事件集合的预定优先级,在状态探索阶段执行所述已发现事件集合,其中具有较高优先级的事件在执行具有较低优先级的事件之前执行完毕。响应于判定剩余转变,所述计算机实现的过程在转变探索阶段执行事件集合。所述计算机实现的过程还判定作为执行该事件集合内的事件的结果,是否存在新状态,以及响应于判定存在新状态,返回到所述状态探索阶段。
根据另一实施例,一种用于抓取富互联网应用的计算机程序产品包括计算机可读型存储介质,所述介质包含在其上存储的计算机可执行程序代码。所述计算机可执行程序代码包括:用于根据已发现事件集合中的每个事件集合的预定优先级,在状态探索阶段执行所述已发现事件集合的计算机可执行程序代码,其中具有较高优先级的事件在执行具有较低优先级的事件之前执行完毕;用于判定是否剩余转变的计算机可执行程序代码;用于响应于判定剩余转变,在转变探索阶段执行事件集合的计算机可执行程序代码;用于判定作为执行该事件集合内的事件的结果,是否存在新状态的计算机可执行程序代码;以及用于响应于判定存在新状态,返回到所述状态探索阶段的计算机可执行程序代码。
根据另一实施例,一种用于抓取富互联网应用的装置包括:通信光纤通道网络;与所述通信光纤通道网络相连的存储器,其中所述存储器包含计算机可执行程序代码;与所述通信光纤通道网络相连的通信单元;与所述通信光纤通道网络相连的输入/输出单元;与所述通信光纤通道网络相连的显示器;以及与所述通信光纤通道网络相连的处理器单元。所述处理器单元执行所述计算机可执行程序代码以引导所述装置执行以下操作:根据已发现事件集合中的每个事件集合的预定优先级,在状态探索阶段执行所述已发现事件集合,其中具有较高优先级的事件在执行具有较低优先级的事件之前执行完毕;判定是否剩余转变;响应于判定剩余转变,在转变探索阶段执行事件集合;判定作为执行该事件集合内的事件的结果,是否存在新状态;以及响应于判定存在新状态,返回到所述状态探索阶段。
附图说明
为了更全面地理解本发明,现在结合附图和具体实施方式参考下面的简单描述,其中相同的参考标号表示相同的部件,这些附图是:
图1是可操作以用于本发明的各实施例的示例性网络数据处理系统的框图;
图2是可操作以用于本发明的各实施例的示例性数据处理系统的框图;
图3是可操作以用于本发明的各实施例的抓取系统的框图表示;
图4是根据本发明的一个实施例的执行事件所导致的状态的框图;
图5是根据本发明的一个实施例的路径构造策略的框图;
图6是根据本发明的一个实施例的有向图遍历的框图;
图7是根据本发明的一个实施例的最短路径实例的框图;
图8是根据本发明的一个实施例的具有新状态的图7的最短路径实例的框图;
图9是使用可操作以用于本发明的各实施例的图3的抓取系统的过程的流程图;
图10是使用可操作以用于本发明的各实施例的图3的抓取系统的状态探索阶段的流程图;以及
图11是使用可操作以用于本发明的各实施例的图3的抓取系统的转变探索阶段的流程图。
具体实施方式
尽管下面提供了一个或多个实施例的示例性实现,但是所公开的系统和/或方法可以使用任意多种技术实现。本发明不应被限于下面示出的示例性实现、附图和技术,其中包括此处示出的示例性设计和实现,而是可以在所附权利要求及其完整范围等价物的范围内进行修改。
所属技术领域的技术人员知道,本发明的各方面可以实现为系统、方法或计算机程序产品。因此,本发明的各方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,本发明的各方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读数据存储介质的任意组合。计算机可读数据存储介质例如可以是—但不限于—电、磁、光、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读数据存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑盘只读存储器(CD-ROM)、光存储设备或者磁存储设备、或者上述的任意合适的组合。在本文件中,计算机可读数据存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的信号可以采用多种形式,包括—但不限于—电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括—但不限于—无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的各方面操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如JavaSmalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。Java和所有基于Java的商标和图标都为Oracle和/或其关联公司在美国、其它国家或者美国以及其它国家的商标。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。
这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机或其它可编程数据处理装置以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacturer)。
也可以把计算机程序指令加载到计算机或其它可编程数据处理装置上,使得在计算机或其它可编程数据处理装置上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
现在参考附图,具体参考图1-2,提供了其中可实现示例性实施例的数据处理环境的示例性图。应该理解,图1-2仅作为示例,并非旨在断言或暗示对其中可以实现不同实施例的环境的任何限制。可做出对所示环境的许多修改。
图1示出其中可实现用于抓取富互联网应用的系统的示例性实施例的数据处理系统网络的图形表示。网络数据处理系统100是其中可实现示例性实施例的计算机网络。网络数据处理系统100包含网络102,该网络是用于提供在网络数据处理系统100内连接在一起的各种设备与计算机之间的通信链路的介质。网络102可以包括诸如有线、无线通信链路或光缆之类的连接。
在所示实例中,服务器104和服务器106连同存储单元108一起与网络102相连。此外,客户机110、112和114与网络102相连。客户机110、112和114例如可以是个人计算机或网络计算机。在所示实例中,服务器104将诸如引导文件、操作系统映像及应用之类的数据提供给客户机110、112和114。客户机110、112和114在该实例中是服务器104的客户机。网络数据处理系统100可以包括其它服务器、客户机以及在提供用于抓取富互联网应用的系统的实施例中未示出的其它设备。
在所示实例中,网络数据处理系统100是因特网,同时网络102代表全球范围内使用传输控制协议/网际协议(TCP/IP)协议集来相互通信的网络和网关的集合。在因特网的核心是主节点或主机之间的高速数据通信线路的主干,它包括数以千计的商业、政府、教育以及其它路由数据和消息的计算机系统。当然,网络数据处理系统100也可以实现为许多不同类型的网络,例如内联网、局域网(LAN)或广域网(WAN)。图1旨在作为一个实例,并非旨在作为对不同示例性实施例的体系结构限制。
参考图2,提供了可操作以用于本发明的各实施例的示例性数据处理系统的框图。在该示例性实例中,数据处理系统200包括通信光纤通道网络(fabric)202,其在处理器单元204、存储器206、永久性存储装置208、通信单元210、输入/输出(I/O)单元212和显示器214之间提供通信。
处理器单元204用于执行可以被载入存储器206的软件的指令。处理器单元204可以是包含一个或多个处理器的集合或者可以是多处理器核心,具体取决于特定实现。进一步,处理器单元204可以使用一个或多个异构处理器系统来实现,其中在单个芯片上同时存在主处理器与辅助处理器。作为另一个示例性实例,处理器单元204可以是包含同一类型的多个处理器的对称多处理器系统。
存储器206和永久性存储装置208是存储设备216的实例。存储设备是任何能够存储信息的硬件,所述信息例如包括但不限于数据、功能形式的程序代码和/或其它合适的临时性和/或持久性信息。在这些实例中,存储器206例如可以是随机存取存储器或任何其它合适的易失性或非易失性存储设备。永久性存储装置208可以采取各种形式,具体取决于特定实现。例如,永久性存储装置208可以包含一个或多个组件或设备。例如,永久性存储装置208可以是硬盘驱动器、闪存、可重写光盘、可重写磁带或上述各项的某种组合。永久性存储装置208使用的介质也可以是移动的。例如,可移动硬盘驱动器可以用于永久性存储装置208。
在这些实例中,通信单元210提供与其它数据处理系统或设备的通信。在这些实例中,通信单元210是网络接口卡。通信单元210可以通过使用物理和无线通信链路两者之一或全部来提供通信。
输入/输出单元212允许使用其它可以连接到数据处理系统200的设备来输入和输出数据。例如,输入/输出单元212可以通过键盘、鼠标和/或某种其它合适的输入设备来提供连接以实现用户输入。进一步,输入/输出单元212可以将输出发送到打印机。显示器214提供用于向用户显示信息的机构。
用于操作系统、应用和/或程序的指令可以位于存储设备216中,存储设备216通过通信光纤通道网络202与处理器单元204通信。在这些示例性实例中,指令以功能形式位于永久性存储装置208中。这些指令可以被加载到存储器206以便由处理器单元204运行。处理器单元204可以使用计算机实现的指令(可以位于存储器(例如存储器206)中)执行不同实施例的过程。
这些指令被称为程序代码、计算机可用程序代码或计算机可读程序代码,它们可以由处理器单元204中的处理器读取和执行。在不同的实施例中,程序代码可以包含在不同的物理或有形计算机可读存储介质(例如存储器206或永久性存储装置208)中。
程序代码218以功能形式位于选择性地可移动的计算机可读存储介质220中,并可以被加载或传输到数据处理系统200以便由处理器单元204执行。在这些实例中,程序代码218和计算机可读存储介质220形成计算机程序产品222。在一个实例中,计算机可读存储介质220可以采取有形形式,例如光盘或磁盘,光盘或磁盘被插入或放置到属于永久性存储装置208的一部分的驱动器或其它器件中,以便传输到属于永久性存储装置208的一部分的存储设备(例如硬盘驱动器)。在有形形式中,计算机可读存储介质220还可以采取永久性存储装置的形式,例如连接到数据处理系统200的硬盘驱动器、拇指驱动器或闪存。有形形式的计算机可读存储介质220也被称为计算机可记录存储介质。在某些情况下,计算机可读存储介质220可能不可移动。
备选地,可以通过到通信单元210的通信链路和/或到输入/输出单元212的连接,将程序代码218从计算机可读存储介质220传输到数据处理系统200。在所述示例性实例中,通信链路和/或连接可以是物理或无线的。计算机可读介质还可以采取非有形介质的形式,例如包含程序代码的通信链路或无线传输。
在某些示例性实施例中,可以通过网络将程序代码218从另一个设备或数据处理系统下载到永久性存储装置208,以便在数据处理系统200中使用。例如,可以通过网络将存储在服务器数据处理系统内的计算机可读存储介质中的程序代码从该服务器下载到数据处理系统200。提供程序代码218的数据处理系统可以是服务器计算机、客户端计算机,或者能够存储和传输程序代码218的某种其它设备。
使用图2中的数据处理系统200作为实例,提供用于抓取富互联网应用的计算机实现的过程。处理器单元204根据已发现事件集合中的每个事件集合的预定优先级,在状态探索阶段执行所述已发现事件集合;其中具有较高优先级的事件在执行具有较低优先级的事件之前执行完毕。响应于判定剩余转变,处理器单元204在转变探索阶段执行事件集合。处理器单元204还判定作为执行该事件集合内的事件的结果,是否存在新状态,以及响应于判定存在新状态,处理器单元204返回到状态探索阶段。
现在参考图3,其中提供可操作以用于本发明的各实施例的抓取系统的框图表示。抓取系统300是本发明的一个实施例的实例。
抓取系统300包括多个利用诸如图1的网络数据处理系统100和图2中的数据处理系统200之类的底层数据处理系统的支持的组件。抓取系统300的组件包括多个功能元件,其中包括增强型Web抓取器302、事件分类器304、事件历史数据结构306、事件候选数据结构308、图构造器310、路径估计器312以及抓取策略314。
抓取系统300的组件可以实现为图3中的分立功能元件或实现为功能元件的各种组合或实现为未损失功能的组合了所有功能元件的单一结构。
增强型Web抓取器302提供使用双阶段策略探索Web应用的能力。此策略的第一阶段是状态探索阶段,第二阶段是转变探索阶段。
事件分类器304提供从包含特定事件的预定类别或种类集合中识别一种类别或种类的能力。在一个实例中,所述分类将特定JavaScript事件识别为属于预定分类集合中的一种分类,所述预定分类包括全局未执行事件、本地未执行事件、本地未分类事件、本地菜单事件和非菜单事件。
事件分类基于以下假设:即,执行具有较少执行历史的事件比执行已经执行了更多次的事件更可能产生新状态。基于此假设,应用中尚未执行的事件比已经执行了多次的事件更可能发现新状态。通过使用事件执行与结果状态之间的唯一映射的假设,所述分类建议任何新事件都应产生应用的新信息或新状态,前提是应用遵循此假设。为了对任何事件进行分类,执行该事件。事件执行次数越多,有关该事件的行为的信息便越准确。事件可以出现在多个状态中(例如,“关于我们”事件可以出现在主页状态、站点地图状态、联系人状态,甚至“关于我们”状态中)。
使用JavaScript事件分类的实例,状态探索阶段将事件分为多个种类。全局未执行事件为已发现事件,它们从未在应用中执行,例如,其中从未执行“关于我们”事件的场景。本地未执行事件为已发现事件,这些事件以应用的某种状态被执行至少一次。例如,当“关于我们”事件的某些出现已被执行,但是并未执行所有出现时。这些事件被进一步分成包括本地未执行事件、本地菜单事件和非菜单事件的子分类。
本地未分类事件是以应用的某种状态仅已执行一次的事件(例如,仅执行“关于我们”事件的一个实例)。本地菜单事件是在连续执行时导致同一结果状态的事件。这些事件是遵循上述假设的事件。例如,“关于我们”事件通过不同的状态执行两次,并且在这两种情况下验证网站将用户重定向到同一“关于我们”状态。
非菜单事件是在连续执行时导致不同结果状态的事件。这些事件是不遵循上述假设的事件。例如,“下一页”事件通过不同的状态执行两次,并且观察到每次在页面上为用户呈现不同的项目集合,从而呈现不同的状态。
状态探索阶段假设事件分为全局未执行事件、本地未分类事件并且本地菜单事件为菜单事件,而非菜单事件分类中的事件为非菜单事件。
典型抓取策略的主要目标是决定下一待执行事件。为了完成此目标,所公开的过程搜索更可能导致新状态的事件,并且仅在这些事件已经执行之后,所公开的过程才考虑找到新状态的可能性较低的事件。
已发现事件按照优先级排列以便从高优先级到低优先级来执行。全局未执行事件更有可能导致新状态,因为它们之前尚未执行并且被认为行为类似菜单事件。非菜单事件在每次执行时很有可能导致新状态,但是已知它们不遵循假设,因此不被视为菜单事件。本地未分类事件可能找到新状态,但是直到执行一次以上,结果仍然不确定,因此被认为直到结果确定,其行为才类似菜单事件。本地菜单事件找到新状态的可能性较低。这些事件已执行至少两次并且每次都将用户重定向到同一状态。这些事件已知为菜单,并且不在状态探索阶段再次执行。
事件历史数据结构306提供在预定时段内保存与事件或事件集合关联的信息的能力。例如,可以保存和跟踪已执行特定事件的出现计数以及每次出现的结果状态。候选事件是那些在执行时很有可能导致新状态的事件。导致新状态的概率也是事件分类器304的分类过程的一部分。
事件候选数据结构308提供识别候选事件以及保存已识别的事件以进行后续处理的能力。候选事件是那些在执行时很有可能导致新状态的事件。
图构造器310提供产生菜单事件集合和菜单事件集合附带的对应状态集合的有向图表示的能力。路径估计器312提供针对已识别的事件集合确定最低成本路径的能力。
抓取策略314提供用于确定给定状态下下一待执行事件的明确程序的能力。例如,抓取策略314包含一组策略,其中包括确定下一待执行事件的基本抓取策略和定义搜索策略以识别到下一状态(具有最可能导致新状态的操作)的最短路径的路径策略。
现在参考图4,其是根据本发明的一个实施例由执行事件导致的状态的框图。状态400是从不同状态执行的同一事件的一致行为的一个实例。
在下面的描述中,本发明使用一组假设。需要能够以这样的方式探索Web应用的状态空间:在过程未执行到结束时,已发现的部分信息尽可能丰富。换言之,在给定本发明的过程的运行时间的情况下,所公开的过程应能确保所找到的信息与可找到的信息一样多。这表示并非在没有计划和假设的情况下开始探索系统(例如,深度优先搜索或广度优先搜索),以有关网站行为的假设和针对本发明假设的基础策略开始通常确保了更好的结果。
针对本发明提出的假设定义事件执行结果独立于已经执行事件的状态。因此,事件执行的结果状态始终相同。这假设事件执行与结果状态之间的一一对应。换言之,特定网页上的每个JavaScript事件被视为充当菜单事件,也就是说:从任何状态执行该事件始终导致相同的结果状态。例如,当使用“主页”、“联系我们”、“站点地图”和“关于我们”时,事件充当菜单事件并且始终将用户分别导向“主页”、“联系我们”、“站点地图”和“关于我们”状态。在典型的网站中,实例的表示按钮跨多个状态出现,但无论如何总是存在一致的行为。
状态400的节点S402、S’404、S1406和S2408表示Web应用的不同状态。弧线410和412表示JavaScript事件的执行。如图所示,执行事件410将始终导致同一状态S1406,与源状态S402或S’404无关。
使用上述假设,提出新的抓取策略以有效地探索Web应用的状态空间。所提出的抓取策略具有两个阶段,其中包括状态探索阶段和转变探索阶段。提出双阶段策略是因为典型的Web应用太复杂,无法完全抓取,因此在给定时间内探索尽可能多的状态非常重要,除非已经探索应用内的所有转变,否则无法以高置信度判定是否已找到所有状态。
状态探索阶段尝试使用预期模型尽快查找应用的所有状态。状态探索阶段尝试在每个过程步骤中发现存在的任何新状态。当应用完全遵循所述假设时,探索保证在每个步骤处发现一个状态。
一旦状态探索阶段确定使用预期模型发现应用的所有可能状态,过程便开始转变探索阶段,其中在执行状态探索阶段期间,不执行剩余的转变。
状态探索阶段的主要目标是尽可快找到应用的所有状态。状态探索阶段使用假设构造策略的每一步以在新状态存在时发现应用的新状态。策略的单个步骤可以需要执行一个以上的事件。
状态探索阶段包括将处于到目前为止所发现的状态的事件分为不同优先级集合。具有较高优先级的事件在执行具有较低优先级的事件之前执行完毕。
前面的分类使用所公开的假设产生一组最可能的事件执行候选者以尽快发现应用的新状态。
现在参考图5,其中提供了根据本发明的一个实施例的使用路径构造策略的框图。路径500是由图3的抓取系统300的路径估计器使用路径构造策略的一个实例。
例如,使用路径构造策略的路径构造器从当前状态开始,例如,从S开始查找下一待执行事件。路径估计器使用宽度优先搜索查找到状态的最短路径,例如到包含最可能导致新状态的操作的状态S’的最短路径。在搜索到状态S’的最短路径的同时,路径估计器使用有关未分类事件和菜单事件结果的假设构造路径。路径估计器假设这些事件在路径中的任何中间状态处的结果,即使这些事件未以这些状态执行。
使用路径500的实例,事件512是未分类事件并且尚未在S1504处执行。类似地,事件514是菜单事件,尚未在S2506处执行。路径估计器使用路径构造策略,其中假设有关事件的结果以查找到目标状态S3508的最短路径,该目标状态具有来自S0502的下一事件516和事件510的执行。因此,使用与未在任何中间步骤处本地执行的事件的执行有关的假设有助于查找较短路径,而不是根本不使用假设。
由于并非所有JavaScript事件均充当网站中的菜单,因此应用可能违反之前所述的假设,因此抓取策略需要适应这些情况。在状态探索阶段,使用路径构造策略的路径估计器返回的路径使用有关事件执行的假设。但是,一旦事件已被执行,将只存在两种可能的结果。在第一结果中,假设可能为真(true)。当未分类事件假设的结果为真时,假设有助于将来自未分类列表的事件分类为菜单事件。因此,假设有助于达到执行下一事件的状态,从而有助于对事件进行分类。
在第二结果中,假设为假(false)。当未分类事件假设的结果为假时,该假设仍有助于将事件分类为非菜单事件。但是,在这种情况下,出现包含新状态和已知状态的两种进一步的可能性。当所达到的状态为新状态时,在短于路径构造策略返回的路径的较短路径上找到新状态。但是在最坏情况下,结果为已知的状态。在这种情况下,忽略有关路径的所有当前信息,并且需要从当前状态重新开始以查找到下一待执行事件的路径。
状态探索阶段不尝试重新执行已经分类的本地菜单事件。假设是有效的,因为这些事件在早期的连续执行中导致同一状态,因此很可能针对进一步的执行导致同一结果状态。
现在参考图6,其中提供了根据本发明的一个实施例的有向图遍历的框图。遍历600是使用图3的抓取系统300执行事件期间的状态访问的一个实例。
一旦状态探索阶段完成执行应用的所有事件(除了本地菜单事件以外),抓取策略便移至转变探索阶段。转变探索阶段的主要目标是验证针对本地菜单事件做出的所有假设。例如,假设网站具有“关于我们”事件的6次出现并且在状态探索阶段,“关于我们”事件被执行两次,但是仍剩余4次出现,它们被假设为行为类似菜单,但是未被检查。剩余的4次出现需要被执行一次以便于验证。留给转变探索阶段的事件只有菜单事件。
问题是创建应用中的最短路径,从而允许以最少的步骤执行所有未执行事件。转变探索阶段构造有向图G=(V,E),其中E=菜单事件集合(例如,事件610至事件620)并且V=这些事件附带的状态集合(例如,状态602至状态608)。转变探索阶段需要将菜单事件集合中的所有事件执行至少一次。在转变探索阶段执行剩余事件与图的边探索同义,其中针对特定图需要最低成本路径以便访问每个边至少一次。最低成本路径通过许多方法定义,例如,图的邮递员遍历(路由检查问题http://xlinux.nist.gov/dads/HTML/chinesePostman.html(国家标准与技术研究院))。给定图G=(V,E)以及该图的每个边的关联边成本,邮递员遍历提供通过图的最低成本路径,使得每个边被至少访问一次。执行事件的关联成本(例如,所需的CPU周期或时间)是图G中的边的成本。为了简单起见,假设每个事件的执行成本相同。
所述实例的转变探索阶段始于定义图形G上的邮递员遍历。所述遍历提供应该执行事件的序列。例如,假设所有事件具有相同的执行计数,涵盖每个事件的最低成本路径被估计为包括事件610、事件612、事件614、事件616、事件620、事件614和事件618的序列的遍历。
一旦定义遍历,便会出现其中应用未遵循初始假设的情况(例如,之前考虑的菜单事件不像菜单那样执行操作)并且结果状态不同于假设的状态。因此,针对结果状态出现两种情况:已知状态和新状态。
现在参考图7,其中提供了根据本发明的一个实施例的最短路径实例的框图。使用诸如邮递员遍历之类的路由检查方法识别以确定顺序执行事件的遍历700遇到违规(假设违规)和已知状态。
当与事件关联的违规状态为已知状态时,忽略违规并且处理继续执行遍历所指定的事件。所公开的过程从当前状态702开始并尝试达到状态706以执行下一未执行事件714。所公开的过程遵循路由检查问题方法或遍历,所述方法或遍历指定需要从当前状态702执行事件710和事件712。但是,作为执行事件710的结果,网页被重定向到新状态708,而非状态704。
在这种情况下,所述过程尝试查找从状态708到状态706的最短路径(可以是一个以上的事件或一系列事件)以在状态706中执行下一事件714。因此,对于导致已知状态的所有假设违规,所公开的过程忽略违规并重对齐到遍历所提供的事件序列。
现在参考图8,其中提供了根据本发明的一个实施例的最短路径实例的框图。使用路由检查问题方法识别以确定顺序执行事件的遍历800遇到违规和新状态。
当假设违规导致新状态时,处于遍历800中的所公开的过程从转变探索阶段切换到状态探索阶段以允许迅速发现应用的所有状态。遍历800的过程从状态802开始并执行事件808。在一个结果中,达到状态804,但是在另一结果中,达到状态806。由于过程早期并未发现和探索该新状态(状态806),因此可能有更多新状态存在。转变探索阶段暂停,并且重新启动状态探索阶段以发现潜在的新状态。
现在参考图9,其中提供了使用可操作以用于本发明的各实施例的图3的抓取系统的过程的流程图。过程900是双阶段过程的一个实例,其中包括图3的抓取系统300的状态探索阶段和转变探索阶段。
过程900代表图3的抓取系统300的双阶段过程的高级视图。过程900开始并启动状态探索阶段(步骤904)。过程900的状态探索阶段分析已接收的Web应用以通过尽可能少的工作和时间发现已接收的应用的所有状态。与每个已识别状态关联的事件根据预定的优先级顺序执行并记录每个事件执行的结果。
过程900判定是否剩余转变(步骤906)。过程900假定已经执行了与每个已识别状态关联的事件(除了之前被分类为本地菜单事件的任何事件以外)。响应于判定未剩余转变,过程900结束(步骤912)。响应于判定剩余转变,过程900启动转变探索阶段(步骤908)。转变探索阶段通过执行剩余的本地菜单事件,验证针对本地菜单事件做出的所有假设。
过程900判定新状态是否源自在转变探索阶段执行剩余的本地菜单事件(步骤910)。响应于判定产生新状态,过程900返回以如先前那样执行状态探索阶段(步骤904)。响应于判定未产生新状态,过程900返回以如先前那样判定是否剩余转变(步骤906)。
因此,过程900针对状态集合中各个状态的关联事件,使用到下一事件的最短路径处理特定应用的状态集合和关联事件。
现在参考图10,其中提供了使用可操作以用于本发明的各实施例的图3的抓取系统的状态探索阶段的流程图。过程1000是图3的抓取系统300的双阶段过程的状态探索阶段的一个实例。
过程1000开始(步骤1002)并接收应用的统一资源定位符(步骤1004)。在这种情况下,应用是Web应用并且统一资源定位符通常引用网页。过程1000尝试识别应用的当前状态中的所有事件(步骤1006)。
过程1000将与当前状态关联的事件集合进行分类(步骤1008)。过程1000根据与所述分类关联的优先级识别下一待执行事件(步骤1010)。过程1000判定是否存在下一待执行事件(步骤1012)。响应于判定没有下一待执行事件,过程1000移至转变探索阶段(步骤1014)。过程1000判定是否已识别到新状态(步骤1016)。响应于判定未识别到任何新状态,过程1000终止(步骤1018)。响应于判定已识别到新状态,过程1000返回以如先前那样执行步骤1006.
响应于判定存在下一待执行事件,过程1000识别到下一待执行事件的最短路径(步骤1020)。通过选择导致新状态的概率更高的事件来确定该路径。过程1000朝向下一事件遍历所识别的最短路径(步骤1022)。过程1000判定是否达到包含下一待执行事件的下一状态(步骤1024)。
响应于判定达到包含下一待执行事件的下一状态,过程1000执行事件(步骤1028)。过程1000维护已执行的事件的历史(步骤1030)。所述历史包括数据,其中包含代表事件的执行次数的计数。过程1000使用已执行的事件的行为将已执行的事件进行分类(步骤1032)。过程1000返回以如先前那样执行步骤1010。
响应于判定未达到包含下一待执行事件的下一状态,过程1000判定是否达到新状态(步骤1026)。响应于判定未达到新状态,过程1000返回以如先前那样执行步骤1010。响应于判定达到新状态,过程1000返回以如先前那样执行步骤1006。
现在参考图11,其中提供了使用可操作以用于本发明的各实施例的图3的抓取系统的转变探索阶段的流程图。过程1100是图3的抓取系统300的转变探索阶段的一个实例。
过程1100开始(步骤1102)并接收本地菜单事件集合(步骤1104)。本地菜单事件是使用图3的抓取系统300完成处理的状态探索阶段之后剩余的事件集合。过程1100使用本地菜单事件集合和所述菜单事件集合附带的状态集合构造有向图(步骤1106)。所述本地菜单事件集合中的每个本地菜单事件具有附着于本地菜单事件上的对应状态。
过程1100定义有向图的浏览路径,其中有向图的每个边被访问一次(步骤1108)。过程1100执行本地菜单事件集合中的每个事件(步骤1110)。对于已执行的每个事件,过程1100判定结果状态是否为新状态(步骤1112)。
响应于判定结果状态为新状态,过程1100返回到状态探索阶段(步骤1120)并且随后终止(步骤1118)。
响应于判定结果状态不是新状态,过程1100忽略违规并继续根据浏览路径执行事件(步骤1114)。过程1100判定是否存在更多转变(步骤1116)。
响应于判定存在更多转变,过程1100返回到之前的步骤1110。响应于判定不存在更多转变,过程1100终止(步骤1118)。
因此,在一个示例性实施例中提供了一种用于抓取富互联网应用的计算机实现的过程,所述计算机实现的过程根据已发现事件集合中的每个事件集合的预定优先级,在状态探索阶段执行所述已发现事件集合,其中具有较高优先级的事件在执行具有较低优先级的事件之前执行完毕,并且响应于判定剩余转变,在转变探索阶段执行剩余的事件集合。所述计算机实现的过程还判定作为执行该事件集合内的事件的结果,是否存在新状态,并且响应于判定存在新状态,返回到状态探索阶段。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以下的权利要求中的对应结构、材料、操作以及所有功能性限定的装置或步骤的等同替换,旨在包括任何用于与在权利要求中具体指出的其它单元相组合地执行该功能的结构、材料或操作。所给出的本发明的描述在于示意和描述,并非是穷尽性的,也并非将本发明限定到所公开的形式。在不偏离本发明的范围和精神的情况下,对于本领域的普通技术人员而言,许多修改和变化都将是显而易见的。实施例的选择和描述,旨在最好地解释本发明的原理、实际应用,当适合于所构想的特定应用时,可使本技术领域的普通技术人员理解本发明带有各种修改的各实施例。
本发明可以采取完全的硬件实施方式、完全的软件实施方式或同时包含硬件和软件元素的实施例的形式。在一个优选实施例中,本发明在软件中实现,其中包括但不限于固件、驻留软件、微代码,以及本领域的技术人员识别的其它软件介质。
重要的是指出,虽然在功能完备的数据处理系统上下文中描述了本发明,但是本领域的普通技术人员将理解,本发明的过程能够以计算机可读数据存储介质的形式分发,所述计算机可读数据存储介质上以各种形式存储计算机可执行指令。计算机可读数据存储介质的实例包括可记录型介质,例如软盘、硬盘驱动器、RAM、CD-ROM、DVD-ROM。所述计算机可执行指令可以采取编码格式的形式,这些代码格式在特定数据处理系统中针对实际使用进行解码。
适合于存储和/或执行计算机可执行的指令的数据处理系统将包括至少一个通过系统总线直接或间接连接到存储元件的处理器。所述存储元件可以包括在程序代码的实际执行期间采用的本地存储器、大容量存储装置以及提供至少某些程序代码的临时存储以减少必须在执行期间从大容量存储装置检索代码的次数的高速缓冲存储器。
输入/输出或I/O设备(包括但不限于键盘、显示器、指点设备等)可以直接或通过中间I/O控制器与系统相连。
网络适配器也可以被连接到系统以使所述数据处理系统能够通过中间专用或公共网络变得与其他数据处理系统或远程打印机或存储设备相连。电话调制解调器、电缆调制解调器和以太网卡只是几种当前可用的网络适配器类型。
Claims (9)
1.一种用于抓取富互联网应用的计算机实现的过程,所述计算机实现的过程包括:
根据已发现事件集合中的每个事件集合内的事件的预定优先级,在状态探索阶段执行所述已发现事件集合中的事件,其中具有较高优先级的事件在执行具有较低优先级的事件之前执行完毕;
判定是否剩余转变;
响应于判定剩余转变,在转变探索阶段执行剩余的事件集合;
判定作为执行该事件集合内的事件的结果,是否存在新状态;以及
响应于判定存在新状态,返回到所述状态探索阶段。
2.根据权利要求1的计算机实现的过程,其中在状态探索阶段执行已发现事件集合进一步包括:
接收应用的初始统一资源定位符;
识别当前状态中的所有事件;
将与所述当前状态关联的事件集合进行分类以形成分类后的事件;
根据与所述分类关联的优先级识别下一待执行事件;
判定是否存在下一待执行事件;
响应于判定存在下一待执行事件,识别到所述下一待执行事件的最短路径;
朝向所述下一事件遍历所识别的路径;
判定是否达到包含所述下一待执行事件的下一状态;
响应于判定达到包含所述下一待执行事件的下一状态,执行所述事件;
维护已执行的每个事件的历史;
使用所述已执行的事件的行为将所述已执行的事件进行分类;
响应于判定未达到包含所述下一待执行事件的下一状态,执行所述事件,并判定是否达到新状态;
响应于判定达到所述新状态,返回以识别所述当前状态中的所有事件;
响应于判定未达到所述新状态,返回以根据与所述分类关联的优先级识别下一待执行事件;
响应于判定不存在下一待执行事件,移至转变探索阶段;
判定是否已识别新状态;以及
响应于判定已识别新状态,返回以识别所述当前状态中的所有事件。
3.根据权利要求1的计算机实现的过程,其中通过从包括全局未执行事件、本地未执行事件、本地未分类事件、本地菜单事件以及非菜单事件的组中选择的分类来确定所述已发现事件集合中的每个事件集合的所述预定优先级。
4.根据权利要求1的计算机实现的过程,其中在转变探索阶段执行事件集合进一步包括:
接收本地菜单事件集合;
使用所述本地菜单事件集合和所述菜单事件集合附带的状态集合来构造有向图;
定义所述有向图的浏览路径,其中所述有向图的每个边被访问一次;
执行所述本地菜单事件集合中的每个事件;
判定结果状态是否为新状态;
响应于判定所述结果状态为新状态,返回所述状态探索阶段;以及
响应于判定所述结果状态不是新状态,忽略违规并根据所述浏览路径继续事件执行。
5.根据权利要求2的计算机实现的过程,其中识别到所述下一待执行事件的最短路径进一步包括:
由路径估计器使用从所述当前状态开始的路径构造策略来估计所述最短路径,其中使用宽度优先搜索查找达到包含最可能导致新状态的操作的状态的最短路径,其中所述路径估计器使用有关未分类事件的假设和菜单事件结果来构建包括一个或多个事件的所述路径。
6.根据权利要求1的计算机实现的过程,其中根据与事件的所述分类关联的优先级执行每个事件集合进一步包括:
在选择所述事件集合中导致新状态的概率较低的事件之前,选择导致新状态的概率较高的事件以便执行。
7.根据权利要求2的计算机实现的过程,其中维护已执行的事件的历史进一步包括:
针对每个事件收集与每个事件关联的数据,所述数据包括代表所述每个事件的执行次数的计数。
8.一种用于抓取富互联网应用的装置,所述装置包括适于执行权利要求1至7中的任一权利要求的方法的构件。
9.一种用于抓取富互联网应用的装置,所述装置包括:
通信光纤通道网络;
存储器,其与所述通信光纤通道网络相连,其中所述存储器包含计算机可执行程序代码;
通信单元,其与所述通信光纤通道网络相连;
输入/输出单元,其与所述通信光纤通道网络相连;
显示器,其与所述通信光纤通道网络相连;以及
处理器单元,其与所述通信光纤通道网络相连,其中所述处理器单元执行所述计算机可执行程序代码以引导所述装置执行以下操作:
根据已发现事件集合中的每个事件集合的预定优先级,在状态探索阶段执行所述已发现事件集合,其中具有较高优先级的事件在执行具有较低优先级的事件之前执行完毕;
判定是否剩余转变;
响应于判定剩余转变,在转变探索阶段执行事件集合;
判定作为执行该事件集合内的事件的结果,是否存在新状态;以及
响应于判定存在新状态,返回到所述状态探索阶段。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CA2790379A CA2790379C (en) | 2012-09-20 | 2012-09-20 | Crawling rich internet applications |
CA2,790,379 | 2012-09-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103823827A true CN103823827A (zh) | 2014-05-28 |
CN103823827B CN103823827B (zh) | 2017-03-01 |
Family
ID=50275532
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310428634.2A Expired - Fee Related CN103823827B (zh) | 2012-09-20 | 2013-09-18 | 用于抓取富互联网应用的方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9292604B2 (zh) |
CN (1) | CN103823827B (zh) |
CA (1) | CA2790379C (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10068013B2 (en) * | 2014-06-19 | 2018-09-04 | Samsung Electronics Co., Ltd. | Techniques for focused crawling |
US10542025B2 (en) * | 2017-12-26 | 2020-01-21 | International Business Machines Corporation | Automatic traffic classification of web applications and services based on dynamic analysis |
US11262979B2 (en) | 2019-09-18 | 2022-03-01 | Bank Of America Corporation | Machine learning webpage accessibility testing tool |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090327261A1 (en) * | 2008-06-25 | 2009-12-31 | Microsoft Corporation | Search techniques for rich internet applications |
US20100185599A1 (en) * | 2005-07-29 | 2010-07-22 | Adobe Systems Incorporated | Exposing rich internet application content to search engines |
CN102301351A (zh) * | 2009-04-03 | 2011-12-28 | 国际商业机器公司 | 提高用于利用协作抓取的富互联网应用程序的可访问性的方法及其计算机程序 |
CN102609518A (zh) * | 2012-02-09 | 2012-07-25 | 清华大学 | 多状态ajax网页内容获取方法及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060190561A1 (en) | 2002-06-19 | 2006-08-24 | Watchfire Corporation | Method and system for obtaining script related information for website crawling |
US8230039B2 (en) * | 2008-04-16 | 2012-07-24 | Adobe Systems, Incorporated | Systems and methods for accelerated playback of rich internet applications |
US8131753B2 (en) * | 2008-05-18 | 2012-03-06 | Rybak Ilya | Apparatus and method for accessing and indexing dynamic web pages |
US8250059B2 (en) | 2009-09-14 | 2012-08-21 | International Business Machines Corporation | Crawling browser-accessible applications |
US8655865B1 (en) * | 2011-05-27 | 2014-02-18 | Adobe Systems Incorporated | Method and apparatus for indexing rich internet content using contextual information |
-
2012
- 2012-09-20 CA CA2790379A patent/CA2790379C/en active Active
-
2013
- 2013-09-18 CN CN201310428634.2A patent/CN103823827B/zh not_active Expired - Fee Related
- 2013-09-20 US US14/032,617 patent/US9292604B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100185599A1 (en) * | 2005-07-29 | 2010-07-22 | Adobe Systems Incorporated | Exposing rich internet application content to search engines |
US20090327261A1 (en) * | 2008-06-25 | 2009-12-31 | Microsoft Corporation | Search techniques for rich internet applications |
CN102301351A (zh) * | 2009-04-03 | 2011-12-28 | 国际商业机器公司 | 提高用于利用协作抓取的富互联网应用程序的可访问性的方法及其计算机程序 |
CN102609518A (zh) * | 2012-02-09 | 2012-07-25 | 清华大学 | 多状态ajax网页内容获取方法及系统 |
Non-Patent Citations (5)
Title |
---|
ALI MESBAH ET AL: "crawling AJAX by inferring user interface state changes", 《EIGHTH INTERNATIONAL CONFERENCE ON WEB ENGINEERING》 * |
KAMARA BENJAMIN ET AL: "a strategy for efficient crawling of rich internet applications", 《ICWE2011 LNCS 6757》 * |
MUSTAFA EMRE DINCTURK ET AL: "a statistical approach for efficient crawling of rich internet applications", 《WEB ENGINEERING 12TH INTERNATIONAL CONFERENCE ICWE 2012》 * |
XUESONG ZHANG ET AL: "AJAX crawling scheme based on document object model", 《2012 FOURTH ONTERNATIONAL CONFERENCE ON COMPUTATIONAL AND INFORMATION SCIENCES》 * |
ZHAOMENG PENG ET AL: "graph-based ajax crawl:mining data from rich internet applications", 《COMPUTER SCIENCE AND ELECTRONICS ENGINEERING,2012 INTERNATIONAL CONFERENCE ON》 * |
Also Published As
Publication number | Publication date |
---|---|
US20140081946A1 (en) | 2014-03-20 |
CA2790379A1 (en) | 2014-03-20 |
CA2790379C (en) | 2020-02-25 |
US9292604B2 (en) | 2016-03-22 |
CN103823827B (zh) | 2017-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020037918A1 (zh) | 基于预测模型的风险控制策略的确定方法及相关装置 | |
CN103888490B (zh) | 一种全自动的web客户端人机识别的方法 | |
US10621255B2 (en) | Identifying equivalent links on a page | |
US10901730B2 (en) | Identifying equivalent javascript events | |
CN104537070A (zh) | 挖掘旅游目的地景点的方法和设备 | |
US11836331B2 (en) | Mathematical models of graphical user interfaces | |
Wong et al. | Design of a crawler for online social networks analysis | |
CN112328802A (zh) | 数据处理方法、装置和服务器 | |
CN105119735A (zh) | 一种用于确定流量类型的方法和装置 | |
CN108055166B (zh) | 一种嵌套的应用层协议的状态机提取系统及其提取方法 | |
US10831473B2 (en) | Locating business rules in application source code | |
CN103823827A (zh) | 用于抓取富互联网应用的方法和装置 | |
CN107563789A (zh) | 数据处理方法、系统、终端及计算机可读存储介质 | |
CN112685618A (zh) | 用户特征识别方法、装置、计算设备及计算机存储介质 | |
CN106651183A (zh) | 工控系统的通信数据安全审计方法及装置 | |
CN114817928A (zh) | 网络空间数据融合分析方法、系统、电子设备及存储介质 | |
CN115098362A (zh) | 页面测试方法、装置、电子设备以及存储介质 | |
CN110070371B (zh) | 一种数据预测模型建立方法及其设备、存储介质、服务器 | |
CN103581263A (zh) | Url点击事件的识别方法、装置和服务器 | |
Hu et al. | Roaming across the castle tunnels: An empirical study of inter-app navigation behaviors of Android users | |
CN109635226A (zh) | 房地产数据的预警推送方法、服务器及存储介质 | |
RU2791824C1 (ru) | Способ и вычислительное устройство для выявления целевого вредоносного веб-ресурса | |
CN109241428B (zh) | 用户性别的确定方法、装置、服务器及存储介质 | |
WO2024067039A1 (zh) | 应用程序的拨测方法、电子设备、计算机可读介质 | |
Lai | Efficient and effective information finding on small screen devices |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170301 |