Das Problem hatte ich vor ein paar Tagen bei $firma. Es gibt eine Handvoll von PHP Scripts und Klassen die den PageRank bei den Google Servern auslesen können, allerdings haben alle bei mir nicht funktioniert. Das Problem bei der Sache ist das Google eine Checksumme der URL verlangt, und diese wird auf eine etwas obskure Weise berechnen (die ich auch nur ansatzweise verstanden habe
).
Zum Glück gibt es ein schönes Perl-Modul, WWW::Google::PageRank, damit lässt sich extrem leicht und bequem der PageRank auslesen.
Das Perl-Script ist denkbar einfach:
#!/usr/bin/perl
use WWW::Google::PageRank;
my $pr = WWW::Google::PageRank->new;
print $ARGV[0]."t".scalar($pr->get('http://'.$ARGV[0].'/')), "n";
Aufgerufen wird das Script mit
henrik@roy.xut.de:~/perl $ perl pagerank.pl www.digitalwar.de
www.digitalwar.de 4
henrik@roy.xut.de:~/perl $
Das Ganze geht natürlich noch besonders schön wenn man den PageRank der verschiedenen DataCenter ausliest, sowie flexibel mit http:// voranstellt oder nicht.
#!/usr/bin/perl
use WWW::Google::PageRank;
@hosts = ("216.239.53.99", "216.239.39.99", "216.239.37.104",
"216.239.57.99", "216.239.59.99", "66.102.11.99",
"66.102.9.99", "66.102.7.99", "66.102.7.104", "66.102.9.104", "64.233.161.99",
"64.233.161.104", "64.233.171.99", "72.14.207.99", "64.233.179.104", "66.249.93.104");
my $pr;
foreach $host (@hosts) {
$pr = WWW::Google::PageRank->new('host' => $host);
print $host."t";
if($ARGV[0] !~ /^http/) {
print $ARGV[0]."t".scalar($pr->get('http://'.$ARGV[0].'/')), "n";
} else {
print $ARGV[0]."t".scalar($pr->get($ARGV[0])), "n";
}
}
Die Liste der DataCenter ist allerdings alles andere als vollständig.