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>");
}
%>


猜你喜欢
- 写在之前首先是写在之前的一些建议:首先是关于这本书,我真的认为他是将神经网络里非常棒的一本书,但你也需要注意,如果你真的想自己动手去实现,那
- 直接使用model2=model1会出现当更新model2时,model1的权重也会更新,这和自己的初始目的不同。经评论指出可以使用:mod
- 一,VSCODE配置Markdown 打开左侧的extensions,或者使用 Ctrl+Shift+X,输入Markdown(1
- osql 工具是一个 Microsoft Windows 32 命令提示符工具,您可以使用它运行 Transact-SQL 语句和脚本文件。
- 在JavaScript中,数组本质上是一种特殊的对象,它的类型值会返回 object。如果我们需要比较两个数组是否相等,不能像比较基本类型(
- 我们经常使用傅里叶变换来计算数字信号的频谱,进而分析数字信号,离散时间傅里叶变换的公式为:可是自己动手实现一遍才是最好的学习。在数字分析里面
- 最近好多伙伴说,我用vue做的项目本地是可以的,但部署到服务器遇到好多问题:资源找不到,直接访问index.html页面空白,刷新当前路由4
- 本文实例讲述了javascript将数字转换整数金额大写的方法。分享给大家供大家参考。具体实现方法如下:function digit_upp
- 编程中有时候需要一个初始极大值(或极小值)作为temp,当然可以自定义设置为10000(whatever),不过python中有一个值可以代
- 问题你想定义跟actor模式中类似“actors”角色的任务解决方案actor模式是一种最古老的也是最简单的并行和分布式计算解决方案。 事实
- 刚才好无聊,突然想起来之前做一个课表的点子,于是百度了起来。刚开始,我是这样想的:在写微信墙的时候,用到了urllib2【两行代码抓网页】,
- 变量覆盖漏洞<?php$flag='xxx'; extract($_GET); if(isset($shiyan))
- 在Python中通过GET来获取页面的COOKIE是非常简单的事情,下面的代码实例演示了如何利用Python 获取COOKIE内容#! /u
- 一、前言很多网站提供视频转GIF的功能,但要么收费要么有广告实际上我们通过python,几行代码就能够实现视频转gif二、教程1. 安装必备
- Python 正则表达式正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。Python 自1.5版本起增加了
- Array可以使用下标,Map和Set不能使用下标,ES6引入了iterable类型,Array,Map,Set都属于iterable类型,
- python爬虫遇到爬取文件内容时,需要一页页的翻页爬取,这样很是麻烦,其实可以获取每个列表信息下的文件名和文件链接,让文件名和文件链接处理
- 今天给大家分享的主题是用百度的接口实现图片的文字识别。1.环境和配置要求整体是用Python实现,所需要使用的第三方库包括aip、PIL、k
- 为什么要引入线程池如果在程序中经常要用到线程,频繁的创建和销毁线程会浪费很多硬件资源,所以需要把线程和任务分离。线程可以反复利用,省去了重复
- 使用本Activation code需要jetbrains-agent支持!插件Activation code:06KU174Y5C-eyJ