刚才写一个小偷程序,突然发现一旦POST中文时抓取不到内容,考虑到中文编码问题,像javascript中的escape()一样,在vbscript中也可以使用这个函数,只需要这个发送就可以正常抓取到内容了send("A="&escape(A)&""&escape(B))
完成收工!
附几个小偷常用的function函数
FunctionByteToStr(vIn)
DimstrReturn,i,ThisCharCode,innerCode,Hight8,Low8,NextCharCode
strReturn=""
Fori=1ToLenB(vIn)
ThisCharCode=AscB(MidB(vIn,i,1))
IfThisCharCode<&H80Then
strReturn=strReturn&Chr(ThisCharCode)
Else
NextCharCode=AscB(MidB(vIn,i+1,1))
strReturn=strReturn&Chr(CLng(ThisCharCode)*&H100+CInt(NextCharCode))
i=i+1
EndIf
Next
ByteToStr=strReturn
EndFunction
FunctionGetURL(url,PostStr)
SetRetrieval=Server.CreateObject("Microsoft.XMLHTTP")
WithRetrieval
.Open"POST",url,false,"",""
.setRequestHeader"Content-Type","application/x-www-form-urlencoded"
.Send(PostStr)
GetURL=.ResponseBody
EndWith
SetRetrieval=Nothing
GetURL=ByteToStr(GetURL)
EndFunction
FunctionRegExpText(strng,regStr)
DimregEx,Match,Matches,RetStr
SetregEx=NewRegExp
regEx.Pattern=regStr
regEx.IgnoreCase=True
regEx.Global=True
SetMatches=regEx.Execute(strng)
ForEachMatchinMatches
RetStr=RetStr&Match.Value&","
Next
RegExpText=RetStr
setregEx=nothing
EndFunction
用法:
DimPostStr,getContent,getArea
PostStr="action=mobile&mobile="&MobileNumber
getContent=GetURL("http://www.ip138.com:8080/search.asp",PostStr)
getArea=Replace(Replace(Replace(RegExpText(getContent,"卡号归属地</TD>((.|n)*?)</TD>"),"卡号归属地</TD>",""),"<TDwidth=*align=""center""class=tdc2>",""),"</TD>,","")
Response.Write(getArea)