ajax Google PageRank3(PR值)查询源代码

作者:东波 来源:星海玉波 时间:2007-11-04 13:31:00 

ajax编程获取Google的PageRank3(PR值)及所在目录,想给你的站增加Google PR查询的功能吗?如果你不会就看看本文吧,Google PR 查询源代码程序运行截图:

当然你可以自己在美化一下查询页面!

源代码如下:


<%@LANGUAGE="JAVASCRIPT"%>
<%
function hexdec(str)
{
 return parseInt(str,16);
}
function zeroFill(a,b)
{
 var 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));
 var ret = new Array((a),(b),(c));
 return ret;
}
function GoogleCH(url,length)
{
 var init = 0xE6359A60;
 if (arguments.length == 1)
 length = url.length; 
 var a = 0x9E3779B9;
 var b = 0x9E3779B9;
 var c = 0xE6359A60;
 var k = 0;
 var len = length;
 var mixo = new Array();
 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));
 mixo = mix(a,b,c);
 a = mixo[0]; b = mixo[1]; c = mixo[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]);
 }
 mixo = mix(a,b,c);
 if (mixo[2] < 0)
 return (0x100000000 + mixo[2]);
 else
 return mixo[2];
}
function strord(s)
{
 var re = new Array();
 for(i=0;i<s.length;i++)
 {
 re[i] = s.charCodeAt(i);
 }
 return re;
}
function c32to8bit(arr32) 
{
 var arr8 = new Array();
 for(i=0;i<arr32.length;i++) 
 {
 for (bitOrder=i*4;bitOrder<=i*4+3;bitOrder++) 
 {
 arr8[bitOrder]=arr32[i]&255;
 arr32[i]=zeroFill(arr32[i], 8);
 }
 }
 return arr8;
}
function myfmod(x,y)
{
var i = Math.floor(x/y);
 return (x - i*y);
}
function GoogleNewCh(ch)
{
ch = (((ch/7) << 2) | ((myfmod(ch,13))&7));
prbuf = new Array();
prbuf[0] = ch;
for(i = 1; i < 20; i++) {
 prbuf[i] = prbuf[i-1]-9;
}
ch = GoogleCH(c32to8bit(prbuf), 80);
return ch;
}
function URLencode(sStr)
{
return encodeURIComponent(sStr).replace(/\+/g,"%2B").replace(/\//g,"%2F");
}
function getGoogleHostInfo(url){
 var reqgr = "info:" + url;
 var reqgre = "info:" + URLencode(url);
//Response.Write(reqgr+"<br>"+reqgre);
 gch = GoogleCH(strord(reqgr));
 gch = "6" + GoogleNewCh(gch);
 var querystring = "http://toolbarqueries.google.com/search?client=navclient-auto&ch=" + 
gch + "&ie=UTF-8&oe=UTF-8&features=Rank:FVN&q=" + reqgre;
//Response.Write(querystring);
var objXMLHTTP, xml;
xml = Server.CreateObject("Microsoft.XMLHTTP");
xml.Open("GET", querystring, false);
xml.setRequestHeader( "User-Agent", "Mozilla/4.0 (compatible; GoogleToolbar 2.0.114-big; 
Windows XP 5.1)" );
xml.send();
//Response.Write(xml.responseText);
//Response.Write(xml.responseBody);
return xml.responseText;
}
function getPageRank(temp){
 var foo = temp.match(/Rank_.*?:.*?:(\d+)/i);
 var pr = (foo) ? foo[1] : "";
 return pr;
}
function getDirectory(temp){
 var foo = temp.match(/FVN_.*?:.*?:(?:Top\/)?([^\s]+)/i);
 var cat = (foo) ? foo[1] : "";
 if(cat!="")cat="http://directory.google.com/Top/"+cat
 return cat;
}
var site;
site=Request.Form("site");
if(site!="undefined"){
var google=getGoogleHostInfo(site);
var pagerank=getPageRank(google);
var directory=getDirectory(google);
Response.Write("PageRank:"+pagerank+"<br>");
Response.Write("PageRank:<img src=\"images/pr"+pagerank+".png\" 
alt=\"PageRank:"+pagerank+"\"><br>");
Response.Write("网站:"+site+"<br>");
if(directory!="")Response.Write("所在目录:<a href="+directory+">"+directory+"</a><br>");
}
%>


标签:pr,PageRank,ajax,google
0
投稿

猜你喜欢

  • sql server数据库最大Id冲突问题解决方法之一

    2012-01-05 19:28:42
  • Javascript fso操作文件

    2008-07-30 12:51:00
  • window.location.hash属性介绍

    2008-03-21 12:39:00
  • CSS布局之浮动(二)三列浮动

    2008-08-19 12:47:00
  • Web标准下该如何“插入”图像

    2008-03-17 13:01:00
  • 用户是如何浏览你的网站的

    2010-05-03 14:26:00
  • 解决MySQL启动时1067错误

    2010-09-30 14:09:00
  • 彻底弄懂CSS盒子模式之一(DIV布局快速入门)

    2007-05-11 17:03:00
  • 教你如何升级SQL Server数据库系统

    2009-01-19 14:42:00
  • 如何设置SQL Server数据库全文索引服务

    2009-01-13 13:46:00
  • 阿里巴巴工程师分享MySQL经验

    2010-04-22 16:21:00
  • web开发以HTML为中心

    2008-02-13 08:14:00
  • 第一类工厂与哈希对象

    2009-12-28 13:14:00
  • linux下如何备份还原mysql数据库

    2010-08-08 08:59:00
  • ASP中 ADODB.Stream 语法速查

    2008-01-27 15:23:00
  • CSS定位属性Position详解

    2009-09-16 20:37:00
  • 我们需要的是怎样的分页?

    2007-09-28 20:24:00
  • 对xml操作的主要方法例子

    2008-06-29 14:21:00
  • SQL脚本语言学习(黑客篇)

    2008-02-29 13:09:00
  • 解析:校对确定 较为复杂的一些特殊情况

    2008-12-17 16:54:00
  • asp之家 网络编程 m.aspxhome.com