Скрипт для извлечения Pagerank

Статус
В этой теме нельзя размещать новые ответы.

sarmatik2006

Создатель
Регистрация
26 Авг 2006
Сообщения
38
Реакции
24
Для использования нужно:

1. Скопировать & вставить этот код в plain text file.
2. Загрузить на Ваш серверв папку cgi-bin в ascii mode, (не binary).
3. Изменить разрешения на 755
2. поместить также в cgi-bin plain text file с названием 'sites.txt' который содержит список УРЛ, который вы хотели б проверить.

#!/usr/bin/perl -w
use strict;
use warnings;
use Getopt::Std;
use File::Basename;
use WWW::Google::pageRank;
my $pr = WWW::Google::pageRank->new;
print "Content-type: text/html\n\n";

my %opts;
getopts('uhsd:', \%opts);
my $urlfile = 'sites.txt';
&usage if ($opts{'u'} || $opts{'h'});
die "Please supply a file containing URLs\n" unless $urlfile;
die "No file found at '$urlfile'!\n" unless -e $urlfile;
my $urls = get_urls($urlfile);

if ($opts{'s'}) {}
foreach my $url (sort keys %$urls) {
if ($opts{'d'}) {
print "${url}$opts{'d'}" . $pr->get($url), "\n";
} else {
print "${url} " . $pr->get($url), "<br>\n";
}
}
sub get_urls {
my $urlfile = shift;
my %urls;

open(URLS, "<$urlfile")
|| die "Failed to open '$urlfile': $!";
while(<URLS>) {
my $url;
chomp;
next if /^#/;
next if /^\s*$/;
s/\s*(\S*)?\s*/$1/;
$url = $1;
unless($url =~ '^http://') {
$url = 'http://' . $url;
}
$urls{$url} = 0;
}
close URLS;
return \%urls;
}
 
sarmatik2006 написал(а):
Для использования нужно:

1. Скопировать & вставить этот код в plain text file.
2. Загрузить на Ваш серверв папку cgi-bin в ascii mode, (не binary).
3. Изменить разрешения на 755
2. поместить также в cgi-bin plain text file с названием 'sites.txt' который содержит список УРЛ, который вы хотели б проверить.

#!/usr/bin/perl -w
use strict;
use warnings;
use Getopt::Std;
use File::Basename;
use WWW::Google::pageRank;
my $pr = WWW::Google::pageRank->new;
print "Content-type: text/html\n\n";

my %opts;
getopts('uhsd:', \%opts);
my $urlfile = 'sites.txt';
&usage if ($opts{'u'} || $opts{'h'});
die "Please supply a file containing URLs\n" unless $urlfile;
die "No file found at '$urlfile'!\n" unless -e $urlfile;
my $urls = get_urls($urlfile);

if ($opts{'s'}) {}
foreach my $url (sort keys %$urls) {
if ($opts{'d'}) {
print "${url}$opts{'d'}" . $pr->get($url), "\n";
} else {
print "${url} " . $pr->get($url), "<br>\n";
}
}
sub get_urls {
my $urlfile = shift;
my %urls;

open(URLS, "<$urlfile")
|| die "Failed to open '$urlfile': $!";
while(<URLS>) {
my $url;
chomp;
next if /^#/;
next if /^\s*$/;
s/\s*(\S*)?\s*/$1/;
$url = $1;
unless($url =~ '^http://') {
$url = 'http://' . $url;
}
$urls{$url} = 0;
}
close URLS;
return \%urls;
}
вот бы такое да на PHP
 
php
PHP:
   <?php  
