Home > Archives > June 2008

June 2008

Googleページランク

書き込みが随分ご無沙汰でございます(・_・;)
せめて月一で書かないと駄目ですね・・・


今回は、Googleのページランクを自動取得する方法です(探せばもっと詳しく説明しているところがあるとおもいますが)

CGIには、WWWモジュールに
WWW::Google::PageRankがありますので
簡単に取得可能です。

さて、やり方は



use CGI qw/:standard -noxhtml/;
use WWW::Google::PageRank;
use Socket;

my $cgi = new CGI;
my $gprank = new WWW::Google::PageRank;


# URL取得。
my $url = $cgi->param("url"); ##GET

# URLを分割
$url =~ m!(http:)?(//)?([^:/]*)?(:([0-9]+)?)?(/.*)?!;
if ($3) {$host = $3;}
if ($5) {$port = $5;}
if ($6) {$path = $6;}

# Pathの最後に/を付加
$path = $path."/";

## リンクチェック
$link = "取得エラー";

$port0 = getservbyname("http", "tcp");
$ipaddr = inet_aton($host)
or $link = "取得エラー";
$sock_addr = pack_sockaddr_in($port0, $ipaddr);
socket(SOCK, PF_INET, SOCK_STREAM, 0)
or $link = "取得エラー";
connect(SOCK, $sock_addr)
or $link = "取得エラー";


select(SOCK);
$|=1;
select(STDOUT);

print SOCK << "END_OF_DOC";
GET $path HTTP/1.0
Host:$host
Connection:close

END_OF_DOC


while(){
last if m/^\r\n$/;
}
while(){
$link = "取得OK";
}
close SOCK;


## ページランクチェック
my $pr = $gprank->get($url);

if($link eq "取得エラー"){
$pr = -1;
}

## ページランクが取得できない場合
if($pr eq ""){
$pr = 0;
}




print "URL:$url
\n";
print "link:$link
\n";
print "PageRank:$pr";


こんな感じになります。
ここでは、ついでにリンク切れのチェックも行っています
  • TrackBack (Close): -

More...

Home > Archives > June 2008

Search
Feeds

Page Top