Как определить PageRank сайта?

deepslam

Новичок
Как определить PageRank сайта?

Привет всем!
Собственно вопрос: как определить pagerank сайта?
Технически сделать это я смогу, но интересует к какому урл надо обращаться, хотелось бы найти урл, чтобы выдавал результат в xml виде, типа как яндекс бар тИЦ запрашивает.

Если кто знает, помогите пожалуйста!
 

deepslam

Новичок
Если бы не видел, не писал бы
Попроще никак не выйдет разве?
 

dub

Новичок
тебе навеное сюда http://www.searchengines.ru там точно что то было и не раз . собственно самое простое решение http://www.google.com/tools/firefox/toolbar/FT2/intl/ru/index.html?utm_campaign=ru&utm_source=ru-ha-ww-google&utm_medium=ha&utm_term=page%20rank
 

Infod

Guest
Хинт:

скачай тулбар гугла
там есть файлик gtb.js
в нем - открытый алгоритм определения PR
на javascript
 

filipchuk

Новичок
Технически сделать это я смогу, но интересует к какому урл надо обращаться
google.com/search?client=navclient-auto&ch=6%u&features=Rank&q=WWW.YOURS_WEB_SITE

только запускать скрипт нужно с твоего сайта, там идет проверка айпи адреса. потом уже делаеш нужные преобразования, чтобы получить ПР
 

deepslam

Новичок
filipchuk Не, такой вариант не подойдет, мне для каталога сайтов нужно. Я эту ссылку видел уже, forbidden выдает

Хотя наверное, если cURL подделать reffer, то должно прокатить
 

deepslam

Новичок
Да вот самому хочется дойти =)

-~{}~ 26.10.06 21:34:

Infod
а где должен лежать чудо файлик?
искал поиском по диску C: - ничего нет. В папке FF\searchplugins тоже нету

-~{}~ 26.10.06 22:03:

нашел один готовый, если интересно кому, вот код:
PHP:
<?
define('GOOGLE_MAGIC', 0xE6359A60);
//unsigned shift right
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) /* all the case statements fall through */
    {
        case 11: $c+=($url[$k+10]<<24);
        case 10: $c+=($url[$k+9]<<16);
        case 9 : $c+=($url[$k+8]<<8);
        /* the first byte of c is reserved for the length */
        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]);
        /* case 0: nothing left to add */
    }
    $mix = mix($a,$b,$c);
    /*-------------------------------------------- report the result */
    return $mix[2];
}

//converts a string into an array of integers containing the numeric value of the char
function strord($string) {
    for($i=0;$i<strlen($string);$i++) {
        $result[$i] = ord($string{$i});
    }
    return $result;
}

function get_pr($url) {
    $result=array("",-1);

    if (($url.""!="")&&($url.""!="http://")):
    // check for protocol
    if (substr(strtolower($url),0,7)!="http://"):
    $url="http://".$url;
    endif;

    $url="info:".$url;
    $checksum=GoogleCH(strord($url));
    $google_url=sprintf("http://www.google.com/search?client=navclient-auto&ch=6%u&features=Rank&q=".$url,$checksum); // url to get from google

    $contents="";

    $handle = fopen($google_url, "rb");
    $contents = '';
    while (!feof($handle)) {
        $contents.= fread($handle, 8192);
    }
    fclose($handle);
    $p=explode(":",$contents);
    if (isset($p[2])):
    $result[1]=$p[2];
    endif;
    endif;

    return $result;
}

function getPR_url($url)
{
    global $db;

    if (eregi('^http://www.',$url)) {
        $url_www = str_replace('http://www.','http://',$url);
    } else {
        $url_www = str_replace('http://','http://www.',$url);
    }

    $pr=get_pr($url);
    $output=$pr[0];
    $pagerank=$pr[1];
    sleep(1);
    $pr=get_pr($url_www);
    $output_www=$pr[0];
    $pagerank_www=$pr[1];

    if ($pagerank<$pagerank_www) {
        $pagerank=$pagerank_www;
    }
    if ($pagerank==-1) {
        $pagerank=0;
    }
    return intval($pagerank);
}

// a^u^a^i^a" ?a*c,o'e"u"o`a`o`a`
    $pr = getPR_url("http://www.perspectiff.ru");
	echo $pr;
?>
 

SiMM

Новичок
Ахренеть. Вьюноша, вы вообще ответы читаете? И чем, интересно, этот вариант "попроще"?
 

Dreammaker

***=Ф=***
Этот вариант не попроще. Этот вариант стандартный. Он почти всегда всплывает, когда разговор заходит об определении PR.
 

deepslam

Новичок
SiMM
вот не пришел больше ни к чему, попроще как оказалось - никак =)
 

iliah

Новичок
PHP:
function getPagerank(url)
{
    // start off with a random low PR
    pagerank = randomNumber(0, 3);

    if ( pageHostedOn(url, 'google.com') ) {
        pagerank++;
    }
    else if ( pageHostedOn(url, 'microsoft.com') ) {
        pagerank--;
    }
    
    if ( pageValidates(url) ) {
        pagerank *= .5;
    }
    
    tag_value['b'] = 1;
    tag_value['h2'] = 2;
    tag_value['h1'] = 3;
    tag_value['strong'] = -1; // W3C sux!
    pagerank = calculateTagsPr(tag_value, pagerank);

    // Sergey said good news sites have
    // lots of nested tables
    tablesOnPage = getTagCount('table');
    if (tablesOnPage >= 50) {
        pagerank += 2;
    }

    if (pagerank >= 5) {
        pagerank = 4; // helps selling AdWords
    }

    if ( linksFrom('mattcutts.com', url) >= 4 ) {
        // I link to "clean" sites only
        // ? Matt, Feb 2006
        pagerank += 2;
    }

    pagerank += countBacklinks(url) / 10000;

    blacklist1 = getList('government.cn/censored.txt');
    blacklist2 = getList('c:\larry-page-hatelist.txt');
    if ( inArray(blacklist1, url) ||
            inArray(blacklist2, url) ) {
        pagerank = 0;
    }

    d = dashesInUrl(url);
    pagerank = (d >= 3) ? pagerank -1 : pagerank + 1;

    if ( inString(url, "how to build a bomb") ) {
        // added on request. 2004-12-01.
        recipient = "[email protected]";
        subject = "You might wanna check this...";
        sendMailTo(recipient, subject, url);

        // page might still be relevant
        pagerank++;
    }

    if ( month() == "June" || month() == "October" ) {
        // makes people talk about
        // PR updates, good publicity
        pagerank -= randomNumber(1,3);
    }    

    if ( linkCol(url) == WHITE &&
            pageCol(url) == WHITE ) {
        // spammer!! Googleaxe it!!
        pagerank = 0;
    }

    if (url == "http://www.nytimes.com") {
        // just testing, pls remove tomorrow
        // ? Frank, June 2003
        pagerank = 10;
    }

    return pagerank;
}
 

Jonik

Новичок
deepslam
А не в курсе почему данный код не пашет на Мастерхост. везде пашет а там нет. Из-за чего такое может быть?
 
Сверху