网络服务构建方法和设备以及网页数据抽取方法和设备技术

技术编号:15778399 阅读:44 留言:0更新日期:2017-07-08 18:16
本发明专利技术公开了一种网络服务构建方法和设备以及网页数据抽取方法和设备。所述网络服务构建方法包括:收集与深层网页的访问有关的数据,所述数据包括HTTP消息、JS事件、堆栈快照;在所收集的HTTP消息中,搜索服务相关参数,并将搜索到的参数分为用户输入参数、显式参数、隐式参数;构建能够生成显式参数的第一XPath;构建能够生成隐式参数的JS代码;构建能够生成最终的深层网页返回结果的第二XPath;以及根据JS事件、堆栈快照和所观察的HTTP消息的顺序,构建表示服务内部流程的结构;其中所述用户输入参数、JS代码、第一和第二XPath、表示服务内部流程的结构构成所述网络服务。

【技术实现步骤摘要】
网络服务构建方法和设备以及网页数据抽取方法和设备
本专利技术一般地涉及深层网页相关的数据抽取技术以及相关网络服务的构建方法。具体而言,本专利技术涉及一种构建用于对深层网页的数据进行抽取的网络服务的方法和设备以及相应的网页数据抽取方法和设备。
技术介绍
近年来,随着互联网及其应用的发展,网络上可获得和利用的各类有用信息呈几何级增长,极大地增加了人们获取信息的来源。网页可大体分为表层网页和深层网页。表层网页容易被用户使用,同时会提供API以利于机器处理。深层网页对用户可读,但对机器并不友好,也很少有相应的API。因此,提出了一些数据抽取方法,将对深层网页的访问封装为网络服务(WebService),从而利于机器访问深层网页,并可以基于这样的网络服务生成更多更高层次的网络服务。如将现有的网络服务整合以提供新的网络服务等。然而,随着网络的发展,Javascript(Java脚本语言,下文中简称为JS)被广泛地应用到了网页中。随之带来的问题是在深层网页的访问中,很多与深层网页的访问相关的登录或查询参数可能是JS代码执行的动态结果,传统的数据抽取技术难以进行其中涉及JS代码动态执行的深层网页访问。因此,难以构建相应的网络服务以抽取深层网页的数据。
技术实现思路
在下文中给出了关于本专利技术的简要概述,以便提供关于本专利技术的某些方面的基本理解。应当理解,这个概述并不是关于本专利技术的穷举性概述。它并不是意图确定本专利技术的关键或重要部分,也不是意图限定本专利技术的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。本专利技术的目的是针对现有技术的上述问题,提出了一种网络服务构建方法和设备以及网页数据抽取方法和设备。根据本专利技术的技术方案能够将涉及JS代码动态执行的深层网页访问,构建为网络服务,并且利用该网络服务可以抽取深层网页的数据。为了实现上述目的,根据本专利技术的一个方面,提供了一种网络服务构建方法,包括:收集与深层网页的访问有关的数据,所述数据包括HTTP消息、JS事件、堆栈快照;在所收集的HTTP消息中,搜索服务相关参数,并将搜索到的参数分为用户输入参数、显式参数、隐式参数;构建能够生成显式参数的第一XPath;构建能够生成隐式参数的JS代码;构建能够生成最终的深层网页返回结果的第二XPath;以及根据JS事件、堆栈快照和所观察的HTTP消息的顺序,构建表示服务内部流程的结构;其中所述用户输入参数、JS代码、第一和第二XPath、表示服务内部流程的结构构成了所述网络服务。根据本专利技术的另一个方面,提供了一种深层网页的数据抽取方法,其包括根据用户输入参数,构建HTTP请求;获取HTTP请求对应的HTTP响应;根据所获取的HTTP响应,利用第一XPath生成显式参数,并利用JS代码生成隐式参数;根据用户输入参数、显式参数、隐式参数中的至少一个,构建HTTP请求;获取HTTP请求对应的HTTP响应;按照表示服务内部流程的结构重复执行上述生成、构建、获取步骤,直至根据所获取的HTTP响应,利用第二XPath生成最终的深层网页返回结果。根据本专利技术的又一个方面,提供了一种网络服务构建设备,其包括:收集装置,被配置为收集与深层网页的访问有关的数据,所述数据包括HTTP消息、JS事件、堆栈快照;参数搜索装置,被配置为在所收集的HTTP消息中,搜索服务相关参数,并将搜索到的参数分为用户输入参数、显式参数、隐式参数;第一XPath构建装置,被配置为构建能够生成显式参数的第一XPath;JS代码构建装置,被配置为构建能够生成隐式参数的JS代码;第二XPath构建装置,被配置为构建能够生成最终的深层网页返回结果的第二XPath;以及结构构建装置,被配置为根据JS事件、堆栈快照和所观察的HTTP消息的顺序,构建表示服务内部流程的结构;其中所述用户输入参数、JS代码、第一和第二XPath、表示服务内部流程的结构构成了所述网络服务。根据本专利技术的再一个方面,提供了一种深层网页的数据抽取设备,其包括:第一构建装置,用于根据用户输入参数,构建HTTP请求;获取装置,用于获取HTTP请求对应的HTTP响应;参数生成装置,用于根据所获取的HTTP响应,利用第一XPath生成显式参数,并利用JS代码生成隐式参数;第二构建装置,用于根据用户输入参数、显式参数、隐式参数中的至少一个,构建HTTP请求;控制装置,用于按照表示服务内部流程的结构指令所述参数生成装置、第二构建装置、获取装置执行操作,直至其根据所获取的HTTP响应,利用第二XPath生成最终的深层网页返回结果。另外,根据本专利技术的另一方面,还提供了一种存储介质。所述存储介质包括机器可读的程序代码,当在信息处理设备上执行所述程序代码时,所述程序代码使得所述信息处理设备执行根据本专利技术的上述方法。此外,根据本专利技术的再一方面,还提供了一种程序产品。所述程序产品包括机器可执行的指令,当在信息处理设备上执行所述指令时,所述指令使得所述信息处理设备执行根据本专利技术的上述方法。附图说明参照下面结合附图对本专利技术实施例的说明,会更加容易地理解本专利技术的以上和其它目的、特点和优点。附图中的部件只是为了示出本专利技术的原理。在附图中,相同的或类似的技术特征或部件将采用相同或类似的附图标记来表示。附图中:图1示出了根据本专利技术实施例的网络服务构建方法的流程图;图2示出了根据本专利技术实施例的深层网页数据抽取方法的流程图;图3示出了根据本专利技术实施例的网络服务构建设备的结构方框图;图4示出了根据本专利技术实施例的深层网页数据抽取设备的结构方框图;以及图5示出了可用于实施根据本专利技术实施例的方法和设备的计算机的示意性框图。具体实施方式在下文中将结合附图对本专利技术的示范性实施例进行详细描述。为了清楚和简明起见,在说明书中并未描述实际实施方式的所有特征。然而,应该了解,在开发任何这种实际实施方式的过程中必须做出很多特定于实施方式的决定,以便实现开发人员的具体目标。例如,符合与系统及业务相关的限制条件,并且这些限制条件可能会随着实施方式的不同而有所改变。此外,还应该了解,虽然开发工作有可能是非常复杂和费时的,但对得益于本公开内容的本领域技术人员来说,这种开发工作仅仅是例行的任务。在此,还需要说明的一点是,为了避免因不必要的细节而模糊了本专利技术,在附图中仅仅示出了与根据本专利技术的方案密切相关的装置结构和/或处理步骤,而省略了与本专利技术关系不大的其他细节。另外,还需要指出的是,在本专利技术的一个附图或一种实施方式中描述的元素和特征可以与一个或更多个其它附图或实施方式中示出的元素和特征相结合。如上所述,传统技术面对的问题是越来越多的深层网页访问中涉及JS代码的动态执行。为了解决这样的问题,必须在相应的网络服务中动态执行JS代码。一般地说,访问深层网页的过程包括:例如登录、查询、显示结果。这个过程在底层是一系列的HTTP消息,如HTTP请求及对应的HTTP响应。在这个过程中会涉及到JS代码的动态执行。对于大多数深层网页的访问来说,这个过程是固定的,只是参数的值不同。因此,可以通过重现这一系列的过程,即发送HTTP请求,从获得的HTTP响应中提取参数来构建下一个HTTP请求,直至获得包括最终返回结果的HTTP消息,来获得深层网页的数据。因此,可以通过收集观测数据、构建模式,本文档来自技高网...
网络服务构建方法和设备以及网页数据抽取方法和设备

