剛才寫一個小偷程序,突然發現一旦POST中文時抓取不到內容,考慮到中文編碼問題,像javascript中的escape()一樣,在vbscript中也可以使用這個函數,只需要這個發送就可以正常抓取到內容了send(A=&escape(A)&&escape(B))
完成收工!
附幾個小偷常用的function函數
Function ByteToStr(vIn)
Dim strReturn,i,ThisCharCode,innerCode,Hight8,Low8,NextCharCode
strReturn =
For i = 1 To LenB(vIn)
ThisCharCode = AscB(MidB(vIn,i,1))
If ThisCharCode < &H80 Then
strReturn = strReturn & Chr(ThisCharCode)
Else
NextCharCode = AscB(MidB(vIn,i+1,1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
i = i + 1
End If
Next
ByteToStr = strReturn
End Function
Function GetURL(url,PostStr)
Set Retrieval = Server.CreateObject(Microsoft.XMLHTTP)
With Retrieval
.Open POST, url, false , ,
.setRequestHeader Content-Type,application/x-www-form-urlencoded
.Send(PostStr)
GetURL = .ResponseBody
End With
Set Retrieval = Nothing
GetURL=ByteToStr(GetURL)
End Function
Function RegExpText(strng,regStr)
Dim regEx,Match,Matches,RetStr
Set regEx = New RegExp
regEx.Pattern = regStr
regEx.IgnoreCase = True
regEx.Global = True
Set Matches = regEx.Execute(strng)
For Each Match in Matches
RetStr = RetStr & Match.Value & ,
Next
RegExpText = RetStr
set regEx=nothing
End Function
用法:
Dim PostStr,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>,),<TD width=* align=center class=tdc2>,),</TD>,,)
Response.Write(getArea)