一种基于视觉相似性镜像网站发现方法及系统与流程

文档序号:15615211发布日期:2018-10-09 21:11阅读:157来源:国知局

本发明涉及网络信息技术领域,具体涉及一种基于视觉相似性镜像网站发现方法及系统。



背景技术:

镜像网站是指对一个网站内容的拷贝。镜像网站通常用于为相同信息内容提供不同的源,特别是在下载量大的时候提供了一种可靠的网络连接。镜像网站和主站并没有太大差别,或者可算是为主站作的后备措施。镜像网站的特点是:如果不能对主站作正常访问(如某个服务器死掉或出了其它意外),但仍能通过其它服务器正常浏览。相对来说主站在速度等各方面比镜像站点略胜一筹。

最常见的当属镜象站点。通过复制网站或网页的内容并分配以不同域名和服务器,以此欺骗搜索引擎对同一站点或同一页面进行多次索引。大多数搜索引擎都提供有能够检测镜象站点的适当的过滤系统,一旦发觉镜象站点,则源站点和镜象站点都会被从索引数据库中删除。

“镜像网站”这种技术主要是在海外或中国租用一些多人共用的ip主机,而这些主机的域名都在亚马逊或谷歌之下,发布者将敏感网站内容抄到镜像主机之内,那些未经加密的敏感字内容除外,大部分网站都可以透过这种寄生于常用主机的镜像手法提供一个未经政府封锁的版本,政府的封锁亦因此失败。镜像的网站够多的话,政府要逐一封锁比较难,能够令敏感内容能够到达读者的电脑上。但是镜像网站不能解决关键字封锁,敏感字还是会被检测出来,如果使用加密就无法识别敏感关键字,镜像网站从而就不会被封锁。

当前的镜像网站检测方法都是基于源码,在流量中通过条件过滤出http协议,捕获相关数据包,获取网页源码,利用simhash算法将目标网页与基准网页进行源码对比。通过计算海明距离来与设定好的阈值进行对比判断,小于阈值的才是此网页的镜像网站。但是这种方法也存在着一定的局限性,现在很多网站都是套用模板,在网页源码上有着很高的相似性,从而simhash算法出现一定问题,召回率和准确率不可兼得。

另外一方面,随着javascript的出现,很多网页都是导入js,导致很多镜像网站源码差异很大,但是展现出的页面是相似的,所以,基于源码的镜像网站识别算法就已经不适用了。



技术实现要素:

本发明的目的是提供一种基于视觉相似性镜像网站发现方法及系统,本方法通过页面分块技术和图像相似性检测技术,对具有视觉相似性的网站进行页面分块,对每个页面块进行图像相似性对比来发现镜像网站。

为达到上述目的,本发明采用如下技术方案:

一种基于视觉相似性镜像网站发现方法,步骤包括:

基于视觉可视化信息和dom树结构对网页页面进行初步分块,将得到的块作为dom树的结点;

判断每个结点是否可继续分割,如可以,则继续分割,将分出的新块作为该结点的孩子结点;如不可以,则将该结点的块作为页面块存入页面块池中,如此循环迭代分块,直至得到全部的页面块;

检测出页面中的分隔条,确定分割条的权重;

基于分隔条的权重,对网页页面进行重构(也称内容重建),从最小权重的分割条开始,将分割条两侧的页面块进行合并,组成新的页面块,如此迭代合并页面块,直至遇到权重最高的分隔条为止,得到由多个页面块合并的语义块;

将得到的语义块转换成相同大小规格的图像,提取图像的签名特征;

根据上述步骤提取目标网页和基准网页的各语义块的签名特征,基于签名特征通过emd距离算法计算目标网页和基准网页之间的距离,如果该距离小于一设定阈值,则判定该目标网页的网站属于镜像网站。

上述方法中,基于vips算法对网页页面进行初步分块。

上述方法中,检测分割条的方法为:先将整个网页的页面设置为一个分隔条;再根据分隔条与页面块池中的每个页面块的包含、重合、跨越这三种关系调整分隔条,得到多个分隔条;最后移除页面边缘的四个分隔条。

