复制代码代码如下:
<%
'========================================
classEngineerSearch
':模拟XML获取http标记资源(用过之后就知道为什么XML有用:))
'利用引擎搜索(显示引擎信息或其超连接网站上的信息或直接一个指定页面的相关信息,利用正则和xmlHttp,
'程序的使用需要会构造正则)
'---------------------------------------------------------------
privateoReg,oxmlHttp'一个正则,一个微软xmlhttp
'---------------------------------------------------------------
publicsubclass_initialize()'对象建立触发
setoReg=newregExp
oReg.Global=true
oReg.IgnoreCase=true
setoXmlHttp=server.createobject("Microsoft.XmlHttp")
endsub
'---------------------------------------------------------------
publicsubclass_terminate()'对象销毁触发
setoReg=nothing'必须手动释放class内的自建对象,asp只自动释放由class定义的对象
setoXmlHttp=nothing
Iftypename(tempReg)<>"nothing"then'方法体内的对象释放资源
settempReg=nothing
endif
endsub
'---------------------------------------------------------------
'引擎级搜索
publicfunctionengineer(url,EngineerReg)
'功能介绍:获得url的返回信息(通常用于引擎查找),提取其中的EngineerReg的特定信息,返回matches集合到
'函数名。获得url查询结果,搜寻出用engineerReg正则定义的结果,生成一个matches集合,
'由于无法建立集合及操作集合个数(vbscript),最好再自己遍历集合,也可以考虑二维数组
dimstrConent
strContent=oXmlHttp.open("get",url,false)
onerrorresumenext
oXmlHttp.send()
iferr.number<>0then
exitfunction
endif
strContent=bytes2BSTR(oXmlHttp.responseBody)
ifisnull(EngineerReg)then
engineer=AbsoluteURL(strContent,url)
else
oReg.Pattern=EngineerReg
setengineer=oReg.Execute(AbsoluteURL(strContent,url))
endif
endfunction
'---------------------------------------------------------------
'汉字编码,(网人)
publicFunctionbytes2BSTR(vIn)
strReturn=""
Fori=1ToLenB(vIn)
ThisCharCode=AscB(MidB(vIn,i,1))
IfThisCharCode<&H80Then
strReturn=strReturn&Chr(ThisCharCode)
Else
NextCharCode=AscB(MidB(vIn,i+1,1))