一种网页结构变更检测方法及系统与流程

文档序号:11707783阅读:183来源:国知局
本公开涉及网页检测
技术领域
:,尤其涉及一种网页结构变更检测方法及系统。
背景技术
::网页结构即网页内容的布局,创建网页结构实际上就是对网页内容的布局进行规划。网页结构的创建是页面优化的重要环节之一,会直接影响页面的用户体验及相关性,而且还在一定程度上影响网站的整体结构及页面被收录的数量。从页面结构的角度上看,网页主要由导航栏、栏目、及正文内容这三大要素组成。网页结构的创建、网页内容布局的规划实际也是围绕这三大组成要素展开的。网页结构实际就是对导航栏、栏目、及正文内容这三大页面基本组成元素进行组织布局。根据页面内容侧重点的不同,可以把网页分为导航型、内容型及导航内容结合型三种。网页栏目结构一般来说,一个企业网站的一级栏目不应超过8个,而栏目层次以三层以内比较合适。网站栏目设置是一个网站结构的基础,也是网站导航系统的基础,应做到设置合理、层次分明。对网站栏目结构的研究室网络营销导向网站建设的基础。网页的布局,传统的基于html的网站设计中,网页结构定位通常有表格定位和框架结构,现在主流是采用表格定位;基于xhtml语言的网站设计中,典型的定位方式采用层。然而,网页的结构一般都会根据网页的内容而进行调整,不同的内容决定不同的网页结构。一个网页在内容发生变化的时候,会有网页结构上的调整。这就给需要抓取网页内容的应用带来的困难。网页结构变化后,如果依然用旧的网页结构去抓取网页内容,可能会得到错误的网页内容数据。因而,亟需要一种可以快速准确的检测网页结构变化的方案,以解决现有技术中无法准确识别网页结构变化的问题。技术实现要素:为克服相关技术中存在的问题,本公开实施例提供一种网页结构变更检测方法及系统。根据本公开实施例的第一方面,提供一种网页结构变更检测方法,包括:获取网页html代码并解析,得到网页数据;根据所述网页数据,提取出其中各标签的网页结构,建立dom树;将dom树的树形结构与预先存储的网页数据dom树型结构匹配;根据匹配结果确定网页结构的变更位置。所述获取网页html代码并解析,包括:登入网页服务器,请求所述网页对应的html代码;将所述网页对应的html代码根据预设的格式进行存储。所述根据所述网页数据,提取出其中各标签的网页结构,建立dom树,包括:获取所述网页数据中各个html标签;根据所述html标签获取对应的网页结构;根据所述网页结构,清洗去除其中各html标签的属性值和文本内容节点,获得结构数据;根据所述结构数据建立dom树。所述将dom树的树形结构与预先存储的网页数据dom树型结构匹配,包括:将不同时间点获取的dom树的树形结构相匹配。将dom树的树形结构与预先存储的网页数据dom树型结构匹配,包括:根据树形结构匹配算法进行匹配;具体树形结构匹配算法包括:匹配两个dom树的md5值;当确认所述两个dom树的md5值不一致时,从所述两个dom树的父节点到子节点,子节点到叶子节点,逐一进行递归式md5值对比校验;将md5值不一致的所述节点,存储到结构变更集合中。所述根据匹配结果确定网页结构的变更,包括:遍历dom树型结构并比较对应节点,当有节点不同时,确定在该节点处网页结构发生了变更。根据本公开实施例的另一方面,提供一种网页结构变更检测系统,包括:html解析模块,用于获取网页html代码并解析,得到网页数据;dom树建立模块,用于根据所述网页数据,提取出其中各标签的网页结构,建立dom树;匹配模块,用于将dom树的树形结构与预先存储的网页数据dom树型结构匹配;检测模块,用于根据匹配结果确定网页结构的变更。所述html解析模块,包括:请求单元,用于登入网页服务器,请求所述网页对应的html代码;存储单元,用于将所述网页对应的html代码根据预设的格式进行存储。所述dom树建立模块,包括:标签获取单元,用于获取所述网页数据中各个html标签;网页结构获取单元,用于根据所述html标签获取对应的网页结构;清洗单元,用于根据所述网页结构,清洗去除其中各html标签的属性值和文本内容节点,获得结构数据;dom树建立单元,用于根据所述结构数据建立dom树。所述匹配模块,包括:匹配单元,用于逐一匹配整个dom树的md5值;校验单元,用于当确认所述dom树的md5值不一致时,从dom树的父节点到子节点,子节点到叶子节点,逐一进行递归式md5值校验;集合单元,用于将md5值不一致的所述节点,存储到结构变更集合中。本公开的实施例提供的技术方案可以包括以下有益效果:本公开通过获取网页html代码并解析,得到网页数据;根据所述网页数据,提取出其中各标签的网页结构,建立dom树;将dom树的树形结构与预先存储的网页数据dom树型结构匹配;根据匹配结果确定网页结构的变更。本公开提供的方案,能够快速检测出网页结构的变化,通过网页标签内容建立dom树,并通过比对dom树形结构来确认网页结构的变化,能够为网页结构检测相关应用提供很好的检测工具,对网页结构变更提供快速检查及变更处的精准定位。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。图1是根据一示例性实施例示出的一种网页结构变更检测方法原理流程图。图2是根据一示例性实施例示出的一网页dom树结构示意图。图3是根据一示例性实施例示出的另一网页dom树结构示意图。图4是根据一示例性实施例示出的树形结构匹配算法原理流程图。图5是根据一示例性实施例示出的一种网页结构变更检测系统结构示意图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。图1是根据一示例性实施例示出的一种网页结构变更检测方法原理流程图,包括:步骤11,获取网页html代码并解析,得到网页数据。本实施例中,首先需要获取待检测网页的网页数据。由于现有的网页大多基于html代码编写,因而,首先需要获取网页的html代码。html是一种超文本标记语言,标准通用标记语言下的一个应用,也是一种规范,一种标准,它通过标记符号来标记要显示的网页中的各个部分。网页文件本身是一种文本文件,通过在文本文件中添加标记符,可以告诉浏览器如何显示其中的内容(如:文字如何处理,画面如何安排,图片如何显示等)。一个网页对应多个html文件,超文本标记语言文件以.htm(磁盘操作系统dos限制的外语缩写)为扩展名或.html(外语缩写)为扩展名。可以使用任何能够生成txt类型源文件的文本编辑器来产生超文本标记语言文件,只用修改文件后缀即可。标准的超文本标记语言文件都具有一个基本的整体结构,标记一般都是成对出现(部分标记除外例如:<br/>),即超文本标记语言文件的开头与结尾标志和超文本标记语言的头部与实体两大部分。有三个双标记符用于页面整体结构的确认。通过网页的html代码,可以获取网页的基本内容,以及网页的结构框架等。这些数据需要进行分类的解析和整理。也就是将网页中内容数据和结构数据分类,并按照预设的格式进行保存。保存的数据即为网页数据。网页数据需要经过进一步的处理后,才能够具体解析出具体内容。通常来说,一般需要登入所需检测的网页,然后请求获取其中的网页html代码,将这些html代码分类对应后进行存储。步骤12,根据所述网页数据,提取出其中各标签的网页结构,建立dom树。在一个实施例中,具体的网页数据需要根据各自的标签内容,对应到具体的网页结构,根据网页结构的不同,建立不同的dom树。html标签是html语言中最基本的单位,html标签是html最重要的组成部分。通常的html标签具有如下特点:由尖括号包围的关键词,比如<html>;通常是成对出现的,比如<div>和</div>;标签对中的第一个标签是开始标签,第二个标签是结束标签;开始和结束标签也被称为开放标签和闭合标签;也有单独呈现的标签,如:<imgsrc="百度百科.gif"/>等;一般成对出现的标签,其内容在两个标签中间,单独呈现的标签,则在标签属性中赋值,如<h1>标题</h1>和<inputtype="text"value="按钮"/>;网页的内容需在<html>标签中,标题、字符格式、语言、兼容性、关键字、描述等信息显示在<head>标签中,而网页需展示的内容需嵌套在<body>标签中。这些html标签,定义了网页的具体结构节点,根据这些html标签,可以准确的判定网页的结构和内容。dom(htmldocumentobjectmodel,文档对象模型),是专门适用于html/xhtml的文档对象模型。它将网页中的各个元素都看作一个个对象,从而使网页中的元素也可以被计算机语言获取或者编辑。dom是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中导航寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。由于它是基于信息层次的,因而dom被认为是基于树或基于对象的。dom树是html页面的层级结构。它由元素、属性和文本组成,它们都是一个节点(node),就像公司的组织结构图一样。对输入的网页进行预处理,提取出其中各标签的网页结构,以dom树形结构(就是一棵多叉树)存储。如下html代码是一个简单的table表格结构,经过预处理之后,可提取出其dom树,如图2所示。html代码里面每一个标签都是dom的一个结点,每个结点可以包含其它结点,类似树干上可以长其它树干。dom树从根标签html开始算起,可以查找到当前页面内的任意一个标签。具体来说,dom树可以将html形象的反映在树形结构上,便于后续的比较。获取所述网页数据中各个html标签;根据所述html标签获取对应的网页结构;根据所述网页结构建立dom树。步骤13,将dom树的树形结构与预先存储的网页数据dom树型结构匹配。在一个实施例中,具体的dom树的树形结构建立后,需要与其它时间段或时间点得到的dom树的树形结构进行比较,才能确认是否发生变化。而具体的其它时间段或时间点获取的dom树的树形结构可以预先获取,也可以自行设定。不同的时间段获取的dom树的树形结构,可能相同,也可能不同,需要通过具体的匹配算法来确定。提取出某个网页的dom树的树形结构,我们可以提取出不同时间的同一网页的dom树结构。针对不同时间的同一网页的dom树结构进行匹配,查找出其变更的节点位置。举例说明,设定上述代码对应的网页为较早的网页,下述代码对应的网页为较新的网页,如下所示为较新的网页代码,相较于上述网页少了一行:如上网页的dom树结构通过网页预处理阶段可以提取出,如图3所示。二者可以通过dom树匹配算法进行具体的匹配比较,具体如图4所示:首先读取dom树形结构,也就是预先存储的dom树形结构和待检测的网页的dom树形结构,可以用a和b表示。清洗dom树形结构中的结构内容,也就是清洗去除具体的内容,仅保留树形结构。根据所述dom树,清洗去除其中各标签的属性值和文本内容节点,仅保留html标签结构的dom树。获取两个dom树形结构的各个节点的md5值,逐一进行比较,确认是否一致。如果一致,则流程结束,网页结构没有发生变化。如果不一致,则需要进一步判断本次md5值的比较是不是已经完成了递归过程,如果是,则本次是最后一个节点的比较,因而结束流程,否则,继续流程。将两个dom树按照顺序逐一查找相同位置的节点。判断该节点是否为叶子结点,如果是,判断同级节点的数量是否一致。当该节点不是叶子结点时,继续对比该节点下级所有节点的md5值。节点的值不一致时,继续判断同级节点的数量是否一致。一致时,返回执行递归完成判断的步骤。当该节点不是叶子结点,或者该节点下级节点的md5值不一致时,继续判断同级节点的数量是否一致。如果一致,返回执行递归完成判断的步骤。否则,继续流程。计算两个dom树形结构,也就是a和b的差值。存储目前待检测的dom树形结构的位置及dom的变化差值。据此,可以确定的获得待检测dom树形结构与预先存储的dom树形结构的变化差值,也就获取了具体网页结构的变更位置。md5即message-digestalgorithm5(信息-摘要算法5),用于确保信息传输完整一致。md5的典型应用是对一段信息(message)产生信息摘要(message-digest),以防止被篡改。具体来说文件的md5值就像是这个文件的“数字指纹”。每个文件的md5值是不同的,如果任何人对文件做了任何改动,其md5值也就是对应的“数字指纹”就会发生变化。本实施例中,通过对各个节点md5值的比较,确认各个节点是否发生变化。步骤14,根据匹配结果确定网页结构的变更。匹配的结果是根据匹配算法的具体结果得到的,具体需要遍历dom树型结构并比较对应节点,当有节点不同时,确定在该节点处网页结构发生了变更。本实施例中的核心在于网页结构变更检测的过程,也就是具体的html代码建立dom树,并利用树形结构匹配算法进行匹配以确认是否变更的过程。本公开通过获取网页html代码并解析,得到网页数据;根据所述网页数据,提取出其中各标签的网页结构,建立dom树;将dom树的树形结构与预先存储的网页数据dom树型结构匹配;根据匹配结果确定网页结构的变更。本公开提供的方案,能够快速检测出网页结构的变化,通过网页标签内容建立dom树,并通过比对dom树形结构来确认网页结构的变化,能够为网页结构检测相关应用提供很好的检测工具,为网页结构变更提供快速检查及变更处的精准定位。进一步的,如图5所示,为根据一示例性实施例示出的一种网页结构变更检测系统结构示意图,其中,html解析模块21,用于获取网页html代码并解析,得到网页数据;dom树建立模块22,用于根据所述网页数据,提取出其中各标签的网页结构,建立dom树;匹配模块23,用于将dom树的树形结构与预先存储的网页数据dom树型结构匹配;检测模块24,用于根据匹配结果确定网页结构的变更。进一步的,所述html解析模块21,包括:请求单元,用于登入网页服务器,请求所述网页对应的html代码;存储单元,用于将所述网页对应的html代码根据预设的格式进行存储。进一步的,所述dom树建立模块22,包括:标签获取单元,用于获取所述网页数据中各个html标签;网页结构获取单元,用于根据所述html标签获取对应的网页结构;清洗单元,用于根据所述网页结构,清洗去除其中各html标签的属性值和文本内容节点,获得结构数据;dom树建立单元,用于根据所述结构数据建立dom树。进一步的,所述匹配模块23,包括:匹配单元,用于匹配整个dom树的md5值;校验单元,用于当确认所述dom树的md5值不一致时,从dom树的父节点到子节点,子节点到叶子节点,逐一进行递归式md5值校验;集合单元,用于将md5值不一致的所述节点,存储到结构变更集合中,用户记录变更的节点内容。具体来说,本实施例通过获取网页html代码并解析,得到网页数据;根据所述网页数据,提取出其中各标签的网页结构,建立dom树;将dom树的树形结构与预先存储的网页数据dom树型结构匹配;根据匹配结果确定网页结构的变更。本公开提供的方案,能够快速检测出网页结构的变化,通过网页标签内容建立dom树,并通过比对dom树形结构来确认网页结构的变化,能够为网页结构检测相关应用提供很好的检测工具,为网页结构变更提供快速检查及变更处的精准定位。本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本
技术领域
:中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1