• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

编程取得Google的PageRank3及所在目录

发布: 2007-6-30 18:56 | 作者: admin | 来源: | 查看: 13次 | 进入软件测试论坛讨论

领测软件测试网 <%@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>");}%><%
%><form method=post><input name="site" type="text" size="50"><input type="submit" value="Query"></form>
demo:http://www.asroad.net/test/www.asp

作者Blog:http://blog.csdn.net/ewaves/

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网