CN105589918A - 一种提取页面信息的方法及装置 - Google Patents
一种提取页面信息的方法及装置 Download PDFInfo
- Publication number
- CN105589918A CN105589918A CN201510594981.1A CN201510594981A CN105589918A CN 105589918 A CN105589918 A CN 105589918A CN 201510594981 A CN201510594981 A CN 201510594981A CN 105589918 A CN105589918 A CN 105589918A
- Authority
- CN
- China
- Prior art keywords
- type
- business module
- business
- webpage
- data structure
- 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
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/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
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)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种提取页面信息的方法及装置。该方法包括:获取待处理网页的源代码和DOM树,从服务器获取待处理网页的转码配置信息,待处理网页的转码配置信息包括待处理网页的每个业务块的定位信息和数据结构类型;根据业务块的定位信息,从DOM树中获取业务块对应的DOM节点;根据业务块的数据结构类型,从预设的算法库中获取业务块对应的识别算法;根据业务块对应的识别算法,从业务块的DOM节点对应的网页源代码中提取页面信息。本发明根据预设的算法库及网页的转码配置信息,高效准确地提取网页的页面信息,即便对于新增网页,也能够成功地从新增网页中提取页面信息。
Description
技术领域
本发明涉及互联网及终端技术领域,具体而言,涉及一种提取页面信息的方法及装置。
背景技术
目前,网站开发的网页大都只适用于在个人电脑等具有大尺寸屏幕的终端上显示。但随着科技发展,出现了平板电脑及智能手机等具有不同尺寸屏幕的终端,要使这些终端能正常显示网页,需要从网页中提取出适于这些终端显示的页面信息。
当前,传统的提取页面信息的方法都是按预设规则来抽取页面信息的。例如,预设规则可以为预先设置的关键词,当从网页中提取页面信息时,根据预先设置的关键词遍历网页中的页面信息,从网页中提取出与关键词相匹配的页面信息。
但互联网中每天都会产生大量的新增网页,利用原有的预设规则很难从新增网页中提取出页面信息,因此传统的提取页面信息的方法需要频繁的修改预设规则,导致从网页中提取页面信息的效率不高。
发明内容
有鉴于此,本发明实施例的目的在于提供一种提取页面信息的方法及装置,实现高效准确地提取网页的页面信息。
第一方面,本发明实施例提供一种提取页面信息的方法,所述方法包括:
获取待处理网页的源代码和文档对象模型DOM树,从服务器获取所述待处理网页的转码配置信息,所述待处理网页的转码配置信息包括所述待处理网页的每个业务块的定位信息和数据结构类型;
根据所述业务块的定位信息,从所述DOM树中获取所述业务块对应的DOM节点;以及根据所述业务块的数据结构类型,从预设的算法库中获取所述业务块对应的识别算法;
根据所述业务块对应的识别算法,从所述业务块的DOM节点对应的网页源代码中提取页面信息。
结合第一方面,本发明实施例提供了上述第一方面的第一种可能的实现方式,其中,所述根据所述业务块对应的识别算法,从所述业务块的DOM节点对应的网页源代码中提取页面信息,包括:
通过所述业务块对应的识别算法对所述业务块的DOM节点对应的网页源代码进行识别运算,识别出所述业务块中的目标数据;
将所述目标数据转换为JSON格式的页面信息,并输出所述JSON格式的页面信息。
结合第一方面或第一方面的第一种可能的实现方式,本发明实施例提供了上述第一方面的第二种可能的实现方式,其中,所述从服务器获取所述待处理网页的转码配置信息之前,还包括:
按照业务类型对所述待处理网页的DOM树进行划分,得到所述待处理网页的每个业务块;
分别获取所述每个业务块在所述待处理网页的DOM树中的定位信息;以及根据所述每个业务块对应的源代码,分别确定所述每个业务块的数据结构类型;
将所述每个业务块的定位信息及数据结构类型组成所述待处理网页的转码配置信息。
结合第一方面的第二种可能的实现方式,本发明实施例提供了上述第一方面的第三种可能的实现方式,其中,所述分别获取所述每个业务块在所述待处理网页的DOM树中的定位信息,包括:
通过xPath路径方式分别从所述待处理网页的DOM树中遍历所述每个业务块对应的DOM节点的路径;
将所述每个业务块对应的DOM节点的路径确定为所述每个业务块的定位信息。
结合第一方面的第二种可能的实现方式,本发明实施例提供了上述第一方面的第四种可能的实现方式,其中,所述根据所述每个业务块对应的源代码,分别确定所述每个业务块的数据结构类型,包括:
从所述每个业务块对应的源代码中,分别获取所述每个业务块包含的标签的类型;
根据预设的结构判定策略及所述每个业务块包含的标签的类型,分别确定所述每个业务块的数据结构类型。
结合第一方面,本发明实施例提供了上述第一方面的第五种可能的实现方式,其中,所述根据所述业务块的数据结构类型,从预设的算法库中获取所述业务块对应的识别算法之前,还包括:
从多个识别算法中,分别确定每种数据结构类型对应的识别算法,将每种数据结构类型及每种数据结构类型对应的识别算法存储在算法库中。
结合第一方面的第五种可能的实现方式,本发明实施例提供了上述第一方面的第六种可能的实现方式,其中,所述从多个识别算法中,分别确定每种数据结构类型对应的识别算法,包括:
标注数据结构类型对应的业务块中的目标数据;
依次通过多个识别算法中的每个识别算法对所述数据结构类型的业务块进行识别运算;
将识别出所述目标数据的识别算法确定为所述数据结构类型对应的识别算法。
结合第一方面,本发明实施例提供了上述第一方面的第七种可能的实现方式,其中,所述方法还包括:
当所述预设的算法库中没有所述业务块的数据结构类型对应的识别算法时,发送所述数据结构类型对应的算法获取请求给管理终端,并接收所述管理终端返回的所述数据结构类型对应的识别算法,将所述数据结构类型与接收的所述识别算法对应存储在所述预设的算法库中。
结合第一方面,本发明实施例提供了上述第一方面的第八种可能的实现方式,其中,所述根据所述业务块的定位信息,从所述DOM树中获取所述业务块对应的DOM节点,包括:
按照所述业务块的定位信息指示的路径,通过xPath路径方式遍历所述待处理网页的DOM树中的DOM节点,得到所述业务块对应的DOM节点。
第二方面,本发明实施例提供了一种提取页面信息的装置,所述装置包括:
第一获取模块,用于获取待处理网页的源代码和文档对象模型DOM树,从服务器获取所述待处理网页的转码配置信息,所述待处理网页的转码配置信息包括所述待处理网页的每个业务块的定位信息和数据结构类型;
第二获取模块,用于根据所述业务块的定位信息,从所述DOM树中获取所述业务块对应的DOM节点;
第三获取模块,用于根据所述业务块的数据结构类型,从预设的算法库中获取所述业务块对应的识别算法;
提取模块,用于根据所述业务块对应的识别算法,从所述业务块的DOM节点对应的网页源代码中提取页面信息。
结合第二方面,本发明实施例提供了上述第二方面的第一种可能的实现方式,其中,所述提取模块包括:
第一识别单元,用于通过所述业务块对应的识别算法对所述业务块的DOM节点对应的网页源代码进行识别运算,识别出所述业务块中的目标数据;
转换单元,用于将所述目标数据转换为JSON格式的页面信息,并输出所述JSON格式的页面信息。
结合第二方面或第二方面的第一种可能的实现方式,本发明实施例提供了上述第二方面的第二种可能的实现方式,其中,所述装置还包括:
划分模块,用于按照业务类型对所述待处理网页的DOM树进行划分,得到所述待处理网页的每个业务块;
定位信息获取模块,用于分别获取所述每个业务块在所述待处理网页的DOM树中的定位信息;
确定模块,用于根据所述每个业务块对应的源代码,分别确定所述每个业务块的数据结构类型;
组成模块,用于将所述每个业务块的定位信息及数据结构类型组成所述待处理网页的转码配置信息。
结合第二方面的第二种可能的实现方式,本发明实施例提供了上述第二方面的第三种可能的实现方式,其中,所述定位信息获取模块包括:
遍历单元,用于通过xPath路径方式分别从所述待处理网页的DOM树中遍历所述每个业务块对应的DOM节点的路径;
第一确定单元,用于将所述每个业务块对应的DOM节点的路径确定为所述每个业务块的定位信息。
结合第二方面的第二种可能的实现方式,本发明实施例提供了上述第二方面的第四种可能的实现方式,其中,所述确定模块包括:
获取单元,用于从所述每个业务块对应的源代码中,分别获取所述每个业务块包含的标签的类型;
第二确定单元,用于根据预设的结构判定策略及所述每个业务块包含的标签的类型,分别确定所述每个业务块的数据结构类型。
结合第二方面,本发明实施例提供了上述第二方面的第五种可能的实现方式,其中,所述装置还包括:
算法库生成模块,用于从多个识别算法中,分别确定每种数据结构类型对应的识别算法,将每种数据结构类型及每种数据结构类型对应的识别算法存储在算法库中。
结合第二方面的第五种可能的实现方式,本发明实施例提供了上述第二方面的第六种可能的实现方式,其中,所述算法库生成模块包括:
标注单元,用于标注数据结构类型对应的业务块中的目标数据;
第二识别单元,用于依次通过多个识别算法中的每个识别算法对所述数据结构类型的业务块进行识别运算;
第三确定单元,用于将识别出所述目标数据的识别算法确定为所述数据结构类型对应的识别算法。
结合第二方面,本发明实施例提供了上述第二方面的第七种可能的实现方式,其中,所述装置还包括:
算法获取模块,用于当所述预设的算法库中没有所述业务块的数据结构类型对应的识别算法时,发送所述数据结构类型对应的算法获取请求给管理终端,并接收所述管理终端返回的所述数据结构类型对应的识别算法,将所述数据结构类型与接收的所述识别算法对应存储在所述预设的算法库中。
结合第二方面,本发明实施例提供了上述第二方面的第八种可能的实现方式,其中,所述第二获取模块,用于按照所述业务块的定位信息指示的路径,通过xPath路径方式遍历所述待处理网页的DOM树中的DOM节点,得到所述业务块对应的DOM节点。
在本发明实施例提供的方法及装置中,获取待处理网页的源代码和DOM树,从服务器获取待处理网页的转码配置信息,待处理网页的转码配置信息包括待处理网页的每个业务块的定位信息和数据结构类型;根据业务块的定位信息,从DOM树中获取业务块对应的DOM节点;根据业务块的数据结构类型,从预设的算法库中获取业务块对应的识别算法;根据业务块对应的识别算法,从业务块的DOM节点对应的网页源代码中提取页面信息。本发明根据预设的算法库及网页的转码配置信息,高效准确地提取网页的页面信息。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1A示出了本发明实施例1所提供的一种提取页面信息的方法流程图;
图1B示出了本发明实施例1所提供的一种线下配置操作流程图;
图2示出了本发明实施例2所提供的一种提取页面信息的装置结构示意图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
考虑到相关技术中按预设规则来抽取页面信息,但互联网每天都会产生大量的新增网页,利用原有的预设规则很难从新增网页中提取出页面信息,因此需要频繁的修改预设规则,导致无法有效的从网页中提取页面信息。基于此,本发明实施例提供了一种提取页面信息的方法及装置。下面通过实施例进行描述。
实施例1
参见图1A,本发明实施例提供了一种提取页面信息的方法。
在本发明实施例中,在提取待处理网页的页面信息之前,需要在线下预先设置算法库以及配置待处理网页的转码配置信息。待处理网页的转码配置信息包括待处理网页的每个业务块的定位信息和数据结构类型。预设的算法库中包括数据结构类型及其对应的识别算法。如图1B所示,上述线下配置操作的具体过程包括:
S1:获取待处理网页的DOM(DocumentObjectModel,文档对象模型)树,按照业务类型对待处理网页的DOM树进行划分,得到待处理网页的每个业务块。
上述业务类型包括logo(标志)、导航、视频及页码等类型。
通过对待处理网页的源代码进行解析,生成待处理网页的DOM树。按照业务类型对待处理网页的DOM树进行划分,划分出待处理网页的每个业务块。划分出的业务块可以是logo、搜索、导航,列表、正文、页码、视频及过滤器等业务块。
S2:分别获取每个业务块在待处理网页的DOM树中的定位信息;
网页是由一棵具有树形结构的DOM树组成,且网页的DOM树具有分块的特性,各个业务块具有独立性,即各个业务块对应的子DOM树之间无交点。所以每个业务块可以使用xPath(可扩展标记语言路径语言)路径方式进行定位。
获取定位信息的操作,是通过xPath路径方式分别从待处理网页的DOM树中遍历每个业务块对应的DOM节点的路径。将每个业务块对应的DOM节点的路径确定为每个业务块的定位信息。
其中,当通过xPath路径方式从待处理网页的DOM树中遍历某业务块对应的DOM节点,并遍历到该业务块的第一个DOM节点时,可以将待处理网页的DOM树的根节点至该业务块的第一个DOM节点之间的路径作为该业务块的定位信息。
S3:根据每个业务块对应的源代码,分别确定每个业务块的数据结构类型;
对于待处理网页的每个业务块,从每个业务块对应的源代码中,分别获取每个业务块包含的标签的类型。根据预设的结构判定策略及每个业务块包含的标签的类型,分别确定每个业务块的数据结构类型。
上述标签为HTML(HyperTextMarkupLanguage,超级文本标记语言)标签,HTML标签的类型包括图片标签<img>、链接标签<a>、文本标签<p>及媒体标签<video>等。上述数据结构类型包括单文本、单链接、单图文、图片列表、链接列表、文本列表和图文列表等。上述预设的结构判定策略即为标签的类型的组合形式与数据结构类型的对应关系。例如,多个图片标签<img>的组合对应于图片列表,多个链接标签<a>的组合对应于链接列表,多个文本标签<p>的组合对应于文本列表,多个图片标签<img>与文本标签<p>的组合对应于图文列表,以及多个视频标签<video>的组合为视频列表。
为了便于进一步理解上述确定业务块的数据结构类型的操作,下面举例进行说明。例如,假设导航业务块对应的源代码为
<a>视频网</a>
<a>音乐网</a>
<a>新闻网</a>,
则确定导航业务块的源代码为多个链接标签<a>的组合,确定该导航业务块的数据结构类型为链接列表。
S4:将每个业务块的定位信息及数据结构类型组成待处理网页的转码配置信息;
上述组成待处理网页的转码配置信息之后,将待处理网页的网页地址及该转码配置信息对应存储在服务器本地。
通过上述步骤S1-S4配置待处理网页的转码配置信息后,通过如下步骤S5来生成算法库。
S5:从多个识别算法中,分别确定每种数据结构类型对应的识别算法,将每种数据结构类型及每种数据结构类型对应的识别算法存储在算法库中。
在本发明实施例中,由技术人员编写出多个识别算法。对于任意网页来说,网页中的有效内容基本包括文本、链接地址、图片、表单和视频等。结合上述内容,可以对应有以下几种类型的算法:单文本算法、单链接算法、多文本算法、多链接算法、单图文算法、多图文算法、表单算法、分页算法和视频算法。
每种类型的算法都可以包括一个或多个算法,同一类型的每个算法之间相互独立,互不影响。每个算法面向不同页面DOM结构,与业务无关。
例如,多链接算法可以包括:links(链接)算法和li算法两种。
li算法提取业务块的页面信息的过程包括:根据已定位的业务块,从业务块内找到所有的列表标签<li>包含的数据作为数据项,然后在每个数据项内搜索链接标签<a>,从搜索到的链接标签<a>中获取属性href(HypertextReference,超文本引用)以及属性href对应的文本,将获取的文本转换为JSON格式的页面信息,最后输出JSON标准格式的页面信息。
links算法提取业务块的页面信息的过程包括:根据已定位的业务块,把业务块内的所有链接标签<a>搜索出来作为数据项,并获取搜索到的链接标签<a>中的属性href以及属性href对应的文本,将获取的文本转换为JSON格式的页面信息,最后输出JSON标准格式的页面信息。
在本发明实施例中,通过程序自动从多个识别算法中分别确定每种数据结构类型对应的识别算法,具体确定过程包括:对于每种数据结构类型,标注数据结构类型对应的业务块中的目标数据,该目标数据可以为该业务块中的文本、图片或视频等数据。依次通过上述多个识别算法中的每个识别算法对该业务块进行识别运算,将识别出上述目标数据的识别算法确定为该数据结构类型对应的识别算法。
通过上述方式确定出每种数据结构类型对应的识别算法之后,将每种数据结构类型及每种数据结构类型对应的识别算法存储在算法库中。
步骤S1-S5配置待处理网页的转码配置信息及预设算法库的操作可以自动完成,也可以由技术人员参与完成。
通过上述步骤S1-S5的操作完成配置待处理网页的转码配置信息及预设了算法库之后,将待处理网页的转码配置信息及预设的算法库上线。上线之后可以根据待处理网页的转码配置信息及预设的算法库提取待处理网页的页面信息,如此在线上提取运算时节省了动态识别业务块的数据结构类型的时间,大大简略了线上提取页面信息的处理过程,提高了提取页面信息的效率。另外,预设的算法库可以支持对任意网页的页面信息提取,算法库中的识别算法的复用率很高。即便出现新增网页,也可以在线下配置该新增网页的转码配置信息,然后在线上需要提取该新增网页的页面信息时,根据预设的算法库及该新增网页的转码配置信息来提取新增网页的页面信息,确保了提取新增网页的页面信息的成功率。
将待处理网页的转码配置信息及预设的算法库上线后,在线上可以通过如下步骤101-104的操作根据待处理网页的转码配置信息及预设的算法库提取待处理网页的页面信息。
步骤101:获取待处理网页的源代码和DOM树,从服务器获取转码配置信息,该待处理网页的转码配置信息包括待处理网页的每个业务块的定位信息和数据结构类型;
当用户通过终端浏览某网页时,终端发送网页获取请求给服务器,该网页获取请求携带该网页的网页地址及终端标识。服务器接收终端发送的该网页获取请求,根据该网页获取请求携带的终端标识确定该终端的类型,当确定出终端的类型为手机或PAD(portableandroiddevice,平板电脑)等非PC(personalcomputer,个人电脑)类的终端时,将该网页确定为待处理网页,确定需要提取待处理网页的页面信息,对待处理网页进行转码,以使待处理网页适于在该终端上显示。
此时服务器根据待处理网页的网页地址获取待处理网页的源代码,对该源代码进行解析,生成待处理网页的DOM树。根据待处理网页的网页地址,从服务器本地获取待处理网页的转码配置信息。
步骤102:根据业务块的定位信息,从DOM树中获取业务块对应的DOM节点;
按照上述待处理网页的转码配置信息中业务块的定位信息指示的路径,通过xPath路径方式遍历待处理网页的DOM树中的DOM节点,得到业务块对应的DOM节点。
在本发明实施例中,当业务块的定位信息为待处理网页的DOM树的根节点至该业务块的第一个DOM节点之间的路径时,通过xPath路径方式按照该业务块的定位信息,遍历待处理网页的DOM树中的DOM节点,当遍历到上述业务块的第一个DOM节点时,获取以该第一个DOM节点为根节点的子DOM树的每个节点,将获取的节点确定为该业务块对应的DOM节点。
步骤103:根据业务块的数据结构类型,从预设的算法库中获取业务块对应的识别算法;
从上述待处理网页的转码配置信息中获取业务块的数据结构类型,根据该业务块的数据结构类型从预设的算法库中获取对应的识别算法,将获取的识别算法确定为该业务块对应的识别算法。
在本发明实施例中,当预设的算法库中没有上述业务块的数据结构类型对应的识别算法时,服务器发送该数据结构类型对应的算法获取请求给管理终端,该算法获取请求携带上述数据结构类型。管理终端接收服务器发送的算法获取请求,并显示用于提示缺少上述数据结构类型对应的算法的提示信息。管理员看到该提示信息后,编写上述数据结构类型对应的识别算法,并触发管理终端将该识别算法返回给服务器。服务器接收管理终端返回的上述数据结构类型对应的识别算法,并将上述数据结构类型与接收的识别算法对应存储在预设的算法库中。
通过上述方式在预设的算法库中添加缺少的识别算法后,在线上提取上述数据结构类型的业务块的页面信息时可以直接从预设的算法库获取上述识别算法并进行识别提取,提高了提取页面信息的效率及成功率。
步骤104:根据业务块对应的识别算法,从业务块的DOM节点对应的网页源代码中提取页面信息。
通过上述获取的业务块的识别算法对业务块的DOM节点对应的网页源代码进行识别运算,识别出业务块中的目标数据。将识别的目标数据转换为JSON(JavaScriptObjectNotation,轻量级的数据交换格式)格式的页面信息,并输出JSON格式的页面信息。JSON格式的页面信息便于网络传输,在手机等移动终端的页面显示方面,JSON具有数据传输方面的优势。对于待处理网页中的每个业务块,都通过上述方式从每个业务块的DOM节点对应的网页源代码中提取页面信息,最终实现从待处理网页中提取出页面信息。
本发明实施例提取待处理网页的页面信息,都是从HTML代码中提取数据,并最终转换为JSON格式的页面信息。
例如:单链接算法统一输出的JSON格式的数据的结构为:
多图文算法统一输出的JSON格式的数据的结构为:
本发明实施例通过线下分析,由程序自动识别出业务块对应的识别算法,在待处理网页的转码配置信息中设置业务块的定位信息及数据结构类型,将业务层与数据结构层分离,提高了数据结构层的提取算法的可复用性。然后将待处理网页的转码配置信息上线,使线上的转码服务可以高效的进行页面信息的提取与转码。
本发明实施例的执行主体可以为服务器,该服务器可以是网站服务器、转码服务器或浏览器后台服务器等。当执行主体为服务器时,预设的算法库及待处理网页的转码配置信息都存储在服务器本地,由服务器提取待处理网页的页面信息,然后将提取的页面信息传输给终端,如此终端不必进行页面信息提取操作,避免提取操作占用终端的系统资源,且提取的页面信息的容量小于待处理网页的原始容量,只将提取的页面信息传输给终端,节省了传输流量。
本发明实施例还可以根据线下部分和线上部分分别进行配置,线下部分的执行主体为服务器,预设的算法库及待处理网页的转码配置信息仍存储在服务器中。线上部分的执行主体为终端,终端首先从服务器获取待处理网页的源代码及转码配置信息,然后根据本发明实施例提供的方法确定待处理网页中每个业务块的数据结构类型,根据每个业务块的数据结构类型从服务器预设的算法库中获取每个业务块对应的识别算法,根据每个业务块对应的识别算法从待处理网页中提取页面信息。由于服务器的访问量非常大,提取页面信息的线上部分由终端来执行,可以大大减少服务器的操作,避免服务器因执行大量提取页面信息的操作而导致服务器拥堵或瘫痪等情况。
在本发明实施例中,获取待处理网页的源代码、DOM树和转码配置信息,待处理网页的转码配置信息包括待处理网页的每个业务块的定位信息和数据结构类型;根据业务块的定位信息,从DOM树中获取业务块对应的DOM节点;根据业务块的数据结构类型,从预设的算法库中获取业务块对应的识别算法;根据业务块的识别算法,从业务块的DOM节点对应的网页源代码中提取页面信息。本发明根据预设的算法库及网页的转码配置信息,高效准确地提取网页的页面信息,即便对于新增网页,也能够成功地从新增网页中提取页面信息。
实施例2
参见图2,本发明实施例提供了一种提取页面信息的装置,该装置用于执行上述实施例1提供的提取页面信息的方法。该装置包括:
第一获取模块201,用于获取待处理网页的源代码和文档对象模型DOM树,从服务器获取待处理网页的转码配置信息,待处理网页的转码配置信息包括待处理网页的每个业务块的定位信息和数据结构类型;
当用户通过终端浏览某网页时,终端发送网页获取请求给上述装置,该网页获取请求携带该网页的网页地址及终端标识。上述装置接收终端发送的该网页获取请求,根据该网页获取请求携带的终端标识确定该终端的类型,当确定出终端的类型为手机或PAD(portableandroiddevice,平板电脑)等非PC(personalcomputer,个人电脑)类的终端时,将该网页确定为待处理网页,确定需要提取待处理网页的页面信息,对待处理网页进行转码,以使待处理网页适于在该终端上显示。
此时上述第一获取模块201根据待处理网页的网页地址获取待处理网页的源代码,对该源代码进行解析,生成待处理网页的DOM树。根据待处理网页的网页地址,从本地获取待处理网页的转码配置信息。
第二获取模块202,用于根据业务块的定位信息,从DOM树中获取业务块对应的DOM节点;
第二获取模块202获取业务块对应的DOM节点的操作,具体按照业务块的定位信息指示的路径,通过xPath路径方式遍历待处理网页的DOM树中的DOM节点,得到业务块对应的DOM节点。
在本发明实施例中,当业务块的定位信息为待处理网页的DOM树的根节点至该业务块的第一个DOM节点之间的路径时,第二获取模块202通过xPath路径方式按照该业务块的定位信息,遍历待处理网页的DOM树中的DOM节点,当遍历到上述业务块的第一个DOM节点时,获取以该第一个DOM节点为根节点的子DOM树的每个节点,将获取的节点确定为该业务块对应的DOM节点。
第三获取模块203,用于根据业务块的数据结构类型,从预设的算法库中获取业务块对应的识别算法;
在本发明实施例中,当预设的算法库中没有上述数据结构类型对应的识别算法时,该装置还通过如下算法获取模块来获取上述数据结构类型对应的识别算法,具体包括:
算法获取模块,用于当预设的算法库中没有业务块的数据结构类型对应的识别算法时,发送数据结构类型对应的算法获取请求给管理终端,并接收管理终端返回的数据结构类型对应的识别算法,将数据结构类型与接收的识别算法对应存储在预设的算法库中。
通过上述算法获取模块在预设的算法库中添加缺少的识别算法后,在线上提取上述数据结构类型的业务块的页面信息时可以直接从预设的算法库获取上述识别算法并进行识别提取,提高了提取页面信息的效率及成功率。
通过上述第三获取模块203获取到业务块对应的识别算法之后,通过如下提取模块204提取该业务块对应的页面信息。
提取模块204,用于根据业务块对应的识别算法,从业务块的DOM节点对应的网页源代码中提取页面信息。
提取模块204通过如下第一识别单元和转换单元来提取页面信息。
第一识别单元,用于通过业务块对应的识别算法对业务块的DOM节点对应的网页源代码进行识别运算,识别出业务块中的目标数据;上述转换单元,用于将目标数据转换为JSON格式的页面信息,并输出JSON格式的页面信息。
在本发明实施例中,在通过上述第一获取模块201获取待处理网页转码配置信息之前,该装置还通过如下划分模块、定位信息获取模块、确定模块及组成模块来配置待处理网页的转码配置信息。
上述划分模块,用于按照业务类型对待处理网页的DOM树进行划分,得到待处理网页的每个业务块。
业务类型包括logo(标志)、导航、视频及页码等类型。上述划分模块划分出的业务块可以是logo、搜索、导航,列表、正文、页码、视频及过滤器等业务块。
定位信息获取模块,用于分别获取每个业务块在待处理网页的DOM树中的定位信息。
网页是由一棵具有树形结构的DOM树组成,且网页的DOM树具有分块的特性,各个业务块具有独立性,即各个业务块对应的子DOM树之间无交点。所以每个业务块可以使用xPath路径方式进行定位。
其中,当上述定位信息获取模块遍历到该业务块的第一个DOM节点时,可以将待处理网页的DOM树的根节点至该业务块的第一个DOM节点之间的路径作为该业务块的定位信息。
上述确定模块,用于根据每个业务块对应的源代码,分别确定每个业务块的数据结构类型。
组成模块,用于将每个业务块的定位信息及数据结构类型组成待处理网页的转码配置信息。组成模块组成待处理网页的转码配置信息之后,还将待处理网页的网页地址及该转码配置信息对应存储在服务器本地
定位信息获取模块通过如下遍历单元和第一确定单元来获取每个业务块的定位信息。
遍历单元,用于通过xPath路径方式分别从待处理网页的DOM树中遍历每个业务块对应的DOM节点的路径;第一确定单元,用于将每个业务块对应的DOM节点的路径确定为每个业务块的定位信息。
上述确定模块通过如下获取单元和第二确定单元来确定每个业务块的数据结构类型。
获取单元,用于从每个业务块对应的源代码中,分别获取每个业务块包含的标签的类型;第二确定单元,用于根据预设的结构判定策略及每个业务块包含的标签的类型,分别确定每个业务块的数据结构类型。
在本发明实施例中,该装置在通过第三获取模块203来获取业务块对应的识别算法之前,还通过算法库生成模块来生成算法库。
上述算法库生成模块,用于从多个识别算法中,分别确定每种数据结构类型对应的识别算法,将每种数据结构类型及每种数据结构类型对应的识别算法存储在算法库中。
在本发明实施例中,由技术人员编写出多个识别算法。对于任意网页来说,网页中的有效内容基本包括文本、链接地址、图片、表单和视频等。结合上述内容,可以对应有以下几种类型的算法:单文本算法、单链接算法、多文本算法、多链接算法、单图文算法、多图文算法、表单算法、分页算法和视频算法。
每种类型的算法都可以包括一个或多个算法,同一类型的每个算法之间相互独立,互不影响。每个算法面向不同页面DOM结构,与业务无关。
算法库生成模块具体通过如下标注单元、第二识别单元和第三确定单元来从多个识别算法中分别确定每种数据结构类型对应的识别算法,具体包括:
标注单元,用于标注数据结构类型对应的业务块中的目标数据;
第二识别单元,用于依次通过多个识别算法中的每个识别算法对数据结构类型的业务块进行识别运算;
第三确定单元,用于将识别出目标数据的识别算法确定为数据结构类型对应的识别算法。
在本发明实施例中,获取待处理网页的源代码、DOM树和转码配置信息,待处理网页的转码配置信息包括待处理网页的每个业务块的定位信息和数据结构类型;根据业务块的定位信息,从DOM树中获取业务块对应的DOM节点;根据业务块的数据结构类型,从预设的算法库中获取业务块对应的识别算法;根据业务块的识别算法,从业务块的DOM节点对应的网页源代码中提取页面信息。本发明根据预设的算法库及网页的转码配置信息,高效准确地提取网页的页面信息,即便对于新增网页,也能够成功地从新增网页中提取页面信息。
本发明实施例所提供的提取页面信息的装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的装置、模块和单元的具体工作过程,均可以参考上述方法实施例中的对应过程。
在本申请所提供的几个实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (18)
1.一种提取页面信息的方法,其特征在于,所述方法包括:
获取待处理网页的源代码和文档对象模型DOM树,从服务器获取所述待处理网页的转码配置信息,所述待处理网页的转码配置信息包括所述待处理网页的每个业务块的定位信息和数据结构类型;
根据所述业务块的定位信息,从所述DOM树中获取所述业务块对应的DOM节点;以及根据所述业务块的数据结构类型,从预设的算法库中获取所述业务块对应的识别算法;
根据所述业务块对应的识别算法,从所述业务块的DOM节点对应的网页源代码中提取页面信息。
2.根据权利要求1所述的方法,其特征在于,所述根据所述业务块对应的识别算法,从所述业务块的DOM节点对应的网页源代码中提取页面信息,包括:
通过所述业务块对应的识别算法对所述业务块的DOM节点对应的网页源代码进行识别运算,识别出所述业务块中的目标数据;
将所述目标数据转换为JSON格式的页面信息,并输出所述JSON格式的页面信息。
3.根据权利要求1或2所述的方法,其特征在于,所述从服务器获取所述待处理网页的转码配置信息之前,还包括:
按照业务类型对所述待处理网页的DOM树进行划分,得到所述待处理网页的每个业务块;
分别获取所述每个业务块在所述待处理网页的DOM树中的定位信息;以及根据所述每个业务块对应的源代码,分别确定所述每个业务块的数据结构类型;
将所述每个业务块的定位信息及数据结构类型组成所述待处理网页的转码配置信息。
4.根据权利要求3所述的方法,其特征在于,所述分别获取所述每个业务块在所述待处理网页的DOM树中的定位信息,包括:
通过xPath路径方式分别从所述待处理网页的DOM树中遍历所述每个业务块对应的DOM节点的路径;
将所述每个业务块对应的DOM节点的路径确定为所述每个业务块的定位信息。
5.根据权利要求3所述的方法,其特征在于,所述根据所述每个业务块对应的源代码,分别确定所述每个业务块的数据结构类型,包括:
从所述每个业务块对应的源代码中,分别获取所述每个业务块包含的标签的类型;
根据预设的结构判定策略及所述每个业务块包含的标签的类型,分别确定所述每个业务块的数据结构类型。
6.根据权利要求1所述的方法,其特征在于,所述根据所述业务块的数据结构类型,从预设的算法库中获取所述业务块对应的识别算法之前,还包括:
从多个识别算法中,分别确定每种数据结构类型对应的识别算法,将每种数据结构类型及每种数据结构类型对应的识别算法存储在算法库中。
7.根据权利要求6所述的方法,其特征在于,所述从多个识别算法中,分别确定每种数据结构类型对应的识别算法,包括:
标注数据结构类型对应的业务块中的目标数据;
依次通过多个识别算法中的每个识别算法对所述数据结构类型的业务块进行识别运算;
将识别出所述目标数据的识别算法确定为所述数据结构类型对应的识别算法。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述预设的算法库中没有所述业务块的数据结构类型对应的识别算法时,发送所述数据结构类型对应的算法获取请求给管理终端,并接收所述管理终端返回的所述数据结构类型对应的识别算法,将所述数据结构类型与接收的所述识别算法对应存储在所述预设的算法库中。
9.根据权利要求1所述的方法,其特征在于,所述根据所述业务块的定位信息,从所述DOM树中获取所述业务块对应的DOM节点,包括:
按照所述业务块的定位信息指示的路径,通过xPath路径方式遍历所述待处理网页的DOM树中的DOM节点,得到所述业务块对应的DOM节点。
10.一种提取页面信息的装置,其特征在于,所述装置包括:
第一获取模块,用于获取待处理网页的源代码和文档对象模型DOM树,从服务器获取所述待处理网页的转码配置信息,所述待处理网页的转码配置信息包括所述待处理网页的每个业务块的定位信息和数据结构类型;
第二获取模块,用于根据所述业务块的定位信息,从所述DOM树中获取所述业务块对应的DOM节点;
第三获取模块,用于根据所述业务块对应的数据结构类型,从预设的算法库中获取所述业务块对应的识别算法;
提取模块,用于根据所述业务块的识别算法,从所述业务块的DOM节点对应的网页源代码中提取页面信息。
11.根据权利要求10所述的装置,其特征在于,所述提取模块包括:
第一识别单元,用于通过所述业务块对应的识别算法对所述业务块的DOM节点对应的网页源代码进行识别运算,识别出所述业务块中的目标数据;
转换单元,用于将所述目标数据转换为JSON格式的页面信息,并输出所述JSON格式的页面信息。
12.根据权利要求10或11所述的装置,其特征在于,所述装置还包括:
划分模块,用于按照业务类型对所述待处理网页的DOM树进行划分,得到所述待处理网页的每个业务块;
定位信息获取模块,用于分别获取所述每个业务块在所述待处理网页的DOM树中的定位信息;
确定模块,用于根据所述每个业务块对应的源代码,分别确定所述每个业务块的数据结构类型;
组成模块,用于将所述每个业务块的定位信息及数据结构类型组成所述待处理网页的转码配置信息。
13.根据权利要求12所述的装置,其特征在于,所述定位信息获取模块包括:
遍历单元,用于通过xPath路径方式分别从所述待处理网页的DOM树中遍历所述每个业务块对应的DOM节点的路径;
第一确定单元,用于将所述每个业务块对应的DOM节点的路径确定为所述每个业务块的定位信息。
14.根据权利要求12所述的装置,其特征在于,所述确定模块包括:
获取单元,用于从所述每个业务块对应的源代码中,分别获取所述每个业务块包含的标签的类型;
第二确定单元,用于根据预设的结构判定策略及所述每个业务块包含的标签的类型,分别确定所述每个业务块的数据结构类型。
15.根据权利要求10所述的装置,其特征在于,所述装置还包括:
算法库生成模块,用于从多个识别算法中,分别确定每种数据结构类型对应的识别算法,将每种数据结构类型及每种数据结构类型对应的识别算法存储在算法库中。
16.根据权利要求15所述的装置,其特征在于,所述算法库生成模块包括:
标注单元,用于标注数据结构类型对应的业务块中的目标数据;
第二识别单元,用于依次通过多个识别算法中的每个识别算法对所述数据结构类型的业务块进行识别运算;
第三确定单元,用于将识别出所述目标数据的识别算法确定为所述数据结构类型对应的识别算法。
17.根据权利要求10所述的装置,其特征在于,所述装置还包括:
算法获取模块,用于当所述预设的算法库中没有所述业务块的数据结构类型对应的识别算法时,发送所述数据结构类型对应的算法获取请求给管理终端,并接收所述管理终端返回的所述数据结构类型对应的识别算法,将所述数据结构类型与接收的所述识别算法对应存储在所述预设的算法库中。
18.根据权利要求10所述的装置,其特征在于,所述第二获取模块,用于按照所述业务块的定位信息指示的路径,通过xPath路径方式遍历所述待处理网页的DOM树中的DOM节点,得到所述业务块对应的DOM节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510594981.1A CN105589918B (zh) | 2015-09-17 | 2015-09-17 | 一种提取页面信息的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510594981.1A CN105589918B (zh) | 2015-09-17 | 2015-09-17 | 一种提取页面信息的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105589918A true CN105589918A (zh) | 2016-05-18 |
CN105589918B CN105589918B (zh) | 2017-04-05 |
Family
ID=55929499
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510594981.1A Active CN105589918B (zh) | 2015-09-17 | 2015-09-17 | 一种提取页面信息的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105589918B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107102858A (zh) * | 2017-04-20 | 2017-08-29 | 北京联合大学 | 一种在网站开发中实现高可扩展性页面输出的方法 |
CN108228805A (zh) * | 2017-12-29 | 2018-06-29 | 北京安云世纪科技有限公司 | 一种用于对显示数据进行处理的方法、设备及移动终端 |
CN110162301A (zh) * | 2019-04-01 | 2019-08-23 | 贵州力创科技发展有限公司 | 一种表单渲染方法、装置和存储介质 |
CN112099870A (zh) * | 2020-08-28 | 2020-12-18 | 深圳前海微众银行股份有限公司 | 文档处理方法、装置、电子设备及计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101217507A (zh) * | 2007-12-29 | 2008-07-09 | 深圳市迅雷网络技术有限公司 | 提供及替换网页中数据的方法、装置及系统 |
CN102880679A (zh) * | 2012-09-11 | 2013-01-16 | 北京易云剪客科技有限公司 | 一种网页信息存储方法和装置 |
CN103970898A (zh) * | 2014-05-27 | 2014-08-06 | 重庆大学 | 一种基于多级规则库的信息提取方法及装置 |
CN104158836A (zh) * | 2014-06-23 | 2014-11-19 | 浙江大学城市学院 | 一种通过数据渲染移动应用界面的方法 |
-
2015
- 2015-09-17 CN CN201510594981.1A patent/CN105589918B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101217507A (zh) * | 2007-12-29 | 2008-07-09 | 深圳市迅雷网络技术有限公司 | 提供及替换网页中数据的方法、装置及系统 |
CN102880679A (zh) * | 2012-09-11 | 2013-01-16 | 北京易云剪客科技有限公司 | 一种网页信息存储方法和装置 |
CN103970898A (zh) * | 2014-05-27 | 2014-08-06 | 重庆大学 | 一种基于多级规则库的信息提取方法及装置 |
CN104158836A (zh) * | 2014-06-23 | 2014-11-19 | 浙江大学城市学院 | 一种通过数据渲染移动应用界面的方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107102858A (zh) * | 2017-04-20 | 2017-08-29 | 北京联合大学 | 一种在网站开发中实现高可扩展性页面输出的方法 |
CN108228805A (zh) * | 2017-12-29 | 2018-06-29 | 北京安云世纪科技有限公司 | 一种用于对显示数据进行处理的方法、设备及移动终端 |
CN110162301A (zh) * | 2019-04-01 | 2019-08-23 | 贵州力创科技发展有限公司 | 一种表单渲染方法、装置和存储介质 |
CN110162301B (zh) * | 2019-04-01 | 2023-07-04 | 贵州力创科技发展有限公司 | 一种表单渲染方法、装置和存储介质 |
CN112099870A (zh) * | 2020-08-28 | 2020-12-18 | 深圳前海微众银行股份有限公司 | 文档处理方法、装置、电子设备及计算机可读存储介质 |
WO2022041714A1 (zh) * | 2020-08-28 | 2022-03-03 | 深圳前海微众银行股份有限公司 | 文档处理方法、装置、电子设备、存储介质和程序 |
CN112099870B (zh) * | 2020-08-28 | 2023-12-26 | 深圳前海微众银行股份有限公司 | 文档处理方法、装置、电子设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105589918B (zh) | 2017-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102185864B1 (ko) | 프레젠테이션을 위한 네이티브 콘텐츠의 서버측 렌더링 방법 및 시스템 | |
CN107590174B (zh) | 页面访问方法及装置 | |
CN104750789B (zh) | 标签的推荐方法及装置 | |
CN102253936B (zh) | 记录用户访问商品信息的方法及搜索方法和服务器 | |
CN107330752B (zh) | 识别品牌词的方法和装置 | |
CN105279224A (zh) | 信息推送方法及装置 | |
CN107346325A (zh) | 信息查询方法及装置 | |
CN110352427B (zh) | 用于收集与网络化环境中的欺诈性内容相关联的数据的系统和方法 | |
CN103389895A (zh) | 一种前端页面的生成方法及系统 | |
CN103605502B (zh) | 表单页面显示方法及服务器 | |
CN102279894A (zh) | 基于语义的查找、集成和提供评论信息的方法及搜索系统 | |
CN102314497B (zh) | 一种用于识别标记语言文件主体内容的方法和设备 | |
US20150287047A1 (en) | Extracting Information from Chain-Store Websites | |
CN104462131A (zh) | 信息发布页面的处理方法及装置 | |
CN102651002A (zh) | 一种网页信息抽取方法及其系统 | |
CN105653157A (zh) | 一种拷贝文本的处理方法及装置 | |
CN105589918A (zh) | 一种提取页面信息的方法及装置 | |
CN103166981A (zh) | 一种无线网页转码方法及装置 | |
CN103491116A (zh) | 正文相关的结构化数据的处理方法及装置 | |
CN103559194B (zh) | 一种搜索方法、服务器、系统 | |
CN102664925A (zh) | 一种展现搜索结果的方法及装置 | |
CN111209374A (zh) | 数据查询展示方法、装置、计算机系统及可读存储介质 | |
CN110020312A (zh) | 提取网页正文的方法和装置 | |
CN103927177A (zh) | 基于LDA模型和PageRank算法建立特征接口有向图的方法 | |
CN103377225A (zh) | 知识库系统的构建方法和设备 |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200619 Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province Patentee after: Alibaba (China) Co.,Ltd. Address before: 510627 Guangdong city of Guangzhou province Whampoa Tianhe District Road No. 163 Xiping Yun Lu Yun Ping B radio 14 floor tower square Patentee before: GUANGZHOU UCWEB COMPUTER TECHNOLOGY Co.,Ltd. |
|
TR01 | Transfer of patent right |