CN110147477A - Web系统的数据资源模型化提取方法、装置以及设备 - Google Patents

Web系统的数据资源模型化提取方法、装置以及设备 Download PDF

Info

Publication number
CN110147477A
CN110147477A CN201910295549.0A CN201910295549A CN110147477A CN 110147477 A CN110147477 A CN 110147477A CN 201910295549 A CN201910295549 A CN 201910295549A CN 110147477 A CN110147477 A CN 110147477A
Authority
CN
China
Prior art keywords
data
web
model
marked region
page
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
Application number
CN201910295549.0A
Other languages
English (en)
Other versions
CN110147477B (zh
Inventor
张颖
徐经纬
黄罡
苏星
蔡斯博
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Changchun Interui Software Co ltd
Intel Technology Co ltd
Shenqi Digital Co ltd
Original Assignee
Beijing Yinte Rui Software Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Yinte Rui Software Co Ltd filed Critical Beijing Yinte Rui Software Co Ltd
Priority to CN201910295549.0A priority Critical patent/CN110147477B/zh
Publication of CN110147477A publication Critical patent/CN110147477A/zh
Application granted granted Critical
Publication of CN110147477B publication Critical patent/CN110147477B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明涉及通信技术领域,提供了一种Web系统的数据资源模型化提取方法、装置以及设备,旨在解决现有提取方法存在具有较高技术门槛、提取方法复杂的问题。所述Web系统的数据资源模型化提取方法包括:确定用户对Web网页的标记区域;检测所述标记区域对应的Web数据的页面结构类型;获取与所述页面结构类型相匹配的提取模型;根据所述提取模型的模型结构,结构化地输出所述Web数据。使用所述方法后,对于用户,仅需对网页上的某一区域进行标记,客户端会自动进行上述检测页面结构类型、获取提取模型、结构化地输出Web数据等步骤,用户不需要每次在提取数据前进行编辑代码或编辑提取规则等操作,也不需要在每次提取后手动对数据进行结构组织。

Description

Web系统的数据资源模型化提取方法、装置以及设备
技术领域
本发明涉及通信技术领域,具体而言,涉及一种Web系统的数据资源模型化提取方法、装置以及设备。
背景技术
随之Web技术的发展以及大数据时代的到来,Web系统包含越来越多的数据信息,Web数据提取是指从浏览器加载的网页上提取所需信息的过程,现有技术已提出了多种Web数据提取方法。
例如每次提取时,针对所需信息的具体情况,通过编写程序代码以提取所需信息;又例如每次提取时,针对所需信息的具体情况,通过编辑提取规则(如正则表达式)以提取所需信息;还例如当提取出多份数据后,需要选取出每份数据,并手动对选取的数据进行结构组织,形成结构化数据,比如将零散的、无组织的数据组织成列表数据。
然而如上所述的各种现有Web数据提取方法,均具有较高的技术门槛,提取方法复杂,导致Web数据提取所需的人力成本和时间成本较高。
发明内容
有鉴于此,本发明的目的在于提供一种Web系统的数据资源模型化提取方法、装置以及设备,旨在解决现有提取方法存在具有较高技术门槛、提取方法复杂的问题。
第一方面,本发明实施例提供了一种Web系统的数据资源模型化提取方法,应用于客户端,包括:
确定用户对Web网页的标记区域;
检测所述标记区域对应的Web数据的页面结构类型;
获取与所述页面结构类型相匹配的提取模型;
根据所述提取模型的模型结构,结构化地输出所述Web数据。
可选地,所述根据所述提取模型的模型结构,结构化地输出所述Web数据,包括:根据所述提取模型中包含的各数据单元,从所述标记区域对应的html文档中获取所述各数据单元的内容;按照所述各数据单元在所述提取模型中排列成的所述模型结构,将获取到的所述各数据单元的内容进行结构化地排列,并输出。
可选地,所述页面结构类型包括:文本信息类结构、信息列表类结构、表格类结构和表单类结构;所述文本信息类结构对应的提取模型中至少包含以下数据单元:标题、作者、时间以及正文;所述信息列表类结构对应的提取模型中至少包含以下数据单元:栏目和列表元素;所述表格类结构对应的提取模型中至少包含以下数据单元:表头和表内容;所述表单类结构对应的提取模型中至少包含以下数据单元:描述性文字和实际内容。
可选地,所述表单类结构对应的提取模型中各数据单元按左右结构排列,左边为所述描述性文字,右边为所述实际内容。
可选地,在检测出所述标记区域对应的Web数据的页面结构类型后,所述Web系统的数据资源模型化提取方法还包括:根据所述页面结构类型,判断是否需要对所述标记区域对应的html文档进行JavaScript静态代码解析;以及如果需要进行所述JavaScript静态代码解析,则进行所述JavaScript静态代码解析;所述根据所述提取模型的模型结构,结构化地输出所述Web数据,包括:对于在进行所述JavaScript静态代码解析后从Web服务器获取的新Web数据,根据所述提取模型的模型结构,结构化地输出所述新Web数据。
可选地,所述Web系统的数据资源模型化提取方法还包括:在进行所述JavaScript静态代码解析时,从所述JavaScript静态代码中找到ajax请求,并重构所述ajax请求;将重构后的ajax请求发送给所述Web服务器,以从所述Web服务器获取所述新Web数据。
可选地,所述确定用户对Web网页的标记区域,包括:接收用户输入的网址,并加载所述网址对应的所述Web网页;接收用户对所述Web网页的部分区域或全部区域的框选操作;将所述框选操作所框选的区域确定为所述标记区域。
可选地,所述检测所述标记区域对应的Web数据的页面结构类型,包括:从所述Web网页对应的DOM树中确定所述标记区域在所述DOM树中的位置和属性;根据所述标记区域在所述DOM树中的位置和属性,确定所述标记区域对应的Web数据的页面结构类型。
第二方面,本发明实施例提供了一种Web系统的数据资源模型化提取装置,包括:
确定模块,用于确定用户对Web网页的标记区域;
检测模块,用于检测所述标记区域对应的Web数据的页面结构类型;
获取模块,用于获取与所述页面结构类型相匹配的提取模型;
输出模块,用于根据所述提取模型的模型结构,结构化地输出所述Web数据。
可选地,所述输出模块包括:
提取子模块,用于根据所述提取模型中包含的各数据单元,从所述标记区域对应的html文档中获取所述各数据单元的内容;以及
结构化子模块,用于按照所述各数据单元在所述提取模型中排列成的所述模型结构,将获取到的所述各数据单元的内容进行结构化地排列,并输出。
可选地,所述输出模块包括:
判断子模块,用于根据所述页面结构类型,判断是否需要对所述标记区域对应的html文档进行JavaScript静态代码解析;
解析子模块,用于如果需要进行所述JavaScript静态代码解析,则进行所述JavaScript静态代码解析;以及
结构化子模块,对于在进行所述JavaScript静态代码解析后从Web服务器获取的新Web数据,根据所述提取模型的模型结构,结构化地输出所述新Web数据。
可选地,所述输出模块包括:
重构子模块,用于在进行所述JavaScript静态代码解析时,从所述JavaScript静态代码中找到ajax请求,并重构所述ajax请求;以及
发送子模块,用于将重构后的ajax请求发送给所述Web服务器,以从所述Web服务器获取所述新Web数据。
可选地,所述确定模块包括:
加载子模块,用于接收用户输入的网址,并加载所述网址对应的所述Web网页;
接收子模块,用于接收用户对所述Web网页的部分区域或全部区域的框选操作;以及
确定子模块,用于将所述框选操作所框选的区域确定为所述标记区域。
可选地,所述检测模块包括:
定位子模块,用于从所述Web网页对应的DOM树中确定所述标记区域在所述DOM树中的位置和属性;以及
检测子模块,用于根据所述标记区域在所述DOM树中的位置和属性,确定所述标记区域对应的Web数据的页面结构类型。第三方面,本发明实施例提供了一种Web系统的数据资源模型化提取设备,包括处理器、存储器以及存储在所述存储器上并可被所述处理器执行的计算机程序,当所述计算机程序被所述处理器执行时,实现第一方面所述的Web系统的数据资源模型化提取方法。
与现有技术相比,本发明具有以下有益效果:
本发明提供的Web系统的数据资源模型化提取方法应用于客户端,用于从网页文档(如html文档、xml文档等)和/或数据库服务器获取web数据并提取。由于本发明提供的方法中,客户端首先检测用户所标记区域对应的Web数据的页面结构类型,再根据页面结构类型获取与所述页面结构类型相匹配的提取模型,最后根据所述提取模型的模型结构,结构化地输出所述Web数据;因此对于用户,仅需对网页上的某一区域进行标记,客户端会自动进行上述检测页面结构类型、获取提取模型、结构化地输出Web数据等步骤,用户不需要每次在提取数据前进行编辑代码或编辑提取规则等操作,也不需要在每次提取后手动对数据进行结构组织。所述方法解决了现有提取方法存在具有较高技术门槛、提取方法复杂的问题。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示出了实施例中提供的Web系统的数据资源模型化提取方法的流程示意图;
图2示出了实施例中提供的Web系统的数据资源模型化提取装置的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参阅图1,实施例提供了一种Web系统的数据资源模型化提取方法,其应用于客户端。为了便于理解所述Web系统的数据资源模型化提取方法,首先对Web系统的结构和工作过程进行简要介绍。
web系统通常是MVC结构,表现层(View层)是由文档对象模型(Document ObjectModel,DOM)来表示,DOM包含了页面元素信息,页面元素的组织方式,及页面结构等信息;控制层(Control层)通过JavaScript代码层进行逻辑组织,并与系统数据模型层(Model层)通过直接的ajax网络请求或者直接资源请求获取相应的数据资源。
Web系统主要包括客户端和服务器,客户端与服务器之间通过通信协议建立网络连接,如超文本传输协议HTTP。客户端向服务器发送请求,服务器响应客户端的请求,并向客户端反馈网页文档文件,如html文档、xml文档等。客户端接收网页文档,并加载、解析以及渲染所述网页文档,以显示出相应的网页。例如客户端对html文档进行加载、解析和渲染的过程为:
加载html文件时,当遇到外部css文件时,客户端会另外发出一个请求,以获取css文件;当遇到JavaScript文件时,html文档会挂起渲染(加载解析渲染同步)的线程,不仅要等待文档中JavaScript文件加载完毕,还要等待其解析执行完毕,才可以恢复html文档的渲染线程。解析html文件时,会将html文件解析成DOM树,会将外部css文件解析成样式表对象。渲染html文件时,即使将DOM树可视化表示。
考虑到Web系统的结构和工作过程均为现有技术,因此实施例对Web系统的结构和工作过程不再赘述。而以下,实施例将结合图1详细介绍本发明所提供的Web系统的数据资源模型化提取方法。
步骤101,确定用户对Web网页的标记区域。
作为示例,所述标记区域可以是用户利用鼠标对电脑屏幕的点击框选;也可以是用户利用电子手写笔对触敏屏的点触框选;还可以是用户利用手指或指关节对触敏屏的点触框选。应当理解的,本发明对所述标记区域具体是怎样被用户选中的,不做限定。
作为示例,所述标记区域可以是鼠标、电子手写笔、手指或指关节点击屏幕并拖动时形成的框型区域,类似现有的截图功能;也可以是鼠标、电子手写笔、手指或指关节点击屏幕并拖动时圈选的不规则封闭区域;也可以是鼠标、电子手写笔、手指或指关节点击屏幕后,以点击位置为中心,向外扩展一定面积的区域为所述标记区域,此方式的有益效果在于便于用户点选,提高点选速率。应当理解的,本发明对标记区域的具体形状不做限定。
作为示例,所述客户端在确定所述用户对Web网页的标记区域前,还可以接收用户输入的网址,并加载所述网址对应的所述Web网页;然后接收用户对所述Web网页的部分区域或全部区域的框选操作;并将所述框选操作所框选的区域确定为所述标记区域。例如,用户向所述客户端输入豆瓣电影的网址https://movie.douban.com/,客户端接收所述网址,并加载渲染出豆瓣电影的网页;用户利用鼠标点击屏幕并拖动形成框型区域,使“正在热映”区域的内容被框选,客户端接收用户的上述框选操作,并将所述框选操作后框选的区域确定为所述标记区域。本示例中,由于所述客户端可接受并加载用户输入的网址,因此具有浏览器的功能,可以满足用户的交互查询,使用户使用更方便,提高用户体验。
作为示例,所述客户端还可以接收用户的对网页的交互查询。例如,用户向客户端输入百度、必应、谷歌等搜索引擎的网址,通过搜索引擎的检索功能检索“豆瓣电影”关键词,然后通过检索结果进入豆瓣电影网,并加载渲染出相应的网页。
步骤102,检测所述标记区域对应的Web数据的页面结构类型。
作为示例,所述Web数据具体可以是html文档或xml文档中包含的数据,也可以是存储于数据库服务器中的数据。
作为示例,所述页面结构类型可以是:文本信息类结构、信息列表类结构、表格类结构和表单类结构等。具体地,例如新闻、游记、影评、博客等的详情,通常对应所述文本信息类结构;例如新闻、游记、影评、博客等的列表,通常对应所述信息列表类结构;例如html中以table标签表示的内容,通常对应所述表格类结构;例如html中以form标签表示的内容,通常对应所述表单类结构。
作为示例,实施例具体可通过下述方法检测所述标记区域对应的Web数据的页面结构类型,所述方法包括:从所述Web网页对应的DOM树中确定所述标记区域在所述DOM树中的位置和属性;根据所述标记区域在所述DOM树中的位置和属性,确定所述标记区域对应的Web数据的页面结构类型。具体地,客户端可利用Xpath语言从DOM树中定位出所述标记区域,从而确定所述标记区域在所述DOM树中的位置和属性。HTML标记区域的页面结构的分析主要是对DOM树进行分析。HTML的标签通过分类可以细化成按钮、链接、文本区、文本列表区、表格、表单等。具体地,可首先根据位置信息在整个页面的DOM树中获取到标记区域对应的子树,之后分析子树中的html标签:如果子树靠近根节点的位置出现table标签,并且包含tbody,thead,th,tr,td等标签,则可判定为表格类;如果子树靠近根节点的位置出现form标签,则可判定为表单类;而如果子树中存在多个结构相似的部分,则可判定为信息列表类;最后,如果子树的节点中存在大量的文本节点,则可判定为文本信息类。
本示例中,通过DOM树确定所述标记区域对应的Web数据的页面结构类型,确定结果准确;并且由于网页文档(如html文档或xml文档)在解析时,即建立了相应的DOM树,因此在确定所述页面结构类型时,可以直接利用现成的DOM树,利于缩短检测时间,提高整个Web数据提取的效率和实时性。
举例说明,客户端获取到对豆瓣电影网页中“正在热映”区域的标记区域后,通过Xpath语言从DOM树中定位出所述“正在热映”的标记区域,并确定所述“正在热映”的标记区域的位置和属性,最终确定出所述“正在热映”的标记区域的页面结构为表单类结构。
步骤103,获取与所述页面结构类型相匹配的提取模型。
作为示例,针对不同的页面结构,匹配的提取模型不同,不同的提取模型,其中包含的数据单元不同。例如对于文本信息类结构,其匹配的提取模型中至少包括以下数据单元:标题、作者、时间以及正文;例如对于信息列表类结构,其匹配的提取模型中至少包括以下数据单元:栏目和列表元素;例如对于表格类结构,其匹配的提取模型中至少包括以下数据单元:表头和表内容;例如表单类结构,其匹配的提取模型中至少包括以下数据单元:描述性文字和实际内容。
作为示例,各提取模型中,数据单元按照一定的结构排列,形成所述提取模型的模型结构。作为示例,所述表单类结构对应的提取模型中各数据单元按左右结构排列,左边为所述描述性文字,右边为所述实际内容。
作为示例,所述提取模型的获取方式可以包括多种。例如,可以预先为每种页面结构类型建立相对应的提取模型,并存储至存储空间,当所述客户端检测出所述标记区域对应的Web数据的页面结构类型后,从所述存储空间中匹配出与所述页面结构类型相匹配的提取模型。又例如,也可以在所述客户端检测出所述标记区域对应的Web数据的页面结构类型后,客户端临时为此页面结构类型建立相匹配的提取模型。
作为示例,如果客户端检测到所述标记区域对应的Web数据的页面结构类型仅有一种,则客户端仅获取与此一种页面结构类型相匹配的提取模型。如果客户端检测到所述标记区域对应的Web数据的页面结构类型为两种或多种,则客户端分别获取与各种页面结构类型相匹配的多个提取模型。
或者,作为示例,如果客户端检测到所述标记区域对应的Web数据的页面结构类型为多种,则客户端输出检测结果或提示,并接收用户输入的选择信息,客户端根据用户输入的选择信息,获取提取模型。
具体地,例如客户端输出的检测结果可以是检测到的页面结构类型的种类数量,客户端接收用户输入的选择信息可以是小于等于所述种类数量的一个正整数。如果客户端接收到的正整数等于所述种类数量,则客户端获取每种页面结构类型相匹配的提取模型;如果客户端接收到的正整数小于所述种类数量,则客户端选择出距离所述标记区域中心最接近的所述正整数个页面结构类型,获取所述正整数个页面结构类型相匹配的提取模型。举例说明,例如客户端检测到所述标记区域对应的Web数据的页面结构类型有5种,则向用户输出“5”的信息,用户输入了“2”的选择信息,则客户端获取距离所述标记区域中心最接近的2个页面结构类型相匹配的提取模型。
或者具体地,例如客户端输出的检测结果可以是检测到的页面结构类型的各种类信息,客户端接收用户输入的选择信息可以是从所述各种类信息中选择的一种、两种或多种种类,客户端获取所述一种、两种或多种页面结构类型相匹配的提取模型。举例说明,例如客户端检测到所述标记区域对应的Web数据的页面结构类型有文本信息类、表单类以及表格类,则向用户输出“文本信息类、表单类以及表格类”信息,用户输入了“表单类、表格类”信息,则客户端获取与表单类结构相匹配的提取模型,以及获取与表格类结构相匹配的提取模型。
或者具体地,例如客户端输出的提示可以是“检测到多种页面结构类型,请问是否放弃此次标记”;如果客户端接收到用户的是选项,则停止后续步骤;如果客户端接收到用户输入的否选项,则获取每种页面结构类型匹配的提取模型。
步骤104,根据所述提取模型的模型结构,结构化地输出所述Web数据。
具体地,如前所述,所述结构模型中可包含多个数据单元,客户端根据提取模型中包含的数据单元,从所述标记区域对应的html文档中获取所述各数据单元的内容;然后按照所述各数据单元在所述提取模型中排列成的所述模型结构,将获取到的所述各数据单元的内容进行结构化地排列,并输出。其中,Web数据具体可以以json数据(JavaScriptObject Notation,JS对象简谱)的形式输出。
例如,文本信息类结构对应的提取模型中包含标题、作者、时间以及正文等数据单元,这些数据单元可按照从上至下的顺序排列,形成模型结构。客户端从标记区域对应的html文档中获取标题数据、作者数据、时间数据以及正文数据等数据单元,然后按照从上至下的顺序将上述各数据单元进行排列,形成所述提取模型的模型结构,并输出。
例如,信息列表为包含同类信息的列表,信息列表类结构对应的提取模型中包含栏目和列表元素等数据单元,其中一个栏目可对应多个列表元素,这些数据单元可按照左右结构排列,栏目位于左边,栏目对应的一个、两个或多个列表元素位于右边,形成模型结构。客户端从标记区域对应的html文档中获取栏目数据及此栏目对应的一个、两个或多个列表元素数据等数据单元,然后按照左右结构将上述各数据单元进行排列,形成所述提取模型的模型结构,并输出。
例如,表格类结构对应的提取模型包含表头和表内容等数据单元,表头和表内容等数据单元按照表格结构排列,形成模型结构。客户端从标记区域对应的html文档中获取表头数据和表格内容数据等数据单元,然后按照表格结构将上述各数据单元进行排列,形成所述提取模型的模型结构,并输出。
例如,表单类结构对应的提取模型包含描述性文字和实际内容等数据单元,这些数据单元可按照左右结构排列,描述性文字位于左边,实际内容位于右边,形成模型结构。客户端从标记区域对应的html文档中和/或数据库服务器中获取描述性文字数据和实际内容数据等数据单元,然后按照左右结构将上述各数据单元进行排列,形成所述提取模型的模型结构,并输出。
此外,考虑到某些Web数据不能直接从html文档中获取到,例如某些表单类数据需要通过JavaScript静态代码解析,从Web服务器处获取。因此,当客户端检测出标记区域对应的Web数据的页面结构类型后,可进一步判断是否需要对所述标记区域对应的html文档进行JavaScript静态代码解析;如果需要进行所述JavaScript静态代码解析,则进行所述JavaScript静态代码解析。作为示例,当客户端检测出标记区域对应的Web数据的页面结构类型为表单类结构,需要从Web服务器获取表单数据,则客户端判断出需要对所述标记区域对应的html文档进行JavaScript静态代码解析,并进行相应解析。对于客户端在进行所述JavaScript静态代码解析后从从Web服务器获取的新Web数据,根据提取模型的模型结构,结构化地输出所述新Web数据。作为示例,客户端对表单类结构的html文档进行JavaScript静态代码解析后,从Web服务器获取到表单类数据,包括描述性文字和实际内容等数据单元;然后客户端按照左右结构将所述各数据单元进行排列,形成所述提取模型的模型结构,并输出。
其中,JavaScript代码静态分析是根据JavaScript语法特征进行分析。JavaScript代码在HTML中逻辑主要通过函数调用完成。分析HTML涉及到对应的JavaScript代码块及关联JavaScript资源,构建出函数列表及关联信息。如页面元素按钮,通过分析触发submit,调用了JavaScript的submit函数,通过查询函数列表找到对应的函数入口。考虑到JavaScript代码静态分析是现有技术,因此实施例不再对其做进一步详细介绍。
在客户端进行所述JavaScript静态代码解析时,根据实际情况,需要从所述JavaScript静态代码中找到ajax请求,并重构所述ajax请求;客户端将重构后的ajax请求发送给所述Web服务器,以从所述Web服务器获取所述新Web数据。作为示例,客户端对表单类结构的html文档进行JavaScript静态代码解析以从Web服务器获取对应的表单类数据时,客户端需要进行表单提交操作。而对于表单提交操作,有时需要通过重构所述ajax请求而完成。具体地,无法直接从网页的html代码中获取到所需的Web数据时,则需要重构ajax请求;当可以直接从网页的html代码中获取到所需的Web数据时,则不需要重构ajax请求。
具体的实施方式可以是,首先从JavaScript静态代码中找出ajax请求所在部分,比如找出ajax请求在JavaScript静态代码的哪一行,通常这些语句具有比较明显的特征,如一般ajax请求的语句通常为:$.ajax({url:<url>,type:<http-method>,data:<data>})或xmlhttp=new XMLHttpRequest();xmlhttp.open(<http-method>,<url>);xmlhttp.send(<data>)。通过识别这些特征的语句可以得到发送ajax请求的url,http-method,data信息,以此可以重构出ajax请求。
上述包括步骤101至步骤104的Web系统的数据资源模型化提取方法,应用于客户端,用于从网页文档(如html文档、xml文档等)和/或数据库服务器获取web数据并提取。由于本发明提供的方法中,客户端首先检测用户所标记区域对应的Web数据的页面结构类型,再根据页面结构类型获取与所述页面结构类型相匹配的提取模型,最后根据所述提取模型的模型结构,结构化地输出所述Web数据;因此对于用户,仅需对网页上的某一区域进行标记,客户端会自动进行上述检测页面结构类型、获取提取模型、结构化地输出Web数据等步骤,用户不需要每次在提取数据前进行编辑代码或编辑提取规则等操作,也不需要在每次提取后手动对数据进行结构组织。所述方法解决了现有提取方法存在具有较高技术门槛、提取方法复杂的问题。
请参阅图2,实施例还提供了一种Web系统的数据资源模型化提取装置,所述Web系统的数据资源模型化提取装置包括:
确定模块10,用于确定用户对Web网页的标记区域;
检测模块20,用于检测所述标记区域对应的Web数据的页面结构类型;
获取模块30,用于获取与所述页面结构类型相匹配的提取模型;以及
输出模块40,用于根据所述提取模型的模型结构,结构化地输出所述Web数据。
可选地,所示输出模块可以包括:
提取子模块,用于根据所述提取模型中包含的各数据单元,从所述标记区域对应的html文档中获取所述各数据单元的内容;以及
结构化子模块,用于按照所述各数据单元在所述提取模型中排列成的所述模型结构,将获取到的所述各数据单元的内容进行结构化地排列,并输出。
可选地,所述输出模块可以包括:
判断子模块,用于根据所述页面结构类型,判断是否需要对所述标记区域对应的html文档进行JavaScript静态代码解析;
解析子模块,用于如果需要进行所述JavaScript静态代码解析,则进行所述JavaScript静态代码解析;以及
结构化子模块,对于在进行所述JavaScript静态代码解析后从Web服务器获取的新Web数据,根据所述提取模型的模型结构,结构化地输出所述新Web数据。
可选地,所述输出模块可以包括:
重构子模块,用于在进行所述JavaScript静态代码解析时,从所述JavaScript静态代码中找到ajax请求,并重构所述ajax请求;以及
发送子模块,用于将重构后的ajax请求发送给所述Web服务器,以从所述Web服务器获取所述新Web数据。
可选地,所述确定模块可以包括:
加载子模块,用于接收用户输入的网址,并加载所述网址对应的所述Web网页;
接收子模块,用于接收用户对所述Web网页的部分区域或全部区域的框选操作;以及
确定子模块,用于将所述框选操作所框选的区域确定为所述标记区域。
可选地,所述检测模块可以包括:
定位子模块,用于从所述Web网页对应的DOM树中确定所述标记区域在所述DOM树中的位置和属性;以及
检测子模块,用于根据所述标记区域在所述DOM树中的位置和属性,确定所述标记区域对应的Web数据的页面结构类型。
此外,实施例还提供了一种Web系统的数据资源模型化提取设备,包括处理器、存储器以及存储在所述存储器上并可被所述处理器执行的计算机程序,当所述计算机程序被所述处理器执行时,实现实施例中任一所述的Web系统的数据资源模型化提取方法。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种Web系统的数据资源模型化提取方法、装置以及设备,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种Web系统的数据资源模型化提取方法,应用于客户端,其特征在于,包括:
确定用户对Web网页的标记区域;
检测所述标记区域对应的Web数据的页面结构类型;
获取与所述页面结构类型相匹配的提取模型;
根据所述提取模型的模型结构,结构化地输出所述Web数据。
2.根据权利要求1所述的Web系统的数据资源模型化提取方法,其特征在于,所述根据所述提取模型的模型结构,结构化地输出所述Web数据,包括:
根据所述提取模型中包含的各数据单元,从所述标记区域对应的html文档中获取所述各数据单元的内容;
按照所述各数据单元在所述提取模型中排列成的所述模型结构,将获取到的所述各数据单元的内容进行结构化地排列,并输出。
3.根据权利要求2所述的Web系统的数据资源模型化提取方法,其特征在于,所述页面结构类型包括:文本信息类结构、信息列表类结构、表格类结构和表单类结构;
所述文本信息类结构对应的提取模型中至少包含以下数据单元:标题、作者、时间以及正文;
所述信息列表类结构对应的提取模型中至少包含以下数据单元:栏目和列表元素;
所述表格类结构对应的提取模型中至少包含以下数据单元:表头和表内容;
所述表单类结构对应的提取模型中至少包含以下数据单元:描述性文字和实际内容。
4.根据权利要求3所述的Web系统的数据资源模型化提取方法,其特征在于,所述表单类结构对应的提取模型中各数据单元按左右结构排列,左边为所述描述性文字,右边为所述实际内容。
5.根据权利要求1所述的Web系统的数据资源模型化提取方法,其特征在于,在检测出所述标记区域对应的Web数据的页面结构类型后,还包括:
根据所述页面结构类型,判断是否需要对所述标记区域对应的html文档进行JavaScript静态代码解析;以及
如果需要进行所述JavaScript静态代码解析,则进行所述JavaScript静态代码解析;
所述根据所述提取模型的模型结构,结构化地输出所述Web数据,包括:
对于在进行所述JavaScript静态代码解析后从Web服务器获取的新Web数据,根据所述提取模型的模型结构,结构化地输出所述新Web数据。
6.根据权利要求5所述的Web系统的数据资源模型化提取方法,其特征在于,还包括:
在进行所述JavaScript静态代码解析时,从所述JavaScript静态代码中找到ajax请求,并重构所述ajax请求;
将重构后的ajax请求发送给所述Web服务器,以从所述Web服务器获取所述新Web数据。
7.根据权利要求1所述的Web系统的数据资源模型化提取方法,其特征在于,所述确定用户对Web网页的标记区域,包括:
接收用户输入的网址,并加载所述网址对应的所述Web网页;
接收用户对所述Web网页的部分区域或全部区域的框选操作;
将所述框选操作所框选的区域确定为所述标记区域。
8.根据权利要求1所述的Web系统的数据资源模型化提取方法,其特征在于,所述检测所述标记区域对应的Web数据的页面结构类型,包括:
从所述Web网页对应的DOM树中确定所述标记区域在所述DOM树中的位置和属性;
根据所述标记区域在所述DOM树中的位置和属性,确定所述标记区域对应的Web数据的页面结构类型。
9.一种Web系统的数据资源模型化提取装置,其特征在于,包括:
确定模块,用于确定用户对Web网页的标记区域;
检测模块,用于检测所述标记区域对应的Web数据的页面结构类型;
获取模块,用于获取与所述页面结构类型相匹配的提取模型;
输出模块,用于根据所述提取模型的模型结构,结构化地输出所述Web数据。
10.一种Web系统的数据资源模型化提取设备,包括处理器、存储器以及存储在所述存储器上并可被所述处理器执行的计算机程序,其特征在于,当所述计算机程序被所述处理器执行时,实现权利要求1至8任一所述的Web系统的数据资源模型化提取方法。
CN201910295549.0A 2019-04-12 2019-04-12 Web系统的数据资源模型化提取方法、装置以及设备 Active CN110147477B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910295549.0A CN110147477B (zh) 2019-04-12 2019-04-12 Web系统的数据资源模型化提取方法、装置以及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910295549.0A CN110147477B (zh) 2019-04-12 2019-04-12 Web系统的数据资源模型化提取方法、装置以及设备

Publications (2)

Publication Number Publication Date
CN110147477A true CN110147477A (zh) 2019-08-20
CN110147477B CN110147477B (zh) 2021-08-27

Family

ID=67588836

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910295549.0A Active CN110147477B (zh) 2019-04-12 2019-04-12 Web系统的数据资源模型化提取方法、装置以及设备

Country Status (1)

Country Link
CN (1) CN110147477B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111913693A (zh) * 2020-07-30 2020-11-10 北京数立得科技有限公司 一种服务接口子类模板确定方法与系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103744609A (zh) * 2014-01-20 2014-04-23 华为终端有限公司 一种数据提取方法及装置
US9323731B1 (en) * 2007-11-01 2016-04-26 Google Inc. Data extraction using templates
US20160246481A1 (en) * 2015-02-20 2016-08-25 Ebay Inc. Extraction of multiple elements from a web page

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9323731B1 (en) * 2007-11-01 2016-04-26 Google Inc. Data extraction using templates
CN103744609A (zh) * 2014-01-20 2014-04-23 华为终端有限公司 一种数据提取方法及装置
US20160246481A1 (en) * 2015-02-20 2016-08-25 Ebay Inc. Extraction of multiple elements from a web page

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111913693A (zh) * 2020-07-30 2020-11-10 北京数立得科技有限公司 一种服务接口子类模板确定方法与系统
CN111913693B (zh) * 2020-07-30 2023-11-14 北京数立得科技有限公司 一种服务接口子类模板确定方法与系统

Also Published As

Publication number Publication date
CN110147477B (zh) 2021-08-27

Similar Documents

Publication Publication Date Title
US10423709B1 (en) Systems, devices, and methods for automated and programmatic creation and deployment of remediations to non-compliant web pages or user interfaces
US11294968B2 (en) Combining website characteristics in an automatically generated website
US10997361B1 (en) Modular systems and methods for selectively enabling cloud-based assistive technologies
US8365203B2 (en) Method for creating a native application for mobile communications device in real-time
US8397223B2 (en) Web application generator
US20150161135A1 (en) Hidden text detection for search result scoring
US20200372204A1 (en) Modular systems and methods for selectively enabling cloud-based assistive technologies
WO2008157322A1 (en) Displaying content on a mobile device
US20150227276A1 (en) Method and system for providing an interactive user guide on a webpage
WO2022086872A1 (en) Distributed systems and methods for facilitating website remediation and promoting assistive technologies and detecting compliance issues
US10943063B1 (en) Apparatus and method to automate website user interface navigation
CN108319687B (zh) 一种基于js拖拽技术的sql规则生成器
US20090012937A1 (en) Apparatus, method and recorded medium for collecting user preference information by using tag information
US20220139075A1 (en) Deep learning guide device and method
WO2020238070A1 (zh) 一种基于网页分割和搜索算法的服务包装方法
US10248392B2 (en) Replicating a web technology
CN109806592A (zh) 一种游戏资源的监控方法和装置
US10776351B2 (en) Automatic core data service view generator
US20200293592A1 (en) Methods and systems for browser extension used to generate relative xpath, absolute xpath and/or css selectors
CN113806661A (zh) 网站信息无障碍检测工具
CN111427760A (zh) 页面测试方法、装置、设备及存储介质
CN110147477A (zh) Web系统的数据资源模型化提取方法、装置以及设备
EP4180951A1 (en) Generating lossless static object models of dynamic webpages
US11727195B2 (en) Modular systems and methods for selectively enabling cloud-based assistive technologies
Lingam et al. Supporting end-users in the creation of dependable web clips

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 130117, 30th floor, Building A2, Mingyu Plaza, No. 3777 Ecological Street, Jingyue High tech Industrial Development Zone, Changchun City, Jilin Province

Patentee after: Shenqi Digital Co.,Ltd.

Country or region after: China

Address before: No. 826, building 12345, Phoenix legend, Hanbang, Jingyue Development Zone, Changchun City, Jilin Province

Patentee before: Intel Technology Co.,Ltd.

Country or region before: China

Address after: No. 826, building 12345, Phoenix legend, Hanbang, Jingyue Development Zone, Changchun City, Jilin Province

Patentee after: Intel Technology Co.,Ltd.

Country or region after: China

Address before: No. 826, building 12345, Phoenix legend, Hanbang, Jingyue Development Zone, Changchun City, Jilin Province

Patentee before: Changchun interui Software Co.,Ltd.

Country or region before: China

Address after: No. 826, building 12345, Phoenix legend, Hanbang, Jingyue Development Zone, Changchun City, Jilin Province

Patentee after: Changchun interui Software Co.,Ltd.

Country or region after: China

Address before: 100080 room 1608, 16 / F, Haidian new technology building, 65 North Fourth Ring Road West, Haidian District, Beijing

Patentee before: BEIJING INTERNETWARE Ltd.

Country or region before: China