上述方法中,根据分隔条与页面块池中的每个页面块的包含、重合、跨越这三种关系调整分隔条包括:若页面块被包含在分隔条中,将该分隔条从页面块的边缘裂变为多个分隔条;若页面块与分隔条发生部分重合,那么根据页面块的边界重新调整分隔条的参数;若页面块跨越分隔条,则移除该分隔条。

上述方法中,如果得到的语义块的doc(degreeofcoherence)值小于一设定阈值,则继续合并页面块,直至得到的语义块的doc值不小于该设定阈值。

上述方法中,采用htmltojpg方法将语义块转换成图像。

上述方法中,对于每个语义块转换成的图像,采用一个四元组<a,r,g,b>来表示其颜色特征,先计算四元组<a,r,g,b>到原点的欧氏距离,再计算图像中心到原点的欧氏距离,再根据权重加起来,获得图像的签名特征。

上述方法中,确定分隔条权重的规则包括:

1)分隔条两边的页面块的距离越远,该分隔条的权重就越大;

2)如果分隔条是通过检测html标签获取的,则该分隔条的权重增大;

3)如果分隔条两侧的页面块的背景色不相同,则该分隔条的权重增大;

4)对于水平分隔条而言,如果分隔条两侧的页面块的字体属性不同,则该分隔条的权重增大;而且如果分隔条上侧的页面块的字体小于分隔条下侧的页面块的字体,则该分隔条的权重更大;

5)对于水平分隔条而言,分隔条两侧的页面块的结构越相似,则该分隔条的权重会越小。

上述方法中,判断结点是否可以继续分割的规则包括:

1)如果当前结点不是文本结点,而且又没有任何有效的孩子结点,则该结点将不被分割,并且从结点集合中删除;

2)如果当前结点只有一个有效的孩子结点,同时该孩子结点不是文本结点,则当前结点将被分割;

3)如果当前结点是整个子dom树的根结点,同时只有一个子dom树与当前的页面块关联,则分割该结点;

4)如果当前结点的所有的孩子结点都是文本结点或者是虚拟文本结点,则不分割该结点;如果当前所有孩子结点的字体大小和字体重量都是相同的,则该结点的块的doc值设置为10,否则设置为9;

5)如果当前结点的孩子结点中有一个line-break结点,则该结点将被继续分割;

6)如果当前结点的孩子结点中存在<hr>结点,则该结点将被继续分割;

7)如果所有孩子结点的尺寸之和大于dom树结点的尺寸,则分割该结点;

8)如果当前结点的背景色与其所有子结点中的某个的背景色不相同,则该结点将被分割,同时具有不同颜色的孩子结点在本次迭代中不分割,在下次迭代中再进行分割,而且孩子结点的doc值根据标签和尺寸的不同设置为6~8;

9)如果当前结点至少具有一个文本或者虚拟文本孩子结点,同时结点的相对大小小于门槛大小,则该结点不再分割,同时根据标签的不同,其doc值设置为5~8;

10)如果当前结点的所有孩子结点中最大的尺寸小于门槛大小,则该结点将不再分割,同时其doc值根据html标签和结点大小设置;

11)如果前一个兄弟结点没有被分割,则该结点也不会被继续分割;

12)基于当前节点标签和大小设置doc值,来决定结点是否分割。

上述方法中,先计算目标网页和基准网页各对应语义块对之间的距离,再根据语义块对的权重,加权得到目标网页和基准网页之间的距离。

一种基于视觉相似性镜像网站发现系统,包括存储器和处理器,所述存储器存储计算机程序,所述程序被配置为由所述处理器执行,所述程序包括用于执行上述方法的各步骤的指令。

本发明基于vips算法对网页进行页面分块,通过dom树以及视觉的特征将网页分成不同的语义块,提取语义块之间的分隔条,再将网页内容进行重构;将重构之后的页面块转换成图像,再利用图像相似性检测算法将检测网页的语义块和基准网页的语义块进行对比,通过视觉特征判断这个网页是不是镜像网站。

本发明基于vips算法使用了一种新的页面分块算法,通过视觉特征对网页页面进行分块,抽取可视块,通过一系列推理规则将一个web页面递归地分割成一个个独立的语义块;对每个语义块多次迭代分块,达到设定好的值之后,提取语义块之间的分隔条,找出网页上视觉划分各分块的水平线和竖直线;再对属于同一块的主题的语义块进行内容重构,根据分隔条信息,对页面语义结构重构。循环进行上述步骤,直到满足分割粒度,完成分块。相比于其他的基于视觉的网页相似性检测,更加精细。

现有的镜像网站发现算法主要以simhash为主,准确率达到80%;基于视觉图像的以整个网页当做图像进行比对方法准确率达到87%。而本方法将网页进行分块,对每个语义块设置好不同的权重,转换为图像,再对每个图像用emd算法计算相似度进行比对,通过大量实验验证,准确率达到95%,能有准确有效地识别出镜像网站。

附图说明

图1是页面分块流程图。

图2是页面分块原理图i。

图3是页面分块原理图ii。

图4是横向分隔条提取原理图。

图5是页面分块效果图。

具体实施方式

为使本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图作详细说明如下。

镜像网站很明显的一个特点就是与原网页在视觉方面有着极高的相似性,为了有效地识别出镜像网站,基于网页页面分块算法和图像相似性检测算法,可以高效的识别出镜像网站。页面分块可以根据网页内容的区别分成不同的语义块,然后将每个语义块转换成图像与基准网页进行对比,从而识别出镜像网站。这种方法可以有效地解决镜像网站代码差异以及加密的问题,对于识别镜像网站有着重要的意义。

本发明主要包含两个方面:(1)基于语义块的网页页面分块,将网页依据视觉特征划分成多个语义块;(2)将每个语义块转换成图像,再根据图像相似性检测算法将语义块与基准网页的语义块进行对比,从而识别出镜像网站。

本实施例提供一种基于视觉相似性镜像网站发现方法,图1所示为其页面分块流程,该方法的步骤包括:

1)对于每个页面可以将其看作一个三元组ω=(ο,φ,δ),其中ο=(ω1,ω2,…ωn),表示给定页面上的所有的语义块的集合,这些语义块之间没有重叠覆盖,而每一个语义块ωi又可以被定义为前面所描述的三元组ωi=(οi,φi,δi),如此迭代循环;φ=(φ1,φ2,…),表示当前页面上的所有的分隔条的集合。分隔条包括水平分隔条,也包括垂直分隔条。每一个分隔条都具有一定的宽度和高度。δ则描述了ω集合中两个语义块之间的关系。

2)基于dom树以及一些视觉可视化的信息提取出初步的语义块,;根据dom树划分出所有的结点,然后结合视觉信息对结点进行检测,判断是否可以继续分割,如果不能,将此结点的页面块放置到页面块池中,如果可以分割,对当前页面块的每个结点再进行判断,以此循环迭代分割,得到所有的页面块。对于结点是否可以继续分割,设置了12条规则来进行判定,首先对于根结点p根据规则判断是否可以分割,若结点p可以分割,对结点p的每个子结点递归进行此循环的判断,若结点p不可分割,将结点p放入页面池,当前即为语义块,递归执行直至所有结点都已经分割到最小。

结点分割规则如下:

规则1:如果当前结点不是文本结点,同时它又没有任何有效的孩子结点,那么该结点将不被分割,并且从结点集合中删除。

规则2:如果当前结点只有一个有效的孩子结点,同时该孩子结点不是文本结点,那么当前结点将被分割。

规则3:如果当前的dom结点是整个子dom树的根结点(与页面块对应),同时只有一个子dom树与当前的页面块关联,那么分割该结点。

