|文章出处:http://hi.baidu.com/_wang8

基于Simhash的应用模板识别Perl demo

对于同一应用模板生成不同的url,url可能的pathdir、filename、arguments的一项或者几项可能不同。同时
web页面的展示一眼看过去也差别较大。在url聚类的需求场合,需要能自动识别web/url的相似度。

这里是利用simhash算法,通过对web页面的一些token的value进行统计分析。来综合判断两条url间的是
否为同一应用模板生成,也为web相似度。理论上,由同一模板生成的页面在token的数量、顺序、值上会存
在一定的规律

#!/usr/bin/perl

#Compare the similarity of two pages

#http://hi.baidu.com/_wang8

#2011.04.23

#use warnings;

#use strict;

use HTML::TokeParser;

use LWP::Simple;

#use Data::Dumper;

use URI;

use URI::Split qw(uri_split uri_join);

sub GetUrl

{

my $url = shift;

if($url !~ /^http/)

{

print "warning:error format url.\n";

next;

}

my $content = LWP::Simple::get($url) or die "cannot request the url:$url\n";

utf8::decode($content);

return $content;

}

sub GetToken

{

my $content = shift;

发表回复