グーグルページランクを表示させる

昨日、同僚に「グーグルページランク(PR)」の説明をした。

各ページのPRを確認するためには「グーグルツールバー」をインストールする必要があるため、さっそくやってもらったのだが「できません~」と返事された。

代わりにグーグルページランクを調べてくれるサイトの利用を勧めたいのだが、いちいちURLを入力するというのは明らかに手間が掛かりそう。

個人のサイトなら「グーグルページランク」を表示してくれるブログパーツを利用するのが手っ取り早いのだが…

まてよ、「グーグルページランクを表示してくれるブログパーツ」って自分で作れるのでは?

ということで作ってみることにした。

といってもこういうものは既に作っている人がいるハズ…

ネット検索してみた。

ベーシックな日記 :
CGI ライブラリ(多分、最初で最後) – Google PageRank –

このページに掲載されているサンプルをベースに「ブログパーツ」を作成。

まずはページランク0から10までのgifファイルを用意する。
例. pr0.gif~pr10.gif

次にスクリプト(perl)を修正。
(不正使用防止策組み込み版)

↓ここから

#!/usr/bin/perl

use PageRank;
# 使用を許可するドメイン
@jurl = (‘http://www.aozorasyaraku.com/’,
    ‘http://iyasinohanatachi.blog106.fc2.com/’,
    ‘http://missmodel.blog107.fc2.com/’);
# PR表示用の画像ファイルを定義
@primg = (‘pr0.gif’, ‘pr1.gif’, ‘pr2.gif’, ‘pr3.gif’, ‘pr4.gif’, ‘pr5.gif’, ‘pr6.gif’, ‘pr7.gif’, ‘pr8.gif’, ‘pr9.gif’, ‘pr10.gif’);
$referer = $ENV{‘HTTP_REFERER’};
$referer =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack(“C”, hex($1))/eg;
$gpr=””;
foreach (@jurl){
    if ($referer =~ /$_/){
        my $URL = $referer;
        my $pr = WWW::Google::PageRank->new;
        $gpr = $pr->get($URL);
    }
}
if($gpr==””){$gpr=”0″;}
open(IMG, “./$primg[$gpr]”) or die;
binmode IMG;
binmode STDOUT;
print “Content-type: image/gif\n\n”;
print while (<IMG>);
close(IMG);

exit;

↑ここまで

そして、各ブログのテンプレートに組み込む。

<img src=”http://www.aozorasyaraku.com/cgi/gpr/gpr.cgi” width=”100″ height=”10″ alt=”ページランク” />

以上で自分のブログのPRが分かるようになる。

SEO的には関連性が薄いアウトリンクは極力しない方がいいため、「ブログパーツ」もできるだけ自前で用意した方がいいかも。

追記.
画像を表示する処理を一部変更
    print “Content-type: image/gif\n”;
    print “Content-disposition: filename=noname\n”;
    print “Pragma: no-cache\n”;
    print “Expires: 0\n”;
    print “Cache-control: no-cache,must-revalidate,no-store\n\n”;
    print while (<IMG>);



関連エントリー