规则4:如果当前结点的所有的孩子结点都是文本结点或者是虚拟文本结点,那么不分割该结点。如果当前所有孩子结点的字体大小和字体重量都是相同的,那么该页面块的doc设置为10,否则设置为9。

规则5:如果当前dom结点的孩子结点中有一个line-break结点,那么该结点将被继续分割。

规则6:如果当前结点的孩子结点中存在<hr>结点,那么该结点将被继续分割。

规则7:如果所有孩子结点的尺寸之和大于dom树结点的尺寸,那么分割该结点。

规则8:如果当前结点的背景色与它的所有子结点中的某个的背景色不相同,那么该结点将被分割,同时具有不同颜色的子结点在本次迭代中不分割,分割在下轮迭代中进行。与此同时,孩子结点的doc值根据标签和尺寸的不同设置为6-8。

规则9:如果结点至少具有一个文本或者虚拟文本子结点,同时结点的相对大小小于门槛大小,那么这个结点不再分割,同时根据标签的不同,doc值设置为5-8。

规则10:如果当前结点的所有子结点中最大的尺寸也小于门槛大小,那么该结点将不再分割,同时doc值根据html标签和结点大小设置。

规则11:如果前一个兄弟结点没有被分割,那么该结点也不会被继续分割。

规则12:基于当前节点标签和大小设置doc值来决定结点是否分割。

3)当所有的页面块被提取出来之后,它们都被保存在页面块池中以便进行分隔条检测。在页面分割算法中,分隔条是web页面中的垂直的或者水平的行。从视觉的角度而言,分隔条是web页面区分不同语义块的显著提示。在页面分块算法中一个可视的分隔条可以用二维向量(ps,pe)描述,其中,ps是分隔条的起始坐标,而pe则是分隔条的终止坐标。坐标的单位全部为像素pixel。根据ps和pe,很容易计算当前分隔条的宽度和高度。

页面分块原理图如图2、图3所示。其中图2展现了页面的布局结构和基于视觉的内容结构。在第一层,整个原有的页面被分割为四个大的可视对象vb1-vb4,同时在这四个对象之间检测出了三个分隔条φ13(原来有五个,最上面的和最下面的被舍弃)。检测出的四个可视对象(页面块)并不是这轮分割的最终的局部。最终得到的语义块必须根据检测出的四个可视对象和三个分隔条进一步构建而成,其中可能需要合并一些语义块,舍弃一些分隔条等等。比如对于vb2,从它的内部又可以检测出三个子页面块(vb2_1、vb2_2、vb2_3)和两个分隔条φ21、φ22

图3展现了网页的dom树以及结点与其对应的子页面,其中,a是网页的dom树,b是网页,c是得到的页面快和分隔条,d是页面快和分隔条的逻辑显示。可以看到根据定义,该dom树中的很多结点都是无效的,它们无法在浏览器中显示出来,在页面块的提取过程中,这些结点将被忽略。当此网页这些页面块提取出来之后,六个页面块将保存到页面池中,同时检测到了五个水平分隔条。基于下文的五个分隔条权重设置规则,设定这些分隔条的权重。在本例中,页面块2和页面块3之间的分割条要比页面块1和页面块2之间的分割条权重高,这是因为字体不同的原因,同样,页面块4和页面块5之间的分隔条权重也高一些。

4)分隔条的检测方法如下:初始化分隔条列表;最开始将整个网页看做是一个分隔条,它的起始和终止坐标为(pbe,pee),分别对应整个web页面的起始坐标和终止坐标;对于页面块池中的每一个页面块,它与分隔条的关系包括下面三种:包含、重合、跨越,对于不同情况的分隔条,采取不同的措施进行调整。若页面块被包含在分隔条中,此时,将该分隔条从页面块的边缘裂变为多个分隔条;若页面块与分隔条发生部分重合,那么根据页面块的边界重新调整分隔条的参数;若页面块跨越分隔条,那么此时移除该分隔条。对于整个页面的分隔条,首先移除页面边缘的四个分隔条,然后提取横向分隔条。之后再进行纵向分隔条的提取,原理相同。

