⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tony.asp

📁 基于AJAX技术的Alexa 查询系统 1. 修改多处正则表达式,并采用递归获取页面内容,速度更快,错误更少 2. 增加网站类型及所属其他域名网站信息 3. 针对IE修改部分Ajax脚本,减少客
💻 ASP
字号:
<%
'网站指数查询系统
'Designed By Tony
'Tony [AT] 126.com
'请保留版权信息
Class Search
	
	Private URL, Re, XML, objstream, Site_SearchURL
	Private PageStr, Site_URL

	Private Sub Class_Initialize()
		Set Re = New RegExp
		Re.IgnoreCase = True
		Re.Global = True
		URL = Request.QueryString("url")
		Call CheckUrl()
		Set XML = Server.createobject("Microsoft.XMLHTTP")
		Set objstream = Server.CreateObject("adodb.stream")
	End Sub

	Private Sub Class_Terminate()
		Set Re = Nothing
		Set XML = Nothing
		Set objstream = Nothing
	End Sub

	Private Sub CheckUrl()
		If IsNull(URL) Or IsEmpty(URL) Then
			Call ReturnScript("OutStr('msg_search','网址格式错误');",1)
		ElseIf Left(URL,7) <> "http://" Then
			URL = "http://" + URL
		End If
		Re.Pattern = "^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>""])*$"
		If Not Re.Test(URL) Then Call ReturnScript("OutStr('msg_search','网址格式错误');",1)
	End Sub

	Private Sub ReturnScript(str,over)
		'str = Replace(str,"""","'")
		Response.Write(str)
		If over = 1 Then Response.End
	End Sub

	Private Function Format(str)
		Dim t1
		t1 = Replace(str,"\", "\\")
		t1 = Replace(str,"'","\'")
		Format = t1
	End Function

	Private Function Script(a,b)
		Dim i, str
		str = ""
		If IsArray(a) Then
			For i = 0 To UBound(a)
				str = str & "OutStr('" & a(i) & "','" & Format(b(i)) & "');"
			Next
		Else
			str = "OutStr('" & a & "','" & Format(b) & "');"
		End If
		Script = str
	End Function

	Private Function getHTTPPage(urls)
		XML.open "GET",urls,False
		XML.send() 
		If XML.readystate<>4 Then Call ReturnScript("OutStr('msg_search','系统繁忙,暂不能查询');",1)
		getHTTPPage = Re_Replace(BytesToBstr(XML.responseBody,"utf-8"),"(<!--.+?-->)|([\f\n\r\t\v])","")
	End Function

	Private Function BytesToBstr(body,Cset)
		objstream.Type = 1
		objstream.Mode =3
		objstream.Open
		objstream.Write body
		objstream.Position = 0
		objstream.Type = 2
		objstream.Charset = Cset
		BytesToBstr = objstream.ReadText 
		objstream.Close
		set objstream = nothing
	End Function

	Private Function Re_Replace(str,retxt,replacetxt)
		Re.Pattern = retxt
		Re_Replace = Re.Replace(str,replacetxt)
	End Function
	
	Private Function Data(retxt,num,replacetxt)
		Dim Reg
		Re.Pattern = retxt
		Set Reg = Re.Execute(PageStr)
		Dim t1,i, t2
		i = 0
		For Each t2 In reg
			If Not IsArray(t1) Then
				ReDim t1(0)
			Else
				ReDim Preserve t1(UBound(t1) + 1)
			End If
			If num > 0 Then
				t1(UBound(t1)) = Re.Replace(t2.value, "$" & num)
			Else
				t1(UBound(t1)) = t2.value
			End if
		Next
		PageStr = Re.Replace(PageStr,"")
		If IsArray(t1) Then
			Data = t1
		Else
			Data = Array(replacetxt)
		End If
	End Function

	Private Function Test(str,retxt)
		Re.Pattern = retxt
		Test = Re.Test(str)
	End Function

	Private Function Tline(urls,stype,times,width,height)
		Tline = "<img class=""tline"" src=""http://traffic.alexa.com/graph?w=" & width & "&h=" & height & "&r=" & times & "&y=" & stype & "&u=" & urls & """ />"
	End Function

	
	Public Sub Search_Default
	'http://www.alexa.com/data/details/traffic_details?q=&
		PageStr = getHTTPPage("http://www.alexa.com/data/details/traffic_details?q=&url=" & URL)
		If Test(PageStr,"You have requested information for an invalid URL") Then
			Call ReturnScript(Script("msg_search","网址错误"),1)
		End If
		Dim Site_URL, Site_Name, Site_Name_L, Site_About, Site_Rank, Site_Catalog, Site_AvgReview, Site_OtherSite, Site_Child, Site_Traffic
		Dim CacheArray, CacheStr, i
		Site_URL = Data("<title>.+?: (.+?)/</title>",1,"")(0)
		
		Site_Name = "<a href=""http://" & Site_URL & """ target=""_blank"">" & Data("<span class=""titleB"">(.+?)</span>",1,"No Name")(0) & "</a>"

		Site_Name_L = Data("class=""smallG"">(.+?)</span>",1,"none")(0)

		Site_About = Data("shim.gif""><br><span class=""body"">(.+?)</span>",1,"No Data")(0)

		Site_Rank = Data(" Traffic Rank for.+?</span>(.+?)<br>",1,"No Data")(0)

		CacheArray = Data("<span class=""Crumb"">(.+?)<\/span>",1,"")
		If UBound(CacheArray) < 1 Then
			Site_Catalog = "没有纳入分类"
		Else
			Site_Catalog = CacheArray(1)
		End If

		Site_AvgReview = "images/" & Data("\/images\/(stars-[0-9]-[0-9]\.gif)"">",1,"stars-0-0.gif")(0)

		CacheArray = Data("<li class=""bullet""><a.+?>(.+?)</a></li>",1,"No Data")
		Site_OtherSite = "<ul class=""ul1"">"
		For i = 0 To UBound(CacheArray)
			Site_OtherSite = Site_OtherSite & "<li><a href=""#"" onclick=""Search.Search('" & CacheArray(i) & "');"" title=""查询该网站"">" & CacheArray(i) & "</li>"
		Next
		Site_OtherSite = Site_OtherSite & "</ul>"

		CacheArray = Data("<li class=""bullet"">(.+?)</li>",1,"No Data")
		Site_Child = "<ul class=""ul1"">"
		For i = 0 To UBound(CacheArray)
			Site_Child = Site_Child & "<li>" & CacheArray(i) & "</li>"
		Next
		Site_Child = Site_Child & "</ul>"

		Site_Traffic = Data("<td class=""traffic"">(.+?)</td>",1,"No Data")
		CacheStr = "GetE('alexa').style.display='';GetE('alexa_image').src='http://thumbnails.alexa.com/image_server.cgi?size=large&url=" & Format(Site_URL) & "';GetE('alexa_avg').src='" & Site_AvgReview & "';" & Script(Array("alexa_url","alexa_searchurl","alexa_about","alexa_rank","catalog","alexa_data1","alexa_data2","alexa_data3","alexa_data4","alexa_data5","alexa_data6","alexa_data7","alexa_data8","alexa_data9","alexa_data10","alexa_data11","alexa_data12","alexa_tline1_7d","alexa_tline1_15d","alexa_tline1_1m","alexa_tline1_3m","alexa_tline1_6m","alexa_tline2_7d","alexa_tline2_15d","alexa_tline2_1m","alexa_tline2_3m","alexa_tline2_6m","alexa_tline3_7d","alexa_tline3_15d","alexa_tline3_1m","alexa_tline3_3m","alexa_tline3_6m","alexa_child","alexa_othersite","msg_search"),Array(Site_Name,Site_Name_L,Site_About,Site_Rank,Site_Catalog,Site_Traffic(0),Site_Traffic(1),Site_Traffic(2),Replace(Site_Traffic(3),"http://client.alexa.com/common/",""),Site_Traffic(4),Site_Traffic(5),Site_Traffic(6),Replace(Site_Traffic(7),"http://client.alexa.com/common/",""),Site_Traffic(8),Site_Traffic(9),Site_Traffic(10),Replace(Site_Traffic(11),"http://client.alexa.com/common/",""),Tline(Site_URL,"t","7.0","750","280"),Tline(Site_URL,"t","15.0m","750","280"),Tline(Site_URL,"t","1m","750","280"),Tline(Site_URL,"t","3m","750","280"),Tline(Site_URL,"t","6m","750","280"),Tline(Site_URL,"r","7.0","750","280"),Tline(Site_URL,"r","15.0m","750","280"),Tline(Site_URL,"r","1m","750","280"),Tline(Site_URL,"r","3m","750","280"),Tline(Site_URL,"r","6m","750","280"),Tline(Site_URL,"p","7.0","750","280"),Tline(Site_URL,"p","15.0m","750","280"),Tline(Site_URL,"p","1m","750","280"),Tline(Site_URL,"p","3m","750","280"),Tline(Site_URL,"p","6m","750","280"),Site_Child,Site_OtherSite,"查询完成"))
		'CacheStr = "GetE('alexa').style.display='';GetE('alexa_image').src='http://thumbnails.alexa.com/image_server.cgi?size=large&url=" & Format(Site_URL) & "';GetE('alexa_avg').src='" & Site_AvgReview & "';" & Script(Array("alexa_url","alexa_searchurl","alexa_about"
		'),	Array(,Tline("t","15.0m","750","280"),Tline("t","1m","750","280"),Tline("t","3m","750","280"),Tline("t","6m","750","280"),Tline("r","7.0","750","280"),Tline("r","15.0m","750","280"),Tline("r","1m","750","280"),Tline("r","3m","750","280"),Tline("r","6m","750","280"),Tline("p","7.0","750","280"),Tline("p","15.0m","750","280"),Tline("p","1m","750","280"),Tline("p","3m","750","280"),Tline("p","6m","750","280"),Site_Child,"查询完成"))
		Call ReturnScript(CacheStr,1)
	End Sub

End Class
%>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -