获取google pagerank值的研究

类别:编程语言 点击:0 评论:0 推荐:

作者:david

本文地址:http://blog.iyi.cn/user/david/archives/2005/01/207.html

今天在网上看到有网站提供显示google pagerank值的功能,听说google已经取消了公开的pagerank显示,只有通过ie google toolbar获得,所以觉得挺有意思,就去研究了一下。

我装上google toolbar抓了一下socket包,得到了如下信息:
GET /search?client=navclient-auto&googleip=O;3812&ch=62544423920&freshness_check=4X0lThsX1_WR7cBSIbnl8&ie=UTF-8&oe=UTF-8&features=Rank&q=info:http%3A%2F%2Fblog%2Eiyi%2Ecn%2Fdavid%2F HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; GoogleToolbar 2.0.114.9-big; Windows 5.2)
Host: toolbarqueries.google.com
Cache-Control: no-cache
Cookie: PREF=ID=3e46a681346bcce2:NW=1:TM=1099618786:LM=1104831026:TB=2:S=8oMV8rWWHE07ngDp

测试了一下,发现只有GET后面的信息和host比较重要,其他的信息可以任意填写
而这其中比较重要的信息是下面这几条:
 client=navclient-auto&
 ch=0123456789&
 features=Rank&
 q=info:http%3A%2F%2Fblog%2Eiyi%2Ecn%2Fdavid%2F

client=navclient-auto表示客户端是google toolbar,如果没有这个参数得到的结果是在google中搜索这个网址的结果
ch=0123456789是checksum值,关键中的关键,google对每个网址用特殊算法进行转换后得到这个checksum,google就是靠这个来对它的pagerank进行"加密"的。如果知道了这个算法,获取pagerank就轻而易举了。
features=Rank获取的是pagerank值,我得到的结果是Rank_1:1:1其中最后一位是pagerank的值,如果忽略这个参数得到的是相关网页在google中的详细信息的xml,我得到的是下面的信息:
  <?xml version="1.0" encoding="GB2312" standalone="no" ?>
    <!DOCTYPE GSP (View Source for full doctype...)>
- <GSP VER="3.2">
    <TM>0.124300</TM>
    <Q>info:http://blog.iyi.cn/david/</Q>
    <PARAM name="client" value="navclient-auto" original_value="navclient-auto" />
    <PARAM name="googleip" value="O;907" original_value="O;907" />
    <PARAM name="ch" value="62544423920" original_value="62544423920" />
   <PARAM name="q" value="info:http://blog.iyi.cn/david/" original_value="info:http%3A%2F%2Fblog.iyi.cn%2Fdavid%2F" />
- <RES SN="1" EN="1">
     <M>1</M>
     <XT />
- <R N="1" L="1" MIME="text/html">
      <U>http://blog.iyi.cn/david/</U>
      <UE>http://blog.iyi.cn/david/</UE>
      <T>泰然处之- 大卫&#39;s BLOG</T>
      <RK>1</RK>
      <S>泰然处之 - 大卫&#39;s BLOG. 2004年12月. 日, 一, 二, 三, 四, 五, 六. 1, 2, 3, 4. <b>...</b></S>
      <LANG>zh-CN</LANG>
- <HAS>
       <L TAG="link:" />
       <C SZ="90k" CID="28N4KopQVykJ" TAG="cache:" />
       <RT TAG="related:" />
      </HAS>
     </R>
    </RES>
  </GSP>

内容很容易看得明白,这里就不解释了。(难道我得blog被google惩罚了?好久没有更新了-_-)
知道了原理,就来考虑如何解决了。其实google toolbar可以很容易的动态跟踪,懂得汇编的人可以很快的找出它的checksum算法,这当然是最好的解决之道。
另外,如果你不懂得汇编,可以通过历史纪录获得向管链接的checksum值,可以从你的ie临时文件夹中找到。
或者你也可以建立代理服务器,让google toolbar通过代理服务器来获取pagerank值,然后在代理服务器上运行相关程序来截取checksum值。
另外,还找到这个pr值对照表:

Toolbar PageRank Real PageRank
0/10        0.15 - 0.9
1/10        0.9 - 5.4
2/10        5.4 - 32.4
3/10        32.4 - 194.4
4/10        194.4 - 1,166.4
5/10        1,166.4 - 6,998.4
6/10        6,998.4 - 41,990.4
7/10        41,990.4 - 251,942.4
8/10        251,942.4 - 1,511,654.4
9/10        1,511,654.4 - 9,069,926.4
10/10       9,069,926.4 - 0.85 × N + 0.15

相关文章:

google pagerank checksum算法

IYI web stat. system(iyi网站统计系统)   我实现出来的显示pagerank的网站统计小插件


 

本文地址:http://com.8s8s.com/it/it23650.htm