利用XML技术获取域名的世界排名数字
类别: ASP教程
利用以下的代码,可以从WWW.ALEXA.COM网站中返回域名的世界排名数字,相信这个代码很有用处。
以前总是看到美萍网站的网站导航里面,每隔站点都能够显示世界排名数字,不知道是怎么得到的。经过不断的努力,我终于利用简单的ASP+XML的方法得到了这个数字。惊喜之余,也拿出来和大家共享吧!相信聪明的您通过修改这个代码将会把它的功能发挥到极致!在这里我有一个小小的要求,如果您改出来了什么好东东,也给我发一份,好吗?
<%
\'=========================================================
\' 文件:AlexaRank.asp
\' 功能:返回域名的世界排名数字
\'=========================================================
Server.ScriptTimeOut=120
On Error Resume Next
Dim Url
Url = "www.4ico.com"
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
%>
以前总是看到美萍网站的网站导航里面,每隔站点都能够显示世界排名数字,不知道是怎么得到的。经过不断的努力,我终于利用简单的ASP+XML的方法得到了这个数字。惊喜之余,也拿出来和大家共享吧!相信聪明的您通过修改这个代码将会把它的功能发挥到极致!在这里我有一个小小的要求,如果您改出来了什么好东东,也给我发一份,好吗?
<%
\'=========================================================
\' 文件:AlexaRank.asp
\' 功能:返回域名的世界排名数字
\'=========================================================
Server.ScriptTimeOut=120
On Error Resume Next
Dim Url
Url = "www.4ico.com"
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
%>
-= 资 源 教 程 =-
文 章 搜 索