利用以下的代碼,可以從WWW.ALEXA.COM網站中返回域名的世界排名數字,相信這個代碼很有用處。 以前總是看到美萍網站的網站導航里面,每隔站點都能夠顯示世界排名數字,不知道是怎么得到的。經過不斷的努力,我終于利用簡單的ASP+XML的方法得到了這個數字。驚喜之余,也拿出來和大家共享吧!相信聰明的您通過修改這個代碼將會把它的功能發揮到極致!在這里我有一個小小的要求,如果您改出來了什么好東東,也給我發一份,好嗎? <% '========================================================= ' 文件:AlexaRank.asp ' 功能:返回域名的世界排名數字 ' 時間:2004-06-24 ' 作者:Guidy ' 版權:iXuEr Studio '========================================================= ' Copyright (C) 2004-2006 114XP.CN All rights reserved. ' 官方網站:HTTP://www.114xp.cn ' 技術論壇:HTTP://bbs.114xp.cn ' 電子信箱:guidy@qq.com.guidy@psysch.com '========================================================= Server.ScriptTimeOut=120 On Error Resume Next Dim Url Url = "www.114xp.cn" Response.Write(AlexaRank(Url)) Response.End() '========================================================== Function AlexaRank(Url) '過濾無用信息,只剩余世界排名 '此方法是作者認真分析網頁代碼而得出的,所以不保證永久有效 '如果您還有什么更好的辦法,不妨來告訴我,共同探討嘛~~ Dim AlexaUrl,RpStr,TempStr Dim x,n RpStr = "</td><td class=""bodyBold"" align=""center"" bgcolor=""#ffffff""><img" '此行不準改動 AlexaUrl = "http://www.alexa.com/data/details/traffic_details?q=&url=" & Url TempStr = GetHTTPPage(AlexaUrl) n = InStr(TempStr,RpStr) - 1 TempStr = Left(TempStr,n) TempStr = StrReverse(TempStr) x = InStr(TempStr,">") - 1 TempStr = Left(TempStr,x) TempStr = StrReverse(TempStr) AlexaRank = TempStr End Function '========================================================== Function GetHTTPPage(url) '利用XML技術來獲取網頁數據 on Error resume next Dim HTTP Set HTTP=Server.CreateObject("Microsoft.XMLHTTP") HTTP.Open "GET",Url,False HTTP.Send() If HTTP.ReadyState<>4 then exit function end If GetHTTPPage=Bytes2BSTR(HTTP.ResponseBody) Set HTTP=Nothing If Err.Number<>0 Then Err.Clear End function '========================================================== Function Bytes2BSTR(vIn) '還原網頁數據為文本字符 Dim StrReturn Dim i,ThisCharCode,NextCharCode StrReturn = "" For i = 1 To LenB(vIn) ThisCharCode = AscB(MidB(vIn,i,1)) If ThisCharCode < &H80 Then StrReturn = StrReturn & Chr(ThisCharCode) Else NextCharCode = AscB(MidB(vIn,i+1,1)) StrReturn = StrReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode)) i = i + 1 End If Next Bytes2BSTR = StrReturn End Function %>
|