仓酷云

标题: ASP网页编程之asp猎取alexa排名小偷源代码 [打印本页]

作者: 分手快乐    时间: 2015-1-16 22:45
标题: ASP网页编程之asp猎取alexa排名小偷源代码
国内有些大的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,"&#36;Array&#36;")。我们轮回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="&#36;False&#36;"Then
GetHttpPage="&#36;False&#36;"
ExitFunction
EndIf
DimHttp
SetHttp=server.createobject("MSXML2.XMLHTTP")
Http.open"GET",HttpUrl,False
Http.Send()
IfHttp.Readystate4then
SetHttp=Nothing
GetHttpPage="&#36;False&#36;"
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="&#36;False&#36;"orConStr=""orIsNull(ConStr)=TrueOrStartStr=""orIsNull(StartStr)=TrueOrOverStr=""orIsNull(OverStr)=TrueThen
GetBody="&#36;False&#36;"
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="&#36;False&#36;"
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="&#36;False&#36;"
ExitFunction
Else
IfIncluR=TrueThen
Over=Over+LenB(OverStr)
EndIf
EndIf

GetBody=MidB(ConStr,Start,Over-Start)
’response.writegetBody
’response.end
EndFunction

’==================================================
’函数名:GetArray
’作用:提取链接地点,以&#36;Array&#36;分开
’参数:ConStr------提取地点的原字符
’参数:StartStr------入手下手字符串
’参数:OverStr------停止字符串
’参数:IncluL------是不是包括StartStr
’参数:IncluR------是不是包括OverStr
’==================================================
FunctionGetArray(ByvalConStr,StartStr,OverStr,IncluL,IncluR)
IfConStr="&#36;False&#36;"orConStr=""OrIsNull(ConStr)=TrueorStartStr=""OrOverStr=""orIsNull(StartStr)=TrueOrIsNull(OverStr)=TrueThen
GetArray="&#36;False&#36;"
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&"&#36;Array&#36;"&Match.Value
Next
SetMatches=nothing

IfTempStr=""Then
GetArray="&#36;False&#36;"
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="&#36;False&#36;"
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"&#36;False&#36;"Then
aspan=split(strspan,"&#36;Array&#36;")

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="&#36;False&#36;"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
%>
缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。
作者: 爱飞    时间: 2015-1-19 22:30
ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。
作者: 因胸联盟    时间: 2015-1-28 14:16
从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了
作者: 深爱那片海    时间: 2015-2-5 21:45
用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
作者: 透明    时间: 2015-2-13 17:50
没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。
作者: 分手快乐    时间: 2015-3-4 01:05
封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
作者: 金色的骷髅    时间: 2015-3-11 15:06
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
作者: 变相怪杰    时间: 2015-3-19 00:51
运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行。
作者: 谁可相欹    时间: 2015-3-27 00:08
跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组
作者: 飘灵儿    时间: 2015-3-27 00:08
用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2