|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
国内有些大的CRM厂商的ASP就写得不错.无论是概念还是它里面用JAVASCRIPT的能力.并不是说现在的程序员用了ASP.NET来写程序就可以说自己高档了排名|源代码|alexa1.经由过程xmlhttp读取http://client.alexa.com/common/CSS/scramble.css该页面的内容,固然,我们也能够间接把这个页面保留到当地利用,可是我们不克不及包管alexa是不是会从头修正该css款式,以是我们及时读取http://client.alexa.com/common/css/scramble.css该页面的内容的计划对照牢靠点,我们将页面内容存进变量strAlexaCss中。
2.经由过程xmlhttp读取http://www.alexa.com/data/details/traffic_details/www.newbooks.com.cn页面内容,alexa在显现排名的中央,会有以下代码<!--Didyouknow?Alexaoffersthisdataprogrammatically.Visithttp://aws.amazon.com/awisformoreinformationabouttheAlexaWebInformationService.-->,以是我们能够截取我们取得页面内容中的字符串,取<!--Didyouknow?Alexaoffersthisdataprogrammatically.Visithttp://aws.amazon.com/awisformoreinformationabouttheAlexaWebInformationService.-->和<!--google_ad_section_end(name=default)-->当中的内容。如许,我们就取得了:<spanclass="cfba">22</span><spanclass="c477">33</span>1,9<spanclass="cbea">36</span><spanclass="c120">25</span></span>如许的字符串,保留至变量rankcontent。
3.我们失掉一切的class属性,可使用strspan=GetArray(rankcontent,"<spanclass=""","""",false,false)(个中getArray办法是年夜多半的收罗代码中都有的函数。),而且失掉数组aspan=split(strspan,"$Array$")。我们轮回aspan这个数组,关于假如aspan(i)在字符串strAlexaCss中存在,则我们将该span标签和个中的内容交换为空,关于span的class不在strAlexaCss中存在的,我们只必要将span的左标签交换失落。如许,我们失掉了22</span>1,9</span>25</span></span>如许的字符串。
4.最初我们将字符串中一切的</span>交换为空,我们就失掉了网站排名数据:221,925
以下是援用片断:
<%
’为了撑持原创,请保存该处正文,感谢!
’草上飞
’博客地点:http://blog.linkhelper.cn/
’猎取主域名
FunctiongetDomainUrl(url)
tempurl=replace(url,"http://","")
ifinstr(tempurl,"/")>0then
tempurl=left(tempurl,instr(tempurl,"/")-1)
endIf
getDomainurl=tempurl
EndFunction
FunctionGetHttpPage(HttpUrl)
IfIsNull(HttpUrl)=TrueOrLen(HttpUrl)<18OrHttpUrl="$False$"Then
GetHttpPage="$False$"
ExitFunction
EndIf
DimHttp
SetHttp=server.createobject("MSXML2.XMLHTTP")
Http.open"GET",HttpUrl,False
Http.Send()
IfHttp.Readystate4then
SetHttp=Nothing
GetHttpPage="$False$"
Exitfunction
Endif
GetHTTPPage=Http.responseText
SetHttp=Nothing
IfErr.number0then
Err.Clear
EndIf
EndFunction
’==================================================
’函数名:ScriptHtml
’作用:过滤html标志
’参数:ConStr------要过滤的字符串
’TagName------要过滤的标签
’FType1暗示过滤右边标签2暗示过滤摆布标签及两头的值3暗示过滤右边标签和右侧标签,保存内容。
’==================================================
FunctionScriptHtml(ByvalConStr,TagName,FType,includestr)
DimRe
SetRe=newRegExp
Re.IgnoreCase=true
Re.Global=True
SelectCaseFType
Case1
Re.Pattern="<"&TagName&"([^>])*("&includestr&"){1,}([^>])*>"
ConStr=Re.Replace(ConStr,"")
Case2
Re.Pattern="<"&TagName&"([^>])*("&includestr&"){1,}([^>])*>.*?</"&TagName&"([^>])*>"
’response.writeconstr&"<br>"
ConStr=Re.Replace(ConStr,"")
’response.writeserver.htmlencode(constr)&"<br>"
Case3
Re.Pattern="<"&TagName&"([^>])*("&includestr&"){1,}([^>])*>"
ConStr=Re.Replace(ConStr,"")
Re.Pattern="</"&TagName&"([^>])*>"
ConStr=Re.Replace(ConStr,"")
EndSelect
ScriptHtml=ConStr
SetRe=Nothing
EndFunction
’==================================================
’函数名:GetBody
’作用:截取字符串
’参数:ConStr------将要截取的字符串
’参数:StartStr------入手下手字符串
’参数:OverStr------停止字符串
’参数:IncluL------是不是包括StartStr
’参数:IncluR------是不是包括OverStr
’==================================================
FunctionGetBody(ConStr,StartStr,OverStr,IncluL,IncluR)
IfConStr="$False$"orConStr=""orIsNull(ConStr)=TrueOrStartStr=""orIsNull(StartStr)=TrueOrOverStr=""orIsNull(OverStr)=TrueThen
GetBody="$False$"
ExitFunction
EndIf
DimConStrTemp
DimStart,Over
ConStrTemp=Lcase(ConStr)
StartStr=Lcase(StartStr)
OverStr=Lcase(OverStr)
Start=InStrB(1,ConStrTemp,StartStr,vbBinaryCompare)
’response.writeStart&"<br>"&IncluL&"<br>"
’response.end
IfStart<=0then
GetBody="$False$"
ExitFunction
Else
IfIncluL=FalseThen
Start=Start+LenB(StartStr)
EndIf
EndIf
Over=InStrB(Start,ConStrTemp,OverStr,vbBinaryCompare)
’response.writeOver
’response.end
’response.writeStart&""&Over&""&Over-Start
’response.end
IfOver<=0OrOver<=Startthen
GetBody="$False$"
ExitFunction
Else
IfIncluR=TrueThen
Over=Over+LenB(OverStr)
EndIf
EndIf
GetBody=MidB(ConStr,Start,Over-Start)
’response.writegetBody
’response.end
EndFunction
’==================================================
’函数名:GetArray
’作用:提取链接地点,以$Array$分开
’参数:ConStr------提取地点的原字符
’参数:StartStr------入手下手字符串
’参数:OverStr------停止字符串
’参数:IncluL------是不是包括StartStr
’参数:IncluR------是不是包括OverStr
’==================================================
FunctionGetArray(ByvalConStr,StartStr,OverStr,IncluL,IncluR)
IfConStr="$False$"orConStr=""OrIsNull(ConStr)=TrueorStartStr=""OrOverStr=""orIsNull(StartStr)=TrueOrIsNull(OverStr)=TrueThen
GetArray="$False$"
ExitFunction
EndIf
DimTempStr,TempStr2,objRegExp,Matches,Match
TempStr=""
SetobjRegExp=NewRegexp
objRegExp.IgnoreCase=True
objRegExp.Global=True
objRegExp.Pattern="("&StartStr&").+?("&OverStr&")"
SetMatches=objRegExp.Execute(ConStr)
ForEachMatchinMatches
TempStr=TempStr&"$Array$"&Match.Value
Next
SetMatches=nothing
IfTempStr=""Then
GetArray="$False$"
ExitFunction
EndIf
TempStr=Right(TempStr,Len(TempStr)-7)
IfIncluL=Falsethen
objRegExp.Pattern=StartStr
TempStr=objRegExp.Replace(TempStr,"")
Endif
IfIncluR=Falsethen
objRegExp.Pattern=OverStr
TempStr=objRegExp.Replace(TempStr,"")
Endif
SetobjRegExp=nothing
SetMatches=nothing
IfTempStr=""then
GetArray="$False$"
Else
GetArray=TempStr
Endif
EndFunction
FunctiongetAlexaRank(weburl)
tempurl=getDomainUrl(weburl)
’读取http://client.alexa.com/common/css/scramble.css中的数据
alexacss="http://client.alexa.com/common/css/scramble.css"
strAlexaCss=GetHttpPage(alexacss)
’response.writestrAlexaCss
’response.end
alexarankqueryurl="http://www.alexa.com/data/details/traffic_details/"&tempurl
strAlexaContent=GetHttpPage(alexarankqueryurl)
rankcontent=getBody(strAlexaContent,"InformationService.-->","<!--google_ad_section_end(name=default)-->",false,false)
’猎取个中的span的class
strspan=GetArray(rankcontent,"<spanclass=""","""",false,false)
’response.writerankcontent&"<br>"
’response.writestrspan&"<br>"
’response.end
Ifstrspan"$False$"Then
aspan=split(strspan,"$Array$")
Fori=0ToUBound(aspan)
’response.write"."&aspan(i)
’判断aspan(i)即span的class是不是在alexacss中存在,假如存在,则必要将这个span和span中的数据往失落。
IfInStr(strAlexaCss,"."&aspan(i))>=1Then
’response.writeaspan(i)&"<br>"
’response.end
’暗示属性为none.必要交换失落。
rankcontent=ScriptHtml(rankcontent,"span",2,aspan(i))
Else
rankcontent=ScriptHtml(rankcontent,"span",1,aspan(i))
Endif
Next
’交换下面少往失落的右侧的span标签。
rankcontent=Replace(rankcontent,"</span>","")
EndIf
Ifrankcontent="$False$"Then
rankcontent="NoData"
Endif
getAlexaRank=Replace(rankcontent,",","")
EndFunction
url=request.querystring("url")
%>
<formname="alexaform"method=get>
输出网址:<inputtype=""name="url"value="<%=url%>"size=40><inputtype="submit"value="查询">
</form>
<%
Ifurl""Then
response.write"您的网站在ALEXA的排名为:"
response.flush
rank=getAlexaRank(url)
response.writerank
Endif
%>
缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。 |
|