ajax Google PageRank3(PR值)查询源代码
作者:东波 来源:星海玉波 发布时间:2007-11-04 13:31:00
标签:pr,PageRank,ajax,google
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>");
}
%>
0
投稿
猜你喜欢
- String Types(字符串类型)字符串类型Mysql支持多种字符串类型的变体。 这些数据类型在4.1和5.0版本中有较大的变化, 这使
- 一、css样式表滤镜的构成 滤镜作为样式表大家庭中的一员,它跟其他样式表元素的定义和应用方式当然是一样的,能够直接定义在HTML标识的<
- 注意:安装时要保证Oracle安装目录不能带有中文字符(如果第一次安装出现“加载数据库错误areasQueries”的错误,一般是因为Ora
- 在JAVASCRIPT中LEFT函数的等价函数:function left(mainStr,lngLen) {if&nb
- 把程序放到一个文件中,然后包含再call就可以了。(JMAIL4.3)<%'警告函数sub w_msg(messag
- Java Java 是由 Sun 公司开发而成的一种编程语言,利用 Jave 写成的小程序叫做 Java
- 问一下谁知道如何用 javascript 获取硬盘信息1.获得硬盘当前有几个盘符.2.每个盘符的 大小,已经使用的大小,和没有使用的大小原理
- MySQL使用于认证目的的用户名,与Unix用户名(登录名字)或Windows用户名无关。缺省地,大多数MySQL客户尝试使用当前Unix用
- 往往我们在建立一个较为大型的网站的时候会有很多的副页面框架模式甚至一些小的细节元素都是相同的,但是令人困扰的是在更新它们时却要费些周折,要一
- 摘要:SELECT 语句可以帮助我们从MySQL中取出数据。SELECT 大概是 SQL 语言中最常用的语句,而且怎样使用它也最为讲究;用它
- 内容摘要:Cookies的值比ASP其他集合(例如Form和ServerVariables)的值要复杂得多。Cookie是一小块由浏览器存贮
- 前言在php开发过程中,获取文件扩展名是非常常见的需求。比如我们在上传文件的时候,首先需要判断文件类型是否为我们允许上传的类型。这个时候就需
- 介绍分面是指事物的多维度属性。例如一本书包含主题、作者、年代等分面。而分面搜索是指通过事物的这些属性不断筛选、过滤搜索结果的方法。可以将分面
- 是的,我们知道:我们可以为border设置它的width,这个border的宽度可以是5px,可是10px,可以是20px,可以是随意数值。
- 以国内最流行ASP为例,我不知道有多少人会在写代码时想到“容错”这个概念,实际上当我遇到这种事时,也是不了了之。为什么呢,想想最初的意思是认
- <% dim conn,mdbfile mdbfile=server.mappath("数据库名称.mdb") s
- 偶写的几个ASP字符串处理函数,用于文章分页的小玩意函数名:StrLen作 用:取得字符串长度(汉字为2)参 
- 今天在工作中遇到了一个问题,需要按时间查询,可是查询出来的结果显示的不正确。举个例子来说,要查找出2007-10-12至2007-10-31
- 这份代码不是那种时间没有改变也输出innerHTML的高消耗代码。innerHTML和style的改变是非常消耗游览器性能的,如果你将来希望
- 出自: 编程中国 http://www.bc-cn.net作者: 天涯听雨 &nbs