【技术保护点】
一种网络服务构建方法,包括:收集与深层网页的访问有关的数据,所述数据包括HTTP消息、JS事件、堆栈快照;在所收集的HTTP消息中,搜索服务相关参数,并将搜索到的参数分为用户输入参数、显式参数、隐式参数;构建能够生成显式参数的第一XPath;构建能够生成隐式参数的JS代码;构建能够生成最终的深层网页返回结果的第二XPath;以及根据JS事件、堆栈快照和所观察的HTTP消息的顺序,构建表示服务内部流程的结构;其中所述用户输入参数、JS代码、第一和第二XPath、表示服务内部流程的结构构成了所述网络服务;其中显式参数能够利用XPath从原始的页面提取,隐式参数仅能够通过执行JS代码获得。

【技术特征摘要】
1.一种网络服务构建方法,包括:收集与深层网页的访问有关的数据,所述数据包括HTTP消息、JS事件、堆栈快照;在所收集的HTTP消息中,搜索服务相关参数,并将搜索到的参数分为用户输入参数、显式参数、隐式参数;构建能够生成显式参数的第一XPath;构建能够生成隐式参数的JS代码;构建能够生成最终的深层网页返回结果的第二XPath;以及根据JS事件、堆栈快照和所观察的HTTP消息的顺序,构建表示服务内部流程的结构;其中所述用户输入参数、JS代码、第一和第二XPath、表示服务内部流程的结构构成了所述网络服务;其中显式参数能够利用XPath从原始的页面提取,隐式参数仅能够通过执行JS代码获得。2.如权利要求1所述的网络服务构建方法,其中在所述收集步骤后,将所收集的数据按页面进行分类。3.如权利要求2所述的网络服务构建方法,其中在所述分类步骤后,去除与用户操作无关的页面的相关数据。4.如权利要求3所述的网络服务构建方法,其中利用JS事件和用户数据标记器,选择与用户操作有关的页面,从而确定与用户操作无关的页面。5.如权利要求2所述的网络服务构建方法,其中所述构建能够生成隐式参数的JS代码包括:针对每个页面的所收集的数据,根据堆栈快照,获得JS活动历史信息;从HTML源代码和HTTP消息中包含的JS代码中,解析出JS语法树;按照JS活动历史信息,遍历并标记JS语法树;通过仅保留JS语法树中与服务相关的函数和节点,精简JS语法树;建立常数表以保存与服务相关的常数;以自定义对象代替与服务相关的浏览器对象;基于精简的JS语法树、常数表、自定义对象,生成JS代码。6.如权利要求5所述的网络服务构建方法,其中所述标记JS语法树包括:将与JS活动历史信息无关的函数标记为无用;在GETVAR、SETVAR、GETPROP、SETPROP节点中,确定函数和变量之间、变量和变量之间的依赖关系,并将确定结果附加到对应的节点上;标记与服务无关的浏览器对象;标记用于产生HTTP请求的关键对象。7.如权利要求6所述的网络服务构建方法,其中所述精简JS语法树包括:去除所有被标记为无用的函数;遍历JS语法树,以定位关键对象及其对应的关键节点;将关键节点相关的变量放入依赖集中;检查关键节点以及直至根节点的其父节点和兄弟节点,以执行如下处理:如果依赖集中...

【专利技术属性】
技术研发人员:邹纲皮冰锋张军钟朝亮于浩松尾昭彦
申请(专利权)人:富士通株式会社
类型:发明
国别省市:日本,JP

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1