function showform()  
{  
echo "<br/><br/><center/><form action=pr.php method=GET>";  
echo "Адрес:<br/>";  
echo "<input type=text name=url size=50><br/>";  
echo "<input type=submit> demo: <b>domenforum.net</b>";  
echo "</form>";  
}  
if (isset($_REQUEST['url']))  
{  
$url=str_replace("www.","",$_REQUEST['url']);  
define('GOOGLE_MAGIC', 0xE6359A60);  
function getCI($url)  
{  
$my_host = parse_url($url);  
$cit_index_url = "http://search.yaca.yandex.ru/yca/cy/ch/www.{$my_host['path']}/";  
$data = file_get_contents($cit_index_url);  
$upurl = str_replace('.', '\.', $url);  
$upurl = str_replace('/', '\/', $upurl);  
$reurl[1] = (strpos($url, 'www') == 0)?'http:\/\/www\.':'http:\/\/';  
$reurl[1] .= $upurl;  
$reurl[2] = (strpos($url, 'www') == 0)?'http:\/\/':'http:\/\/www\.';  
$reurl[2] .= $upurl;  
$reurl[3] = (strpos($url, 'www') == 0)?'www\.'.$upurl:$upurl;  
$reurl[4] = (strpos($url, 'www') == 0)?$upurl:'www\.'.$upurl;  
$reg_www = "/<a href=\"(http:\/\/www\.yandex\.ru\/yandsearch\/\?text=&Link={$reurl[1]}.+?&iserverurl={$reurl[3]}.+?)\".+?>.+?<\/a>/si";  
$reg = "/<a href=\"(http:\/\/www\.yandex\.ru\/yandsearch\/\?text=&Link={$reurl[2]}.+?&iserverurl={$reurl[4]}.+?)\".+?>.+?<\/a>/si";  
if(preg_match_all($reg_www, $data, $pockets))  
{  
$to_parse = $pockets[1][0];  
}  
if(preg_match_all($reg, $data, $pockets))  
{  
$to_parse = $pockets[1][0];  
}  
$my = parse_url($to_parse);  
$my = parse_str($my['query'], $out);  
return $out['ci'];  
}  
function zeroFill($a, $b)  
{  
$z = hexdec(80000000);  
if ($z & $a)  
{  
$a = ($a>>1);  
$a &= (~$z);  
$a |= 0x40000000;  
$a = ($a>>($b-1));  
}  
else  
{  
$a = ($a>>$b);  
}  
return $a;  
}  
function mix($a,$b,$c) {  
$a -= $b; $a -= $c; $a ^= (zeroFill($c,13));  
$b -= $c; $b -= $a; $b ^= ($a<<8);  
$c -= $a; $c -= $b; $c ^= (zeroFill($b,13));  
$a -= $b; $a -= $c; $a ^= (zeroFill($c,12));  
$b -= $c; $b -= $a; $b ^= ($a<<16);  
$c -= $a; $c -= $b; $c ^= (zeroFill($b,5));  
$a -= $b; $a -= $c; $a ^= (zeroFill($c,3));     
$b -= $c; $b -= $a; $b ^= ($a<<10);  
$c -= $a; $c -= $b; $c ^= (zeroFill($b,15));  
return array($a,$b,$c);  
}  
function GoogleCH($url, $length=null, $init=GOOGLE_MAGIC) {  
if(is_null($length)) {  
$length = sizeof($url);  
}  
$a = $b = 0x9E3779B9;  
$c = $init;  
$k = 0;  
$len = $length;  
while($len >= 12) {  
$a += ($url[$k+0] +($url[$k+1]<<8) +($url[$k+2]<<16) +($url[$k+3]<<24));  
$b += ($url[$k+4] +($url[$k+5]<<8) +($url[$k+6]<<16) +($url[$k+7]<<24));  
$c += ($url[$k+8] +($url[$k+9]<<8) +($url[$k+10]<<16)+($url[$k+11]<<24));  
$mix = mix($a,$b,$c);  
$a = $mix[0]; $b = $mix[1]; $c = $mix[2];  
$k += 12;  
$len -= 12;  
}  
$c += $length;  
switch($len)                
{  
case 11: $c+=($url[$k+10]<<24);  
case 10: $c+=($url[$k+9]<<16);  
case 9 : $c+=($url[$k+8]<<8);  
  
case 8 : $b+=($url[$k+7]<<24);  
case 7 : $b+=($url[$k+6]<<16);  
case 6 : $b+=($url[$k+5]<<8);  
case 5 : $b+=($url[$k+4]);  
case 4 : $a+=($url[$k+3]<<24);  
case 3 : $a+=($url[$k+2]<<16);  
case 2 : $a+=($url[$k+1]<<8);  
case 1 : $a+=($url[$k+0]);  
  
}  
$mix = mix($a,$b,$c);  
return $mix[2];  
}  
function strord($string) {  
for($i=0;$i<strlen($string);$i++) {  
$result[$i] = ord($string{$i});  
}  
return $result;  
}  
function getrank($url) {  
$url = 'info:'.$url;  
$ch = GoogleCH(strord($url));  
$file = "http://www.google.com/search?client=navclient-auto&ch=6$ch&features=Rank&q=$url";  
$data = file($file);  
$rankarray = explode (':', $data[2]);  
$rank = $rankarray[2];  
return $rank;  
}  
$rank=getrank($url);  
$rank1=getrank("www".$url);  
if ($rank1>$rank) $url="www.".$url;  
echo '<center>PageRank: '.getrank($url)."<br>";  
echo 'тИЦ: '.getCI($url);  
echo "<br/>";  
showform();  
}  
else  
{  
showform();  
}  
?>
 
