Я собрал и разобрал код запроса значения pr в asp из Интернета, поэкспериментировал и успешно использовал asp для запроса значения pr, и тест пройден. Скопируйте код кода следующим образом:
<%@LANGUAGE=JAVASCRIPT%>
<title>Программа asp для запроса PR-ценности Google</title>
<%
функция шестнадцатеричное число (строка)
{
вернуть parseInt(str,16);
}
функция ZeroFill(a,b)
{
вар z = шестнадцатеричное число (80000000);
если (г и а)
{
а = а>>1;
а &= ~z;
а |= 0x40000000;
а = а>>(б-1);
}
еще
{
а = а >> б;
}
возврат(а);
}
сочетание функций (a, b, c)
{
а -= б; а -= с; а ^= (zeroFill(c,13));
б -= с; б -= а; ^= (а<<8);
с -= а; с -= б; с ^= (zeroFill(b,13));
а -= б; а -= с; а ^= (zeroFill(c,12));
б -= с; б -= а; б ^= (а<<16);
с -= а; с -= б; с ^= (zeroFill(b,5));
а -= б; а -= с; а ^= (zeroFill(c,3));
б -= с; б -= а; б ^= (а<<10);
с -= а; с -= б; с ^= (zeroFill(b,15));
var ret = новый массив((a),(b),(c));
вернуть возврат;
}
функция GoogleCH(url,длина)
{
вар инициализации = 0xE6359A60;
если (arguments. length == 1)
длина = URL.длина;
вар а = 0x9E3779B9;
вар б = 0x9E3779B9;
вар с = 0xE6359A60;
вар к = 0;
вар лен = длина;
вар mixo = новый массив ();
в то время как (длина >= 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));
миксо = микс (а, б, с);
а = миксо[0]; б = миксо[1] с = миксо[2];
к += 12;
лен -= 12;
}
с += длина;
переключатель (лен)
{
случай 11:
c += URL[k+10]<<24;
случай 10:
с+=url[k+9]<<16;
случай 9:
c+=url[k+8]<<8;
случай 8:
b+=(url[k+7]<<24);
случай 7:
b+=(url[k+6]<<16);
случай 6:
b+=(url[k+5]<<8);
случай 5:
б+=(url[k+4]);
случай 4:
а+=(url[k+3]<<24);
случай 3:
а+=(url[k+2]<<16);
случай 2:
а+=(url[k+1]<<8);
случай 1:
а+=(url[k+0]);
}
миксо = микс (а, б, с);
если (mixo[2] < 0)
возврат (0x100000000 + mixo[2]);
еще
вернуть миксо[2];
}
функция стром(ы)
{
вар ре = новый массив ();
for(i=0;i<s.length;i++)
{
re[i] = s.charCodeAt(i);
}
вернуть ре;
}
//Взято из Интернета, www.vevb.com.
функция c32to8bit(arr32)
{
вар arr8 = новый массив ();
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);
}
}
вернуть arr8;
}
функция myfmod(x,y)
{
вар я = Math.floor(x/y);
возврат (х - я*у);
}
//Из Интернета: www.pqshow.com.
функция GoogleNewCh(ch)
{
ch = (((ch/7) << 2) | ((myfmod(ch,13))&7));
prbuf = новый массив ();
prbuf[0] = ч;
для (я = 1; я <20; я++) {
prbuf[i] = prbuf[i-1]-9;
}
ч = GoogleCH(c32to8bit(prbuf), 80);
вернуть ч;
}
функция URLencode(sStr)
{
return encodeURIComponent(sStr).replace(//+/g,%2B).replace(////g,%2F);
}
функция getGoogleHostInfo(url){
вар reqgr = информация: + URL;
вар reqgre = информация: + URLencode (url);
//Response.Write(reqgr+<br>+reqgre Из Интернета, www.vevb.com);
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(строка запроса); Из Интернета, www.vevb.com;
вар objXMLHTTP, xml;
xml = Server.CreateObject(Microsoft.XMLHTTP);
xml.Open(GET, строка запроса, ложь);
xml.setRequestHeader(User-Agent, Mozilla/4.0 (совместимо; GoogleToolbar 2.0.114-big; Windows XP 5.1));
xml.отправить();
вернуть xml.responseText;
}
функция getPageRank(temp){
var foo = temp.match(/Rank_.*?:.*?:(/d+)/i);
вар пр = (фу) ? foo[1] : ;
возврат пр;
}
функция getDirectory(temp){
var foo = temp.match(/FVN_.*?:.*?:(?:Top//)?([^/s]+)/i);
вар кот = (фу) ? foo[1] : ;
if(cat!=)cat=http://directory.google.com/Top/+cat
вернуть кота;
}
//Взято из Интернета, www.vevb.com.
вар сайт;
site=www.baidu.com; //Введите имя сайта;
если(сайт!=не определено){
вар google=getGoogleHostInfo(сайт);
вар PageRank = getPageRank (Google);
вар каталог = getDirectory (Google);
Response.Write(PageRank:+pagerank+<br>);
Response.Write(PageRank:<img src=/images/pr+pagerank+.png/ />Response.Write(Site:+site+<br>);
if(directory!=)Response.Write(Site:<a href=+directory+>+directory+</a><br>);
}
%>
Просто сохраните приведенный выше код как pr.asp и запустите его. Если вы хотите передать параметры, вы можете это сделать.
site=www.baidu.com; //Введите имя сайта;
Заменить на
site=Request.QueryString(url); //Введите имя сайта