图4显示了横向分隔条的检测过程。开始时将整个页面看做一个大的分隔条,它的起始和终止位置就是整个页面的起始和终止位置。当第一个页面块放入到页面池中的时候,由于该页面块被包含在分隔条内部,此时原有的分隔条将裂变为s1和s2。同理当第二个和第三个页面块放入到池中的时候,四个分隔条s1,s2,s3和s4被检测出来。当第四个页面块放入到池中的时候,它跨越了s3分隔条,同时与s2分隔条有部分重合,此时s3分隔条将被删除,同时s2将被调整,从图中可以看出,调整后,s3明显的变细了。最左边是效果示意图,往右依次是横向分隔条提取原理图。

5)分隔条用于区别不同语义的页面块,因此基于给定分隔条两边的语义块的在视觉上的差异,设置分隔条的权重。如果分隔条的权重越重,该分隔条最终成为分隔条的可能性就越大,提出了5条规则确定分隔条的权重。

分隔条权重设置规则:

规则1:分隔条两边的页面块的距离越远,该分隔条的权重就越高。

规则2:如果某个分隔条是通过检测html标签获取的,比如<hr>,那么该分隔条的权重就越高。

规则3:如果分隔条两侧的页面块的背景色是不相同的,那么该分隔条的权重将相应增高。

规则4:对于水平分隔条而言,如果分隔条两侧的页面块的字体属性,比如字体大小,字体重量是不同的,那么该分隔条的权重将增加。而且如果分隔条上侧的页面块的字体小于分隔条下侧的页面块的字体,那么分隔条的权重将增加。

规则5:对于水平分隔条而言,当分隔条两侧的页面块的结构非常相似,比如文本,那么该分隔条的权重将递减。

6)当分隔条被检测出来并设置权重之后,就开始内容重建。构建过程从最小权重的分隔条开始,该分隔条两侧的页面块将合并在一起组成一个新的语义块。该合并过程不停的进行迭代,直到遇到权重最高的分隔条为止,对于每一个新的语义块,同时设置好相应的doc值。

7)当页面块最终合并成为语义块之后,本轮的迭代也就结束了。对于这些语义块,每一个语义块的doc值都会与设置好的阈值进行对比,如果语义块的doc值小于设置好的阈值,那么继续进行迭代,直至将整个web页面的内容结构将构建出来。

页面分块效果图如图5所示。当一个网页输入到系统中来,对其进行页面块提取,然后进行分隔条提取,再内容重构、迭代,完成对一个网页图片的页面分块。根据效果图可知,分块算法将图片与其说明文字融合在了一个语义块,效果良好。

8)将网页页面重构之后,得到页面的多个语义块,采用htmltojpg方法将每个语义块转换成图像,并进行预处理,将这些图像转换成相同大小规格的图像。

9)对每幅图像,提取其图像特征,包括颜色和坐标,采用一个四元组<a,r,g,b>来表示每幅图像的颜色特征,坐标选取每个图像中心位置。

10)先计算四元组<a,r,g,b>到原点的欧氏距离,然后计算图像中心到原点的欧氏距离,两欧式距离满足和为1的条件,然后根据权重加起来,获得每幅图像的签名特征。

11)基于每幅图像的签名特征,根据图像距离算法earthmover’sdistance(emd)来计算待检测的目标网页语义块和基准网页语义块之间的距离。emd算法是一种距离度量的算法,用来测量两幅图像对应特征之间的距离。

12)根据emd算法测量得到两个网页对应的语义块对之间的距离,然后根据不同的语义块对赋予不同的权重,将各个距离加权得到整个目标网页与基准网页的距离。

13)将这个距离与实验得到的阈值进行对比,在阈值以内的,证明这个检测网页是镜像网站,不在阈值之内的,说明这两个网站不是同一个网站,由众多实验得知该阈值可取0.76。以此可以有效准确的发现镜像网站。

以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1