А тут есть все ))) и ТИЦ и PR
 

Вложения

  • seomozg.rar
    37,8 KB · Просмотры: 20
GoNZo написал(а):
php
PHP:
 <?php 
function showform() 
{ 
echo "<br/><br/><center/><form action=pr.php method=GET>"; 
echo "Адрес:<br/>"; 
echo "<input type=text name=url size=50><br/>"; 
echo "<input type=submit> demo: <b>domenforum.net</b>"; 
echo "</form>"; 
} 
if (isset($_REQUEST['url'])) 
{ 
$url=str_replace("www.","",$_REQUEST['url']); 
define('GOOGLE_MAGIC', 0xE6359A60); 
function getCI($url) 
{ 
$my_host = parse_url($url); 
$cit_index_url = "http://search.yaca.yandex.ru/yca/cy/ch/www.{$my_host['path']}/"; 
$data = file_get_contents($cit_index_url); 
$upurl = str_replace('.', '\.', $url); 
$upurl = str_replace('/', '\/', $upurl); 
$reurl[1] = (strpos($url, 'www') == 0)?'http:\/\/www\.':'http:\/\/'; 
$reurl[1] .= $upurl; 
$reurl[2] = (strpos($url, 'www') == 0)?'http:\/\/':'http:\/\/www\.'; 
$reurl[2] .= $upurl; 
$reurl[3] = (strpos($url, 'www') == 0)?'www\.'.$upurl:$upurl; 
$reurl[4] = (strpos($url, 'www') == 0)?$upurl:'www\.'.$upurl; 
$reg_www = "/<a href=\"(http:\/\/www\.yandex\.ru\/yandsearch\/\?text=&Link={$reurl[1]}.+?&iserverurl={$reurl[3]}.+?)\".+?>.+?<\/a>/si"; 
$reg = "/<a href=\"(http:\/\/www\.yandex\.ru\/yandsearch\/\?text=&Link={$reurl[2]}.+?&iserverurl={$reurl[4]}.+?)\".+?>.+?<\/a>/si"; 
if(preg_match_all($reg_www, $data, $pockets)) 
{ 
$to_parse = $pockets[1][0]; 
} 
if(preg_match_all($reg, $data, $pockets)) 
{ 
$to_parse = $pockets[1][0]; 
} 
$my = parse_url($to_parse); 
$my = parse_str($my['query'], $out); 
return $out['ci']; 
} 
function zeroFill($a, $b) 
{ 
$z = hexdec(80000000); 
if ($z & $a) 
{ 
$a = ($a>>1); 
$a &= (~$z); 
$a |= 0x40000000; 
$a = ($a>>($b-1)); 
} 
else 
{ 
$a = ($a>>$b); 
} 
return $a; 
} 
function mix($a,$b,$c) { 
$a -= $b; $a -= $c; $a ^= (zeroFill($c,13)); 
$b -= $c; $b -= $a; $b ^= ($a<<8); 
$c -= $a; $c -= $b; $c ^= (zeroFill($b,13)); 
$a -= $b; $a -= $c; $a ^= (zeroFill($c,12)); 
$b -= $c; $b -= $a; $b ^= ($a<<16); 
$c -= $a; $c -= $b; $c ^= (zeroFill($b,5)); 
$a -= $b; $a -= $c; $a ^= (zeroFill($c,3)); 
$b -= $c; $b -= $a; $b ^= ($a<<10); 
$c -= $a; $c -= $b; $c ^= (zeroFill($b,15)); 
return array($a,$b,$c); 
} 
function GoogleCH($url, $length=null, $init=GOOGLE_MAGIC) { 
if(is_null($length)) { 
$length = sizeof($url); 
} 
$a = $b = 0x9E3779B9; 
$c = $init; 
$k = 0; 
$len = $length; 
while($len >= 12) { 
$a += ($url[$k+0] +($url[$k+1]<<8) +($url[$k+2]<<16) +($url[$k+3]<<24)); 
$b += ($url[$k+4] +($url[$k+5]<<8) +($url[$k+6]<<16) +($url[$k+7]<<24)); 
$c += ($url[$k+8] +($url[$k+9]<<8) +($url[$k+10]<<16)+($url[$k+11]<<24)); 
$mix = mix($a,$b,$c); 
$a = $mix[0]; $b = $mix[1]; $c = $mix[2]; 
$k += 12; 
$len -= 12; 
} 
$c += $length; 
switch($len) 
{ 
case 11: $c+=($url[$k+10]<<24); 
case 10: $c+=($url[$k+9]<<16); 
case 9 : $c+=($url[$k+8]<<8); 
 
case 8 : $b+=($url[$k+7]<<24); 
case 7 : $b+=($url[$k+6]<<16); 
case 6 : $b+=($url[$k+5]<<8); 
case 5 : $b+=($url[$k+4]); 
case 4 : $a+=($url[$k+3]<<24); 
case 3 : $a+=($url[$k+2]<<16); 
case 2 : $a+=($url[$k+1]<<8); 
case 1 : $a+=($url[$k+0]); 
 
} 
$mix = mix($a,$b,$c); 
return $mix[2]; 
} 
function strord($string) { 
for($i=0;$i<strlen($string);$i++) { 
$result[$i] = ord($string{$i}); 
} 
return $result; 
} 
function getrank($url) { 
$url = 'info:'.$url; 
$ch = GoogleCH(strord($url)); 
$file = "http://www.google.com/search?client=navclient-auto&ch=6$ch&features=Rank&q=$url"; 
$data = file($file); 
$rankarray = explode (':', $data[2]); 
$rank = $rankarray[2]; 
return $rank; 
} 
$rank=getrank($url); 
$rank1=getrank("www".$url); 
if ($rank1>$rank) $url="www.".$url; 
echo '<center>PageRank: '.getrank($url)."<br>"; 
echo 'тИЦ: '.getCI($url); 
echo "<br/>"; 
showform(); 
} 
else 
{ 
showform(); 
} 
?>


при открытии страницы выдает
Parse error: syntax error, unexpected T_STRING in /usr/home/domains/.ru/public_html/index.php on line 3
 
action=pr.php значит наверное и имя файла должно быть таким же, или переименнуй в строке имя файла на свой, у меня работает все норм
 
GoNZo написал(а):
action=pr.php значит наверное и имя файла должно быть таким же, или переименнуй в строке имя файла на свой, у меня работает все норм
Скрипт тИЦ определяет, а PR нет. Проверь еще раз у себя, плиз..
 
Тож не работал. Поставил через проксю, начало вроде чекать
 
Поправил, теперь показывает и PR и тИЦ
<?php
function showform()
{
echo "<br/><br/><center/><form action=index.php method=GET>";
echo "Адрес:<br/>";
echo "<input type=text name=url size=50><br/>";
echo "<input type=submit> demo: <b>domenforum.net</b>";
echo "</form>";
}
if (isset($_REQUEST['url']))
{
$url=str_replace("www.","",$_REQUEST['url']);
define('GOOGLE_MAGIC', 0xE6359A60);
function getCI($url)
{
$my_host = parse_url($url);
$cit_index_url = "http://search.yaca.yandex.ru/yca/cy/ch/www.{$my_host['path']}/";
$data = file_get_contents($cit_index_url);
$upurl = str_replace('.', '\.', $url);
$upurl = str_replace('/', '\/', $upurl);
$reurl[1] = (strpos($url, 'www') == 0)?'http:\/\/www\.':'http:\/\/';
$reurl[1] .= $upurl;
$reurl[2] = (strpos($url, 'www') == 0)?'http:\/\/':'http:\/\/www\.';
$reurl[2] .= $upurl;
$reurl[3] = (strpos($url, 'www') == 0)?'www\.'.$upurl:$upurl;
$reurl[4] = (strpos($url, 'www') == 0)?$upurl:'www\.'.$upurl;
$reg_www = "/<a href=\"(http:\/\/www\.yandex\.ru\/yandsearch\/\?text=&Link={$reurl[1]}.+?&iserverurl={$reurl[3]}.+?)\".+?>.+?<\/a>/si";
$reg = "/<a href=\"(http:\/\/www\.yandex\.ru\/yandsearch\/\?text=&Link={$reurl[2]}.+?&iserverurl={$reurl[4]}.+?)\".+?>.+?<\/a>/si";
if(preg_match_all($reg_www, $data, $pockets))
{
$to_parse = $pockets[1][0];
}
if(preg_match_all($reg, $data, $pockets))
{
$to_parse = $pockets[1][0];
}
$my = parse_url($to_parse);
$my = parse_str($my['query'], $out);
return $out['ci'];
}
function zeroFill($a, $b)
{
$z = hexdec(80000000);
if ($z & $a)
{
$a = ($a>>1);
$a &= (~$z);
$a |= 0x40000000;
$a = ($a>>($b-1));
}
else
{
$a = ($a>>$b);
}
return $a;
}
function mix($a,$b,$c) {
$a -= $b; $a -= $c; $a ^= (zeroFill($c,13));
$b -= $c; $b -= $a; $b ^= ($a<<8);
$c -= $a; $c -= $b; $c ^= (zeroFill($b,13));
$a -= $b; $a -= $c; $a ^= (zeroFill($c,12));
$b -= $c; $b -= $a; $b ^= ($a<<16);
$c -= $a; $c -= $b; $c ^= (zeroFill($b,5));
$a -= $b; $a -= $c; $a ^= (zeroFill($c,3));
$b -= $c; $b -= $a; $b ^= ($a<<10);
$c -= $a; $c -= $b; $c ^= (zeroFill($b,15));
return array($a,$b,$c);
}
function GoogleCH($url, $length=null, $init=GOOGLE_MAGIC) {
if(is_null($length)) {
$length = sizeof($url);
}
$a = $b = 0x9E3779B9;
$c = $init;
$k = 0;
$len = $length;
while($len >= 12) {
$a += ($url[$k+0] +($url[$k+1]<<8) +($url[$k+2]<<16) +($url[$k+3]<<24));
$b += ($url[$k+4] +($url[$k+5]<<8) +($url[$k+6]<<16) +($url[$k+7]<<24));
$c += ($url[$k+8] +($url[$k+9]<<8) +($url[$k+10]<<16)+($url[$k+11]<<24));
$mix = mix($a,$b,$c);
$a = $mix[0]; $b = $mix[1]; $c = $mix[2];
$k += 12;
$len -= 12;
}
$c += $length;
switch($len)
{
case 11: $c+=($url[$k+10]<<24);
case 10: $c+=($url[$k+9]<<16);
case 9 : $c+=($url[$k+8]<<8);

case 8 : $b+=($url[$k+7]<<24);
case 7 : $b+=($url[$k+6]<<16);
case 6 : $b+=($url[$k+5]<<8);
case 5 : $b+=($url[$k+4]);
case 4 : $a+=($url[$k+3]<<24);
case 3 : $a+=($url[$k+2]<<16);
case 2 : $a+=($url[$k+1]<<8);
case 1 : $a+=($url[$k+0]);

}
$mix = mix($a,$b,$c);
return $mix[2];
}
function strord($string) {
for($i=0;$i<strlen($string);$i++) {
$result[$i] = ord($string{$i});
}
return $result;
}
function getrank($url){
$arr = parse_url($url);
$url = $arr['host'];
$url="info:".$url;
$host="toolbarqueries.google.com"; $hostip=gethostbyname($host);
$query ="GET /search?client=navclient-auto&ch=6".$ch."&ie=UTF-8&oe=UTF-8&features=Rank&q=".rawurlencode($url)." HTTP/1.0\r\n";
$query.="Host: $host\r\n"; $rank=-1;
$query.="User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n";
$query.="Connection: Close\r\n\r\n";
$fp=fsockopen($hostip,80,$errno,$errstr,30);
if ($fp)
{ fputs($fp,$query); $data=""; while (!feof($fp)) $data.=fgets($fp,4096); fclose($fp);
$data=explode("\n",$data);
foreach ($data as $line)
if (!is_bool(strpos($line,"Rank_1")))
{ $rank=explode(":",trim($line)); $rank=$rank[2]; break; } }
return $rank;
}
$rank=getrank($url);
$rank1=getrank("www".$url);
if ($rank1>$rank) $url="www.".$url;
echo '<center>PageRank: '.getrank($url)."<br>";
echo 'тИЦ: '.getCI($url);
echo "<br/>";
showform();
}
else
{
showform();
}
?>
 
последний скрипт - неправильно тиц определяет (но не всегда), pr - всегда =1
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху